Method: ArelExtensions::Nodes::DateAdd#oracle_value

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

#oracle_value(v = nil) ⇒ Object



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/arel_extensions/nodes/date_diff.rb', line 96

def oracle_value(v = nil)
  v ||= self.expressions.last
  if defined?(ActiveSupport::Duration) && ActiveSupport::Duration === v
    if @date_type == :ruby_date
      Arel.sql("(INTERVAL '1' DAY) * %s" % v.inspect.to_i)
    else
      Arel.sql("(INTERVAL '1' SECOND) * %s" % v.to_i)
    end
  else
    if ArelExtensions::Nodes::Duration === v
      v.with_interval = true
      v
    else
      v
    end
  end
end