Class: AS::Duration::Calculator
- Inherits:
-
Object
- Object
- AS::Duration::Calculator
- Defined in:
- lib/as/duration.rb
Instance Method Summary collapse
- #advance(time) ⇒ Object
-
#initialize(parts) ⇒ Calculator
constructor
A new instance of Calculator.
Constructor Details
#initialize(parts) ⇒ Calculator
Returns a new instance of Calculator.
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/as/duration.rb', line 70 def initialize(parts) = parts.inject({}) do |, (type, number)| .update(type => number) { |key, old, new| old + new } end # Remove partial weeks and days for accurate date behaviour if Float === [:weeks] [:weeks], partial_weeks = [:weeks].divmod(1) [:days] = .fetch(:days, 0) + 7 * partial_weeks end if Float === [:days] [:days], partial_days = [:days].divmod(1) [:hours] = .fetch(:hours, 0) + 24 * partial_days end @options = end |