Class: Micdrop::Ext::Sequel::UpdateSink
- Inherits:
-
Object
- Object
- Micdrop::Ext::Sequel::UpdateSink
- Defined in:
- lib/micdrop/ext/sequel.rb
Overview
A sink which will always issue an update statement
Instance Method Summary collapse
- #<<(collector) ⇒ Object
-
#initialize(dataset, key_columns) ⇒ UpdateSink
constructor
A new instance of UpdateSink.
Constructor Details
#initialize(dataset, key_columns) ⇒ UpdateSink
Returns a new instance of UpdateSink.
25 26 27 28 29 30 31 32 33 |
# File 'lib/micdrop/ext/sequel.rb', line 25 def initialize(dataset, key_columns) @dataset = dataset @key_columns = if key_columns.is_a? Symbol [key_columns] elsif key_columns.respond_to? :each key_columns # TODO: else throw error end end |
Instance Method Details
#<<(collector) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/micdrop/ext/sequel.rb', line 35 def <<(collector) dataset = @dataset @key_columns.each do |col| dataset = dataset.where(**{ col => collector[col] }) end dataset.update(**collector) end |