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.
-
#debug ⇒ Object
Returns the value of attribute debug.
-
#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
31 32 33 34 35 36 37 |
# File 'lib/mongo_mapper_parallel.rb', line 31 def initialize(opts={}) @key = opts[:key] @compiler = opts[:compiler] @future_key = opts[:future_key] @completed = false @debug = opts[:debug].nil? ? true : opts[:debug] end |
Instance Attribute Details
#compiler ⇒ Object (readonly)
Returns the value of attribute compiler.
21 22 23 |
# File 'lib/mongo_mapper_parallel.rb', line 21 def compiler @compiler end |
#completed ⇒ Object
Returns the value of attribute completed.
20 21 22 |
# File 'lib/mongo_mapper_parallel.rb', line 20 def completed @completed end |
#debug ⇒ Object
Returns the value of attribute debug.
22 23 24 |
# File 'lib/mongo_mapper_parallel.rb', line 22 def debug @debug end |
#future_key ⇒ Object
A chunk that will be parallelized
18 19 20 |
# File 'lib/mongo_mapper_parallel.rb', line 18 def future_key @future_key end |
#key ⇒ Object
Returns the value of attribute key.
19 20 21 |
# File 'lib/mongo_mapper_parallel.rb', line 19 def key @key end |
Instance Method Details
#args ⇒ Array, Hash
The arguments to pass to the Javascript function to run on the resources
48 |
# File 'lib/mongo_mapper_parallel.rb', line 48 def args; @compiler.args; end |
#command_class ⇒ Class
The Ruby Class representing the collection containing the resources
53 |
# File 'lib/mongo_mapper_parallel.rb', line 53 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.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/mongo_mapper_parallel.rb', line 57 def compile search_opts = {:name => {:$gte => @key}} if @future_key then search_opts[:name][:$lte] = @future_key end begin command_class.database.command({ :"$eval" => javascript, :args => [@key, @future_key, args], :nolock => true }) rescue Mongo::ConnectionFailure raise Mongo::ConnectionFailure.new "Connection disconnected at position #{@position}" end @completed = true puts "Completed chunk (#{@position})".green if @debug end |
#javascript ⇒ String
The javascript function to run on the resources
42 |
# File 'lib/mongo_mapper_parallel.rb', line 42 def javascript; @compiler.javascript; end |