Class: ActiveRecord::Temporal::Querying::PredicateBuilder::ContainsHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/activerecord/temporal/querying/predicate_builder/contains_handler.rb

Instance Method Summary collapse

Constructor Details

#initialize(predicate_builder) ⇒ ContainsHandler

Returns a new instance of ContainsHandler.



4
5
6
# File 'lib/activerecord/temporal/querying/predicate_builder/contains_handler.rb', line 4

def initialize(predicate_builder)
  @predicate_builder = predicate_builder
end

Instance Method Details

#call(attribute, value) ⇒ Object



8
9
10
11
12
13
14
15
16
17
# File 'lib/activerecord/temporal/querying/predicate_builder/contains_handler.rb', line 8

def call(attribute, value)
  time_as_tstz = Arel::Nodes::As.new(
    Arel::Nodes::Quoted.new(value.time),
    Arel::Nodes::SqlLiteral.new("timestamptz")
  )

  cast_value = Arel::Nodes::NamedFunction.new("CAST", [time_as_tstz])

  attribute.contains(cast_value)
end