Class: SQLCompiler
- Inherits:
-
Object
- Object
- SQLCompiler
- Defined in:
- lib/sql_compiler.rb
Defined Under Namespace
Classes: CompilerResult
Instance Attribute Summary collapse
-
#parameters ⇒ Object
Returns the value of attribute parameters.
Instance Method Summary collapse
- #compile(substitution_values = {}) ⇒ Object
- #compile!(substitution_values = {}) ⇒ Object
-
#initialize(options) ⇒ SQLCompiler
constructor
A new instance of SQLCompiler.
Constructor Details
#initialize(options) ⇒ SQLCompiler
6 7 8 9 |
# File 'lib/sql_compiler.rb', line 6 def initialize() @body = [:body] @parameter_reporters = [:parameters] end |
Instance Attribute Details
#parameters ⇒ Object
Returns the value of attribute parameters.
2 3 4 |
# File 'lib/sql_compiler.rb', line 2 def parameters @parameters end |
Instance Method Details
#compile(substitution_values = {}) ⇒ Object
11 12 13 14 15 |
# File 'lib/sql_compiler.rb', line 11 def compile(substitution_values = {}) compile!(substitution_values) rescue CompilableParameter::CompilerArgumentError => e CompilerResult.new(nil, nil, e) end |
#compile!(substitution_values = {}) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/sql_compiler.rb', line 17 def compile!(substitution_values = {}) effective_values = get_effective_values(substitution_values) body = effective_values.inject(@body) do |body, (name, value)| body.gsub(/{\s*#{name}\s*}/) { value } end CompilerResult.new(body, effective_values) end |