Module: UsefulDuration

Defined in:
lib/useful_duration.rb,
lib/useful_duration/version.rb

Constant Summary collapse

VERSION =
"0.0.2"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



9
10
11
12
13
14
# 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

Instance Method Details

#useful_duration(name, value) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
# 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