Flowdock

Notes posted by joshuapinter

RSS feed
August 7, 2013
0 thanks

Not Supported on Memcached.

Just an FYI, this is not supported on Memcached, so I would avoid it if you’re using FileStore and are planning on moving over to Memcached eventually.

May 3, 2012
0 thanks

Starts with a Capital Letter

(or any regular expression you’d like)

'Abracadabra'[0..0] =~ /[A-Z]/       # => true
March 18, 2012
0 thanks

Use Join to Turn Array Items into a String.

If you’re looking to take an array like

[ 'don', 'draper' ]

And get

'don draper'

Then use join instead:

[ 'don', 'draper' ].join( ' ' ) 

#=> 'don draper'
March 18, 2012
0 thanks

Destructive to the Original String.

Just as an FYI this function is destructive to the original String object.

name = 'draper' #=> "draper"

name.insert( 0, 'don ' ) #=> 'don draper'

name #=> 'don draper'
January 30, 2012
0 thanks

Requires a Block.

Just a little heads up here because it’s not obvious.

This requires a block to be passed to it.

Example Usage

say_with_time "Reverting all service rates to nil." do
  Service.update_all( :rate, nil )
end

# Output
-- Reverting all service rates to nil.
   -> 0.3451s
   -> 2233 rows
January 27, 2012
0 thanks

Example Usage

End of Day for Any Date

DateTime.new( 2011, 01, 01 )
# => Sat, 01 Jan 2011 00:00:00 +0000

DateTime.new( 2011, 01, 01 ).end_of_day
# => Sat, 01 Jan 2011 23:59:59 +0000

With Local Timezone

DateTime.civil_from_format( :local, 2011, 01, 01 ).end_of_day
# => Sat, 01 Jan 2011 23:59:59 -0700
January 19, 2012
1 thank

Pluralize with Text.

Example

1 person or 3 people

Use a View Helper

pluralize( 1, 'person' )
# => 1 person

pluralize( 2, 'person' )
# => 2 people

# In practice.
pluralize( Person.count, 'person' )

See

http://apidock.com/rails/ActionView/Helpers/TextHelper/pluralize

January 4, 2012
0 thanks

Total Unique Elements from Two Arrays

Simple but thought it was worth mentioning:

( [ 1, 2, 3 ] + [ 3, 4, 5 ] ).uniq    #=> [ 1, 2, 3, 4, 5 ]
September 25, 2011
1 thank

Parsing the Date Params into a New Date Object.

Useful for when you need to create a Date object from these manually, such as for reporting.


If the date select input is start_date and it belongs to the report form object:

@start_date = Date.civil(params[:report]["start_date(1i)"].to_i,
                         params[:report]["start_date(2i)"].to_i,
                         params[:report]["start_date(3i)"].to_i)

@start_date.class
# => Date

@start_date
# => Sun, 25 Sep 2011  # For example.

Use a similar method for DateTime situations.

September 14, 2011
0 thanks

Find a Selected Option in a Drop Down.

You can find the selected option (or options for multiple select inputs) with the following:

assert_select('select#membership_year option[selected]').first['value']
September 5, 2011
0 thanks

(Another) Pluralize Without Showing the Count

Thought it would be best to take the source code from pluralize and just remove the count from the output.

Create this helper method in application_helper.rb

# Pluralize without showing the count.
def simple_pluralize count, singular, plural=nil
  ((count == 1 || count =~ /^1(\.0+)?$/) ? singular : (plural || singular.pluralize))
end

This allows you to pass in in the plural word to use as well.

May 26, 2011
0 thanks

Don't Use to_formatted_s(:db) on an Array of IDs

I thought using to_formatted_s(:db) on an array of ids would separate them with commas in a nice way. Wrong. It does, but it also changes the numbers.

Wrong

[60, 271, 280, 283].to_formatted_s(:db)
# => "121,543,561,567"    # Completely different numbers!

Instead, use the join method:

Right

[60, 271, 280, 283].join(",")
# => "60,271,280,283"      # Much better

I think this has to do with (:db) being used for formatting dates but I’m not sure.