Class: Mongoid::CollectionSeparatable::Tasks::Separate
- Inherits:
-
Object
- Object
- Mongoid::CollectionSeparatable::Tasks::Separate
- Defined in:
- lib/mongoid/collection_separatable/tasks/separate.rb
Instance Attribute Summary collapse
-
#condition_key ⇒ Object
Returns the value of attribute condition_key.
-
#condition_value ⇒ Object
Returns the value of attribute condition_value.
-
#origin_class ⇒ Object
Returns the value of attribute origin_class.
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ Separate
constructor
A new instance of Separate.
- #run ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Separate
Returns a new instance of Separate.
7 8 9 10 11 |
# File 'lib/mongoid/collection_separatable/tasks/separate.rb', line 7 def initialize opts={} @origin_class = opts[:origin_class].constantize @condition_key = opts[:condition_key] @condition_value = opts[:condition_value] = BSON::ObjectId.legal?(opts[:condition_value]) ? BSON::ObjectId.from_string(opts[:condition_value]) : opts[:condition_value] end |
Instance Attribute Details
#condition_key ⇒ Object
Returns the value of attribute condition_key.
5 6 7 |
# File 'lib/mongoid/collection_separatable/tasks/separate.rb', line 5 def condition_key @condition_key end |
#condition_value ⇒ Object
Returns the value of attribute condition_value.
5 6 7 |
# File 'lib/mongoid/collection_separatable/tasks/separate.rb', line 5 def condition_value @condition_value end |
#origin_class ⇒ Object
Returns the value of attribute origin_class.
5 6 7 |
# File 'lib/mongoid/collection_separatable/tasks/separate.rb', line 5 def origin_class @origin_class end |
Instance Method Details
#run ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/mongoid/collection_separatable/tasks/separate.rb', line 13 def run target_collection = "#{origin_class.collection_name}_#{condition_value}" origin_class.collection.aggregate([ {'$match': {condition_key => condition_value}}, {'$out': target_collection} ]).first end |