Class: CloneKit::Cloners::ActiveRecordRulesetCloner
- Inherits:
-
Object
- Object
- CloneKit::Cloners::ActiveRecordRulesetCloner
- Defined in:
- lib/clone_kit/cloners/active_record_ruleset_cloner.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#id_generator ⇒ Object
Returns the value of attribute id_generator.
-
#rules ⇒ Object
Returns the value of attribute rules.
Instance Method Summary collapse
- #clone_ids(ids, operation) ⇒ Object
-
#initialize(model_klass, rules: [], id_generator: IdGenerators::Uuid) ⇒ ActiveRecordRulesetCloner
constructor
A new instance of ActiveRecordRulesetCloner.
Constructor Details
#initialize(model_klass, rules: [], id_generator: IdGenerators::Uuid) ⇒ ActiveRecordRulesetCloner
Returns a new instance of ActiveRecordRulesetCloner.
10 11 12 13 14 |
# File 'lib/clone_kit/cloners/active_record_ruleset_cloner.rb', line 10 def initialize(model_klass, rules: [], id_generator: IdGenerators::Uuid) self.model_klass = model_klass self.rules = rules self.id_generator = id_generator end |
Instance Attribute Details
#id_generator ⇒ Object
Returns the value of attribute id_generator.
8 9 10 |
# File 'lib/clone_kit/cloners/active_record_ruleset_cloner.rb', line 8 def id_generator @id_generator end |
#rules ⇒ Object
Returns the value of attribute rules.
8 9 10 |
# File 'lib/clone_kit/cloners/active_record_ruleset_cloner.rb', line 8 def rules @rules end |
Instance Method Details
#clone_ids(ids, operation) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/clone_kit/cloners/active_record_ruleset_cloner.rb', line 16 def clone_ids(ids, operation) initialize_cloner(operation) map = {} result = [] each_existing_record(ids) do |attributes| attributes = clone(attributes) result << apply_rules_and_save(map, attributes) end CloneKit::SharedIdMap.new(operation.id).insert_many(model_klass, map) result end |