# File lib/rom/sql/commands/update.rb, line 48 def primary_key relation.primary_key end
class ROM::SQL::Commands::Update
Update
command
@api public
Public Instance Methods
execute(tuple)
click to toggle source
Updates existing tuple in a relation
@return [Array<Hash>, Hash]
@api public
# File lib/rom/sql/commands/update.rb, line 26 def execute(tuple) update(input[tuple].to_h) end
Private Instance Methods
finalize(tuples, *)
click to toggle source
@api private
# File lib/rom/sql/commands/update.rb, line 33 def finalize(tuples, *) tuples.map { |t| relation.output_schema[t] } end
primary_key()
click to toggle source
@api private
update(tuple)
click to toggle source
Executes update statement for a given tuple
@api private
# File lib/rom/sql/commands/update.rb, line 40 def update(tuple) pks = relation.map { |t| t[primary_key] } dataset = relation.dataset dataset.update(tuple) dataset.unfiltered.where(primary_key => pks).to_a end
with_input_tuples(tuples) { |tuple| ... }
click to toggle source
Yields tuples for insertion or return an enumerator
@api private
# File lib/rom/sql/commands/update.rb, line 55 def with_input_tuples(tuples) input_tuples = Array([tuples]).flatten(1).map return input_tuples unless block_given? input_tuples.each { |tuple| yield(tuple) } end