Method: ArelExtensions::Nodes::DateAdd#mysql_value

Defined in:
lib/arel_extensions/nodes/date_diff.rb

#mysql_value(v = nil) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/arel_extensions/nodes/date_diff.rb', line 62

def mysql_value(v = nil)
  v ||= self.expressions.last
  if defined?(ActiveSupport::Duration) && ActiveSupport::Duration === v
    if @date_type == :date || @date_type == :datetime
      Arel.sql('INTERVAL %s' % v.inspect.sub(/s\Z/, ''))
    end
  else
    if ArelExtensions::Nodes::Duration === v
      v.with_interval = true
      v
    else
      v
    end
  end
end