Class: SQLite::ParsedStatement::BindVariable
- Inherits:
-
Object
- Object
- SQLite::ParsedStatement::BindVariable
- Defined in:
- lib/sqlite/parsed_statement.rb
Overview
This represents a bind variable in a tokenized SQL stream. It is used only by ParsedStatement.
Instance Method Summary collapse
-
#initialize(name) ⇒ BindVariable
constructor
Create a new BindVariable token encapsulating the given name.
-
#to_s(vars = nil) ⇒ Object
Convert the token to a string.
Constructor Details
#initialize(name) ⇒ BindVariable
Create a new BindVariable token encapsulating the given name. The name is used when looking up a bind variable to bind to the place holder represented by this token. The name may be either a Fixnum (in which case it represents an positional placeholder) or a a String (in which case it represents a named placeholder).
75 76 77 |
# File 'lib/sqlite/parsed_statement.rb', line 75 def initialize( name ) @name = name end |
Instance Method Details
#to_s(vars = nil) ⇒ Object
Convert the token to a string. If the vars
parameter is nil
, then the string will be in the format ?nnn
(where nnn is the index that was used to initialize this token). Otherwise, the vars
parameter must be a hash, and the value bound to this token is the element with the key given to this token when it was created. If that element is nil
, this will return the string “NULL”. If the element is a String, then it will be quoted and escaped and returned. Otherwise, the “to_s” method of the element will be called and the result returned.
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/sqlite/parsed_statement.rb', line 88 def to_s( vars=nil ) if vars.nil? ":#{@name}" else var = vars[ @name ] case var when nil "NULL" when String "'#{var.gsub(/'/,"''")}'" else var.to_s end end end |