Method: ArelExtensions::Nodes::DateAdd#mssql_value

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

#mssql_value(v = nil) ⇒ Object



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'lib/arel_extensions/nodes/date_diff.rb', line 114

def mssql_value(v = nil)
  v ||= self.expressions.last
  if defined?(ActiveSupport::Duration) && ActiveSupport::Duration === v
    if @date_type == :date
      v.to_i / (24*3600)
    elsif @date_type == :datetime
      if v.parts.size == 1
        #       first entry in the dict v.parts; one of [:years, :months, :weeks, :days, :hours, :minutes, :seconds]
        #       |     the value
        #       |     |
        #       |     |
        #       v     v
        v.parts.first.second
      else
        v.to_i
      end
    end
  else
    v
  end
end