class TimeSpanner::TimeUnitCollector
Constants
- AVAILABLE_UNITS
Attributes
unit_names[R]
units[RW]
Public Class Methods
new(unit_names = [])
click to toggle source
# File lib/time_spanner/time_unit_collector.rb, line 12 def initialize unit_names = [] @unit_names = collect_unit_names unit_names @units = [] validate_unit_names! collect! end
Private Instance Methods
collect!()
click to toggle source
# File lib/time_spanner/time_unit_collector.rb, line 23 def collect! unit_names.each do |name| units << ( unit_by_name name ) end end
collect_unit_names(unit_names)
click to toggle source
# File lib/time_spanner/time_unit_collector.rb, line 47 def collect_unit_names unit_names !unit_names || unit_names.compact.empty? ? AVAILABLE_UNITS : unit_names end
unit_by_name(name)
click to toggle source
# File lib/time_spanner/time_unit_collector.rb, line 29 def unit_by_name name case name when :millenniums then Millennium when :centuries then Century when :decades then Decade when :years then Year when :months then Month when :weeks then Week when :days then Day when :hours then Hour when :minutes then Minute when :seconds then Second when :milliseconds then Millisecond when :microseconds then Microsecond when :nanoseconds then Nanosecond end end
validate_unit_names!()
click to toggle source
# File lib/time_spanner/time_unit_collector.rb, line 51 def validate_unit_names! unit_names.each do |unit_name| raise InvalidUnitError, "Unit '#{unit_name}' is not a valid time unit." unless AVAILABLE_UNITS.include? unit_name end end