Notes posted by joshuapinter
RSS feedStarts with a Capital Letter
(or any regular expression you’d like)
'Abracadabra'[0..0] =~ /[A-Z]/ # => true
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'
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'
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
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
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
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 ]
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.
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']
(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.
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.


