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