Class: CloneKit::Cloners::MongoidRulesetCloner
- Inherits:
-
Object
- Object
- CloneKit::Cloners::MongoidRulesetCloner
- Defined in:
- lib/clone_kit/cloners/mongoid_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: CloneKit::IdGenerators::Bson) ⇒ MongoidRulesetCloner
constructor
A new instance of MongoidRulesetCloner.
Constructor Details
#initialize(model_klass, rules: [], id_generator: CloneKit::IdGenerators::Bson) ⇒ MongoidRulesetCloner
Returns a new instance of MongoidRulesetCloner.
11 12 13 14 15 16 17 |
# File 'lib/clone_kit/cloners/mongoid_ruleset_cloner.rb', line 11 def initialize(model_klass, rules: [], id_generator: CloneKit::IdGenerators::Bson) self.model_klass = model_klass self.rules = [ CloneKit::Rules::AllowOnlyMongoidFields.new(model_klass) ] + rules self.id_generator = id_generator end |
Instance Attribute Details
#id_generator ⇒ Object
Returns the value of attribute id_generator.
9 10 11 |
# File 'lib/clone_kit/cloners/mongoid_ruleset_cloner.rb', line 9 def id_generator @id_generator end |
#rules ⇒ Object
Returns the value of attribute rules.
9 10 11 |
# File 'lib/clone_kit/cloners/mongoid_ruleset_cloner.rb', line 9 def rules @rules end |
Instance Method Details
#clone_ids(ids, operation) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/clone_kit/cloners/mongoid_ruleset_cloner.rb', line 19 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 |