Method: ArelExtensions::Nodes::DateAdd#postgresql_value

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

#postgresql_value(v = nil) ⇒ Object



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/arel_extensions/nodes/date_diff.rb', line 78

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