class Crabfarm::BaseNavigator
Attributes
params[R]
Public Class Methods
new(_context, _params)
click to toggle source
# File lib/crabfarm/base_navigator.rb, line 15 def initialize(_context, _params) @context = _context @params = _params end
Public Instance Methods
browser(_name=nil)
click to toggle source
# File lib/crabfarm/base_navigator.rb, line 30 def browser(_name=nil) @context.pool.driver(_name) end
fork_each(_enumerator, &_block)
click to toggle source
# File lib/crabfarm/base_navigator.rb, line 51 def fork_each(_enumerator, &_block) session_id = 0 mutex = Mutex.new ths = _enumerator.map do |value| session_id += 1 start_forked_navigation("th_session_#{session_id}", value, _block, mutex) end ThreadsWait.all_waits(*ths) end
reduce(_target=nil, _options={})
click to toggle source
# File lib/crabfarm/base_navigator.rb, line 38 def reduce(_target=nil, _options={}) if _target.is_a? Hash _options = _target _target = browser elsif _target.nil? _target = browser end reduce_using(_options.delete(:using) || self.class.name, _target, _options) end
Also aliased as: reduce_with_defaults
run()
click to toggle source
# File lib/crabfarm/base_navigator.rb, line 34 def run raise NotImplementedError.new end
session()
click to toggle source
# File lib/crabfarm/base_navigator.rb, line 20 def session @context.store end
Private Instance Methods
reduce_using(_name_or_class, _target, _options={})
click to toggle source
# File lib/crabfarm/base_navigator.rb, line 63 def reduce_using(_name_or_class, _target, _options={}) reducer_class = Utils::Resolve.reducer_class _name_or_class reducer = Factories::Reducer.build reducer_class, _target, @params.merge(_options) reducer.run reducer end