class ROM::CSV::Commands::Update

Public Instance Methods

dataset() click to toggle source
# File lib/rom/csv/commands/update.rb, line 38
def dataset
  relation.dataset
end
execute(tuple) click to toggle source
# File lib/rom/csv/commands/update.rb, line 10
def execute(tuple)
  attributes = input[tuple]
  validator.call(attributes)
  tuple = attributes.to_h

  update(tuple)
end
original_dataset() click to toggle source
# File lib/rom/csv/commands/update.rb, line 42
def original_dataset
  source.dataset
end
update(tuple) click to toggle source
# File lib/rom/csv/commands/update.rb, line 18
def update(tuple)
  original_data = original_dataset.to_a
  output = []

  dataset.each do |dataset_tuple|
    index = original_data.index(dataset_tuple)
    update_dataset(index, tuple)
    output << original_dataset.data[index].to_hash
  end

  original_dataset.sync!
  output
end
update_dataset(index, tuple) click to toggle source
# File lib/rom/csv/commands/update.rb, line 32
def update_dataset(index, tuple)
  tuple.each do |key, value|
    original_dataset.data[index][key] = value
  end
end