Class: ArelExtensions::Nodes::DateSub

Inherits:
Function
  • Object
show all
Defined in:
lib/arel_extensions/nodes/date_diff.rb

Overview

difference entre colonne date et date string/date

Constant Summary collapse

RETURN_TYPE =
:integer

Instance Method Summary collapse

Methods inherited from Function

#as, #convert_to_date_node, #convert_to_datetime_node, #convert_to_node, #convert_to_number, #convert_to_string_node, #expr, #left, #return_type, #right, #type_of_attribute

Methods included from Predications

#cast, #convert_to_node, #imatches, #in, #matches, #not_in, #when

Constructor Details

#initialize(expr) ⇒ DateSub

Returns a new instance of DateSub.



145
146
147
# File 'lib/arel_extensions/nodes/date_diff.rb', line 145

def initialize(expr)
  super [expr.first, convert_number(expr[1])]
end

Instance Method Details

#convert_number(object) ⇒ Object



149
150
151
152
153
154
155
156
157
158
# File 'lib/arel_extensions/nodes/date_diff.rb', line 149

def convert_number(object)
  case object
  when Arel::Attributes::Attribute, Arel::Nodes::Node, Integer
    object
  when String
    object.to_i
  else
    raise(ArgumentError, "#{object.class} can not be converted to Number")
  end
end