class SimpleParams::InitializationHash

Constants

DATETIME_INDICATORS

Attributes

original_params[R]

Public Class Methods

new(inputs={}) click to toggle source
# File lib/simple_params/initialization_hash.rb, line 9
def initialize(inputs={})
  @original_params = hash_to_symbolized_hash(inputs)
  assign_parameters
end

Private Instance Methods

assign_datetime_params(key) click to toggle source
# File lib/simple_params/initialization_hash.rb, line 31
def assign_datetime_params(key)
  p6i = original_params[:"#{key}(6i)"]
  p5i = original_params[:"#{key}(5i)"]
  p4i = original_params[:"#{key}(4i)"]
  p3i = original_params[:"#{key}(3i)"]
  p2i = original_params[:"#{key}(2i)"]
  p1i = original_params[:"#{key}(1i)"]
  value = if [p1i, p2i, p3i].all? && [p4i, p5i, p6i].none?
    Date.new(p1i.to_i, p2i.to_i, p3i.to_i)
  elsif [p6i, p5i, p4i, p3i, p1i, p1i].all?
    Time.new(p1i.to_i, p2i.to_i, p3i.to_i, p4i.to_i, p5i.to_i, p6i.to_i)
  end
  self[key.to_sym] = value
rescue ArgumentError
  self[key.to_sym] = nil
end
assign_param(key, value) click to toggle source
# File lib/simple_params/initialization_hash.rb, line 48
def assign_param(key, value)
  self[key.to_sym] = value
end
assign_parameters() click to toggle source
# File lib/simple_params/initialization_hash.rb, line 15
def assign_parameters
  original_params.each_pair do |key, value|
    date_time_found = false
    DATETIME_INDICATORS.each do |indicator|
      if key.to_s.include?(indicator)
        date_time_found = true
        key_name = key.to_s.partition(indicator).first
        assign_datetime_params(key_name)
      end
    end
    unless date_time_found
      assign_param(key, value)
    end
  end
end