module UsefulDuration
Constants
- VERSION
Public Class Methods
included(base)
click to toggle source
# File lib/useful_duration.rb, line 9 def self.included(base) # Some nice - built in durations useful_duration :bravehearts, 10620 useful_duration :in_a_gadda_da_vidas, 1023 useful_duration :doctor_zhivagos, 11820 end
Public Instance Methods
useful_duration(name, value)
click to toggle source
# File lib/useful_duration.rb, line 16 def useful_duration name, value # Send a `define_method` to Numeric class Numeric.send(:define_method, name) do ActiveSupport::Duration.new(self * value, [[:seconds, self * value]]) end # Alias the "singular" method with it # For example, useful_duration :fortnights, 1209600 # will create #fortnights and #fortnight Numeric.send(:alias_method, singular_method(name), name) end
Private Instance Methods
singular_method(name)
click to toggle source
Helper function to “singularlize” a method name (as a symbol) Using ActiveSupport::Inflector::Inflections
# File lib/useful_duration.rb, line 31 def singular_method name name.to_s.singularize.to_sym end