class Babik::Selection::Operation::Between

Between comparison (check the value is between two different values)

Public Class Methods

new(field, value) click to toggle source
Calls superclass method Babik::Selection::Operation::Base::new
# File lib/babik/queryset/lib/selection/operation/operations.rb, line 107
def initialize(field, value)
  super(field, '?field BETWEEN ?value1 AND ?value2', value)
end

Public Instance Methods

_init_sql_operation() click to toggle source
# File lib/babik/queryset/lib/selection/operation/operations.rb, line 111
def _init_sql_operation
  if @value.class == Array
    if [@value[0], @value[1]].map { |v| [DateTime, Date, Time].include?(v.class) } == [true, true]
      value1 = "'#{@value[0].utc.to_s(:db)}'"
      value2 = "'#{@value[1].utc.to_s(:db)}'"
    else
      value1 = self.class.escape(@value[0])
      value2 = self.class.escape(@value[1])
    end
    @sql_operation = @sql_operation_template.sub('?field', @field).sub('?value1', value1).sub('?value2', value2)
  else
    raise 'Array is needed if operator is between'
  end
end