Class: DataMapper::Queries::UpdateStatement

Inherits:
Object
  • Object
show all
Defined in:
lib/data_mapper/queries/update_statement.rb

Instance Method Summary collapse

Constructor Details

#initialize(database, instance) ⇒ UpdateStatement

Returns a new instance of UpdateStatement.



6
7
8
# File 'lib/data_mapper/queries/update_statement.rb', line 6

def initialize(database, instance)
  @database, @instance = database, instance
end

Instance Method Details

#to_sqlObject



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/data_mapper/queries/update_statement.rb', line 10

def to_sql
  table = @database[@instance.class]
  
  sql = "UPDATE " << table.to_sql << " SET "
  
  @instance.dirty_attributes.map do |k, v|
    sql << table[k].to_sql << " = " << @database.quote_value(v) << ", "
  end
  
  sql[0, sql.size - 2] << " WHERE #{table.key.to_sql} = " << @database.quote_value(@instance.key)
end