class HashesEqual::TimeCoarsener
Constants
- VALID_TIME_GRANULARITY
Attributes
object_to_convert[R]
time_granularity[R]
Public Class Methods
new(time_granularity)
click to toggle source
# File lib/hashes_equal/time_coarsener.rb, line 18 def initialize(time_granularity) @time_granularity = time_granularity assert_send :time_granularity check_valid_granularity_for_time_aware_comparison end
Public Instance Methods
call(object_to_convert)
click to toggle source
Either an enumerable or a Time object
# File lib/hashes_equal/time_coarsener.rb, line 25 def call(object_to_convert) @object_to_convert = object_to_convert assert_send :object_to_convert convert_object(object_to_convert) end
Private Instance Methods
check_valid_granularity_for_time_aware_comparison()
click to toggle source
# File lib/hashes_equal/time_coarsener.rb, line 76 def check_valid_granularity_for_time_aware_comparison return if VALID_TIME_GRANULARITY.include?(time_granularity.to_sym) raise( InvalidTimeGranularity, [ "#{time_granularity.inspect} is not a valid time_granularity.", "Valid values are: #{VALID_TIME_GRANULARITY.inspect}" ].join(' ') ) end
coarsen_to_sec(time_to_convert)
click to toggle source
# File lib/hashes_equal/time_coarsener.rb, line 60 def coarsen_to_sec(time_to_convert) Time.at( time_to_convert.to_i ) end
coarsen_to_usec(time_to_convert)
click to toggle source
# File lib/hashes_equal/time_coarsener.rb, line 66 def coarsen_to_usec(time_to_convert) Time.at( time_to_convert.to_i, time_to_convert.usec, :usec ) end
coarsening_method_name()
click to toggle source
# File lib/hashes_equal/time_coarsener.rb, line 72 def coarsening_method_name "coarsen_to_#{time_granularity}" end
convert_enumerable(enumerable_to_convert)
click to toggle source
# File lib/hashes_equal/time_coarsener.rb, line 50 def convert_enumerable(enumerable_to_convert) enumerable_to_convert.map do |value| convert_object value end end
convert_hash(hash_to_convert)
click to toggle source
# File lib/hashes_equal/time_coarsener.rb, line 44 def convert_hash(hash_to_convert) hash_to_convert.transform_values do |value| convert_object(value) end end
convert_object(object)
click to toggle source
# File lib/hashes_equal/time_coarsener.rb, line 36 def convert_object(object) return convert_hash(object) if object.is_a?(Hash) return convert_enumerable(object) if object.is_a?(Enumerable) return convert_time(object) if object.is_a?(Time) object end
convert_time(time_to_convert)
click to toggle source
# File lib/hashes_equal/time_coarsener.rb, line 56 def convert_time(time_to_convert) send(coarsening_method_name, time_to_convert) end