Class: MiniSql::Builder
- Inherits:
-
Object
- Object
- MiniSql::Builder
- Defined in:
- lib/mini_sql/builder.rb
Constant Summary collapse
- PREDEFINED_SQL_LITERALS =
(literals1 | literals2).to_set
Instance Method Summary collapse
-
#initialize(connection, template) ⇒ Builder
constructor
A new instance of Builder.
- #prepared(condition = true) ⇒ Object
- #query_decorator(decorator, hash_args = nil) ⇒ Object
- #sql_literal(literals) ⇒ Object
- #to_sql(hash_args = nil) ⇒ Object
Constructor Details
#initialize(connection, template) ⇒ Builder
Returns a new instance of Builder.
5 6 7 8 9 10 11 12 |
# File 'lib/mini_sql/builder.rb', line 5 def initialize(connection, template) @args = {} @sql = template @sections = {} @connection = connection @count_variables = 1 @is_prepared = false end |
Instance Method Details
#prepared(condition = true) ⇒ Object
68 69 70 71 72 |
# File 'lib/mini_sql/builder.rb', line 68 def prepared(condition = true) @is_prepared = condition self end |
#query_decorator(decorator, hash_args = nil) ⇒ Object
64 65 66 |
# File 'lib/mini_sql/builder.rb', line 64 def query_decorator(decorator, hash_args = nil) connection_switcher.query_decorator(decorator, parametrized_sql, union_parameters(hash_args)) end |
#sql_literal(literals) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/mini_sql/builder.rb', line 46 def sql_literal(literals) literals.each do |name, part_sql| if PREDEFINED_SQL_LITERALS.include?(name) raise "/*#{name}*/ is predefined, use method `.#{name}` instead `sql_literal`" end @sections[name] = part_sql.is_a?(::MiniSql::Builder) ? part_sql.to_sql : part_sql end self end |
#to_sql(hash_args = nil) ⇒ Object
74 75 76 |
# File 'lib/mini_sql/builder.rb', line 74 def to_sql(hash_args = nil) @connection.param_encoder.encode(parametrized_sql, union_parameters(hash_args)) end |