Class: MongoMapperParallel::Key
- Inherits:
-
Object
- Object
- MongoMapperParallel::Key
- Defined in:
- lib/mongo_mapper_parallel.rb
Instance Attribute Summary collapse
-
#compiler ⇒ Object
readonly
Returns the value of attribute compiler.
-
#completed ⇒ Object
Returns the value of attribute completed.
-
#future_key ⇒ Object
A chunk that will be parallelized.
-
#key ⇒ Object
Returns the value of attribute key.
Instance Method Summary collapse
-
#args ⇒ Array, Hash
The arguments to pass to the Javascript function to run on the resources.
-
#command_class ⇒ Class
The Ruby Class representing the collection containing the resources.
-
#compile ⇒ Object
Sends the Javascript function, the range, and the arguments to the MongoDB instance for computation via the
db.runCommandcommand. -
#initialize(opts = {}) ⇒ Key
constructor
A chunk that will be parallelized.
-
#javascript ⇒ String
The javascript function to run on the resources.
Constructor Details
#initialize(opts = {}) ⇒ Key
A chunk that will be parallelized
29 30 31 32 33 34 |
# File 'lib/mongo_mapper_parallel.rb', line 29 def initialize(opts={}) @key = opts[:key] @compiler = opts[:compiler] @future_key = opts[:future_key] @completed = false end |
Instance Attribute Details
#compiler ⇒ Object (readonly)
Returns the value of attribute compiler.
20 21 22 |
# File 'lib/mongo_mapper_parallel.rb', line 20 def compiler @compiler end |
#completed ⇒ Object
Returns the value of attribute completed.
19 20 21 |
# File 'lib/mongo_mapper_parallel.rb', line 19 def completed @completed end |
#future_key ⇒ Object
A chunk that will be parallelized
17 18 19 |
# File 'lib/mongo_mapper_parallel.rb', line 17 def future_key @future_key end |
#key ⇒ Object
Returns the value of attribute key.
18 19 20 |
# File 'lib/mongo_mapper_parallel.rb', line 18 def key @key end |
Instance Method Details
#args ⇒ Array, Hash
The arguments to pass to the Javascript function to run on the resources
45 |
# File 'lib/mongo_mapper_parallel.rb', line 45 def args; @compiler.args; end |
#command_class ⇒ Class
The Ruby Class representing the collection containing the resources
50 |
# File 'lib/mongo_mapper_parallel.rb', line 50 def command_class; @compiler.command_class; end |
#compile ⇒ Object
Sends the Javascript function, the range, and the arguments to the MongoDB instance for computation via the db.runCommand command.
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/mongo_mapper_parallel.rb', line 54 def compile search_opts = {:name => {:$gte => @key}} if @future_key then search_opts[:name][:$lte] = @future_key end command_class.database.command({ :"$eval" => javascript, :args => [@key, @future_key, args], :nolock => true }) @completed = true puts "Completed chunk".green end |
#javascript ⇒ String
The javascript function to run on the resources
39 |
# File 'lib/mongo_mapper_parallel.rb', line 39 def javascript; @compiler.javascript; end |