Class: Sequel::Dataset::PlaceholderLiteralizer::Argument

Inherits:
Object
  • Object
show all
Defined in:
lib/sequel/dataset/placeholder_literalizer.rb

Overview

A placeholder argument used by the PlaceholderLiteralizer. This records the offset that the argument should be used in the resulting SQL.

Instance Method Summary collapse

Constructor Details

#initialize(recorder, pos, transformer = nil) ⇒ Argument

Set the recorder, the argument position, and any transforming block to use for this placeholder.



48
49
50
51
52
# File 'lib/sequel/dataset/placeholder_literalizer.rb', line 48

def initialize(recorder, pos, transformer=nil)
  @recorder = recorder
  @pos = pos
  @transformer = transformer
end

Instance Method Details

#sql_literal_append(ds, sql) ⇒ Object

Record the SQL query offset, argument position, and transforming block where the argument should be literalized.



56
57
58
59
60
61
62
# File 'lib/sequel/dataset/placeholder_literalizer.rb', line 56

def sql_literal_append(ds, sql)
  if ds.opts[:placeholder_literal_null]
    ds.send(:literal_append, sql, nil)
  else
    @recorder.use(sql, @pos, @transformer)
  end
end

#transform(&block) ⇒ Object

Return a new Argument object for the same recorder and argument position, but with a different transformer block.



66
67
68
# File 'lib/sequel/dataset/placeholder_literalizer.rb', line 66

def transform(&block)
  Argument.new(@recorder, @pos, block)
end