class ArelExtensions::Nodes::DateSub

Constants

RETURN_TYPE

Public Class Methods

new(expr) click to toggle source
Calls superclass method
# File lib/arel_extensions/nodes/date_diff.rb, line 192
def initialize(expr)
  super [expr.first, convert_number(expr[1])]
end

Public Instance Methods

convert_number(object) click to toggle source
# File lib/arel_extensions/nodes/date_diff.rb, line 196
def convert_number(object)
  case object
  when Arel::Attributes::Attribute, Arel::Nodes::Node, Integer
    object
  when String
    object.to_i
  else
    if defined?(ActiveSupport::Duration) && ActiveSupport::Duration === object
      object.to_i
    else
      raise(ArgumentError, "#{object.class} cannot be converted to Number")
    end
  end
end