class FormObjects::ParamsConverter::DateConverter

Constants

DATE_ATTRIBUTES
DATE_FORMAT

Public Class Methods

new(params) click to toggle source
# File lib/form_objects/params_converter/date_converter.rb, line 7
def initialize(params)
  @params = params
end

Public Instance Methods

candidate_for_date_conversion?(key) click to toggle source
# File lib/form_objects/params_converter/date_converter.rb, line 36
def candidate_for_date_conversion?(key)
  date_attribute_name_for(key)
end
convert_attributes_to_date(object) click to toggle source
# File lib/form_objects/params_converter/date_converter.rb, line 15
def convert_attributes_to_date(object)
  return object unless object.respond_to?(:each_pair)

  object.inject({}) { |hash, attributes|
    key, value      = attributes.first, attributes.last
    attribute       = date_attribute_name_for(key)
    hash[attribute] = DATE_FORMAT % date_values_for(key, object) if candidate_for_date_conversion?(key)
    hash[key]       = convert_attributes_to_date(value)

    hash
  }
end
date_attribute_name_for(key) click to toggle source
# File lib/form_objects/params_converter/date_converter.rb, line 28
def date_attribute_name_for(key)
  key[DATE_ATTRIBUTES, 1]
end
date_values_for(key, object) click to toggle source
# File lib/form_objects/params_converter/date_converter.rb, line 32
def date_values_for(key, object)
  (1..6).map { |value| "#{object.delete("#{date_attribute_name_for(key)}(#{value}i)") { "00" }}" }
end
params() click to toggle source
# File lib/form_objects/params_converter/date_converter.rb, line 11
def params
  convert_attributes_to_date(@params)
end