Class: DB::Model::Statement::Replace
- Inherits:
-
Object
- Object
- DB::Model::Statement::Replace
- Defined in:
- lib/db/model/statement/replace.rb
Instance Method Summary collapse
-
#initialize(source, fields, values) ⇒ Replace
constructor
A new instance of Replace.
- #to_a(context, klass) ⇒ Object
- #to_sql(context) ⇒ Object
Constructor Details
#initialize(source, fields, values) ⇒ Replace
Returns a new instance of Replace.
27 28 29 30 31 |
# File 'lib/db/model/statement/replace.rb', line 27 def initialize(source, fields, values) @source = source @fields = fields @values = values end |
Instance Method Details
#to_a(context, klass) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/db/model/statement/replace.rb', line 49 def to_a(context, klass) to_sql(context).call do |connection| result = connection.next_result keys = result.field_names.map(&:to_sym) result.map do |row| klass.new(context, keys.zip(row).to_h) end end end |
#to_sql(context) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/db/model/statement/replace.rb', line 33 def to_sql(context) statement = context.query("REPLACE INTO") statement.identifier(@source.type) statement.clause("(") @fields.append_to(statement) statement.clause(") VALUES") @values.append_to(statement) statement.clause("RETURNING *") return statement end |