Module: ValidatesTimeliness::Extensions::DateTimeSelect

Extended by:
ActiveSupport::Concern
Defined in:
lib/validates_timeliness/extensions/date_time_select.rb

Defined Under Namespace

Classes: TimelinessDateTime

Instance Method Summary collapse

Instance Method Details

#value_with_timeliness(object) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/validates_timeliness/extensions/date_time_select.rb', line 35

def value_with_timeliness(object)
  return value_without_timeliness(object) unless @template_object.params[@object_name]

  @template_object.params[@object_name]

  pairs = @template_object.params[@object_name].select {|k,v| k =~ /^#{@method_name}\(/ }
  return value_without_timeliness(object) if pairs.empty?

  values = [nil] * 6
  pairs.map do |(param, value)|
    position = param.scan(/\((\d+)\w+\)/).first.first
    values[position.to_i-1] = value.to_i
  end

  TimelinessDateTime.new(*values)
end