Class: CloneKit::Decorators::EmbeddedClonerDecorator

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/clone_kit/decorators/embedded_cloner_decorator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cloner, records:) ⇒ EmbeddedClonerDecorator

Returns a new instance of EmbeddedClonerDecorator.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/clone_kit/decorators/embedded_cloner_decorator.rb', line 10

def initialize(cloner, records:)
  @records = records

  cloner.define_singleton_method(:each_existing_record) do |ids, &block|
    records.compact.select { |r| ids.include?(r["_id"]) }.each do |record|
      block.call(record)
    end
  end

  cloner.define_singleton_method(:save_or_fail) do |attributes|
    # NOP
  end

  super(cloner)
end

Instance Attribute Details

#recordsObject (readonly)

Returns the value of attribute records.



8
9
10
# File 'lib/clone_kit/decorators/embedded_cloner_decorator.rb', line 8

def records
  @records
end

Instance Method Details

#clone_embedded(operation) ⇒ Object



26
27
28
# File 'lib/clone_kit/decorators/embedded_cloner_decorator.rb', line 26

def clone_embedded(operation)
  clone_ids(records.compact.map { |r| r["_id"] }, operation)
end