Class: Json2sql::UpdateModel

Inherits:
Object
  • Object
show all
Defined in:
lib/json2sql/update_model.rb

Overview

Builds an UPDATE statement for a single table.

Input Hash:

"columns" => { "col" => value, ... }  – columns to SET
"and"     => { ... }                  – WHERE conditions
"or"      => { ... }                  – WHERE conditions (OR)

Value types follow the same rules as InsertModel.

Auto-injected when absent: updated_at → NOW()

Instance Method Summary collapse

Constructor Details

#initialize(sql, table, relation) ⇒ UpdateModel

Returns a new instance of UpdateModel.



16
17
18
19
20
21
22
23
# File 'lib/json2sql/update_model.rb', line 16

def initialize(sql, table, relation)

  @sql = sql

  @table = table.to_s

  @relation = relation
end

Instance Method Details

#build(params) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/json2sql/update_model.rb', line 25

def build(params)

  columns = params["columns"]

  return unless columns.is_a?(Hash)

  columns = build_timestamp(columns)

  @sql << "UPDATE "

  @sql << Sanitizer.keyword_wrap(@table)

  @sql << " SET "

  build_columns(columns)

  WhereModel.new(@sql, @table, @relation).build(params)
end