Class: Commutator::Expressions::Statement
- Inherits:
-
Object
- Object
- Commutator::Expressions::Statement
- Defined in:
- lib/commutator/expressions/statement.rb
Overview
Statement simply takes a string and substitutes ‘#?’ for name placeholders and ‘:?’ for value placeholders.
Example: Statement.new(‘#? BETWEEN :? AND :?’, names: [‘ts’], values: [100, 200])
produces…
“ts BETWEEN :VALUE_f899139df5e1059396431415e770c6dd AND :VALUE_3644a684f98ea8fe223c713b77189a77” (Note: ts was not replaced because it’s not a reserved word)
Another example: Statement.new(‘attribute_exists(#?)’, names: [‘count’]).to_s
produces…
“attribute_exists(#NAME_d61a1061060c9e9691027c42d6766b90)”
Instance Attribute Summary collapse
-
#exp ⇒ Object
Returns the value of attribute exp.
-
#names ⇒ Object
Returns the value of attribute names.
-
#values ⇒ Object
Returns the value of attribute values.
Instance Method Summary collapse
-
#initialize(exp, names: [], values: []) ⇒ Statement
constructor
A new instance of Statement.
- #to_s ⇒ Object
Constructor Details
#initialize(exp, names: [], values: []) ⇒ Statement
Returns a new instance of Statement.
23 24 25 26 27 |
# File 'lib/commutator/expressions/statement.rb', line 23 def initialize(exp, names: [], values: []) @exp = exp @names = names @values = values end |
Instance Attribute Details
#exp ⇒ Object
Returns the value of attribute exp.
21 22 23 |
# File 'lib/commutator/expressions/statement.rb', line 21 def exp @exp end |
#names ⇒ Object
Returns the value of attribute names.
21 22 23 |
# File 'lib/commutator/expressions/statement.rb', line 21 def names @names end |
#values ⇒ Object
Returns the value of attribute values.
21 22 23 |
# File 'lib/commutator/expressions/statement.rb', line 21 def values @values end |
Instance Method Details
#to_s ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/commutator/expressions/statement.rb', line 29 def to_s exp .gsub('#?') .each_with_index { |_v, i| Util::Placeholders.name(names[i]) } .gsub(':?') .each_with_index { |_v, i| Util::Placeholders.value(values[i]) } end |