Module: Crabfarm

Defined in:
lib/crabfarm.rb,
lib/crabfarm/cli.rb,
lib/crabfarm/base.rb,
lib/crabfarm/errors.rb,
lib/crabfarm/context.rb,
lib/crabfarm/version.rb,
lib/crabfarm/modes/live.rb,
lib/crabfarm/strategies.rb,
lib/crabfarm/base_struct.rb,
lib/crabfarm/driver_pool.rb,
lib/crabfarm/live/viewer.rb,
lib/crabfarm/state_store.rb,
lib/crabfarm/support/gli.rb,
lib/crabfarm/base_reducer.rb,
lib/crabfarm/live/context.rb,
lib/crabfarm/live/manager.rb,
lib/crabfarm/live/watcher.rb,
lib/crabfarm/modes/server.rb,
lib/crabfarm/utils/naming.rb,
lib/crabfarm/configuration.rb,
lib/crabfarm/modes/console.rb,
lib/crabfarm/utils/console.rb,
lib/crabfarm/utils/resolve.rb,
lib/crabfarm/base_navigator.rb,
lib/crabfarm/crabtrap_runner.rb,
lib/crabfarm/live/controller.rb,
lib/crabfarm/modes/generator.rb,
lib/crabfarm/modes/publisher.rb,
lib/crabfarm/utils/webdriver.rb,
lib/crabfarm/assertion/fields.rb,
lib/crabfarm/crabtrap_context.rb,
lib/crabfarm/forked_navigator.rb,
lib/crabfarm/assertion/context.rb,
lib/crabfarm/assertion/parsers.rb,
lib/crabfarm/assertion/wrapper.rb,
lib/crabfarm/factories/context.rb,
lib/crabfarm/factories/reducer.rb,
lib/crabfarm/live/interactable.rb,
lib/crabfarm/rspec/reducer_spy.rb,
lib/crabfarm/transition_service.rb,
lib/crabfarm/utils/rspec_runner.rb,
lib/crabfarm/factories/decorable.rb,
lib/crabfarm/factories/navigator.rb,
lib/crabfarm/live/reducer_runner.rb,
lib/crabfarm/support/custom_puma.rb,
lib/crabfarm/utils/port_discovery.rb,
lib/crabfarm/adapters/browser/base.rb,
lib/crabfarm/adapters/browser/noop.rb,
lib/crabfarm/assertion/validations.rb,
lib/crabfarm/live/navigator_runner.rb,
lib/crabfarm/modes/recorder/memento.rb,
lib/crabfarm/support/phantom_runner.rb,
lib/crabfarm/adapters/browser/chenso.rb,
lib/crabfarm/adapters/browser/chrome.rb,
lib/crabfarm/adapters/parser/pincers.rb,
lib/crabfarm/modes/recorder/snapshot.rb,
lib/crabfarm/adapters/browser/firefox.rb,
lib/crabfarm/adapters/parser/nokogiri.rb,
lib/crabfarm/live/reducer_runner_rspec.rb,
lib/crabfarm/rspec/reducer_spy_manager.rb,
lib/crabfarm/support/webdriver_factory.rb,
lib/crabfarm/adapters/parser/pdf_reader.rb,
lib/crabfarm/engines/sync_state_manager.rb,
lib/crabfarm/factories/snapshot_reducer.rb,
lib/crabfarm/live/reducer_runner_direct.rb,
lib/crabfarm/rspec/reducer_spec_helpers.rb,
lib/crabfarm/adapters/browser/phantom_js.rb,
lib/crabfarm/engines/async_state_manager.rb,
lib/crabfarm/live/navigator_runner_rspec.rb,
lib/crabfarm/live/navigator_runner_direct.rb,
lib/crabfarm/rspec/navigator_spec_helpers.rb,
lib/crabfarm/modes/shared/snapshot_decorator.rb,
lib/crabfarm/adapters/driver_wrapper/capybara.rb,
lib/crabfarm/adapters/browser/remote_webdriver.rb,
lib/crabfarm/modes/shared/interactive_decorator.rb,
lib/crabfarm/adapters/browser/abstract_webdriver.rb,
lib/crabfarm/adapters/driver_wrapper/pincers.rb,
lib/crabfarm/adapters/driver_wrapper/watir.rb

Defined Under Namespace

Modules: Adapters, Assertion, Base, Engines, Factories, Live, Modes, RSpec, Strategies, Support, Utils Classes: ArgumentError, AssertionError, BaseNavigator, BaseReducer, BaseStruct, BinaryMissingError, CLI, Configuration, ConfigurationError, Context, CrabtrapContext, CrabtrapRunner, CrawlerError, DriverPool, Error, ForkedNavigator, LiveInterrupted, ResourceNotFoundError, StateStore, StillWorkingError, TimeoutError, TransitionService

Constant Summary collapse

VERSION =
"0.7.5"
@@config =
Configuration.new
@@logger =
nil
@@live =
nil
@@debug =
false

Class Method Summary collapse

Class Method Details

.app_pathObject



41
42
43
# File 'lib/crabfarm.rb', line 41

def self.app_path
  CF_PATH
end

.configObject



45
46
47
# File 'lib/crabfarm.rb', line 45

def self.config
  @@config
end

.debug?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/crabfarm.rb', line 83

def self.debug?
  @@debug
end

.enable_debugging!Object



78
79
80
81
# File 'lib/crabfarm.rb', line 78

def self.enable_debugging!
  require 'pry-byebug'
  @@debug = true
end

.inside_crawler_app?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/crabfarm.rb', line 37

def self.inside_crawler_app?
  defined? CF_PATH
end

.install_live_backend!Object



65
66
67
68
# File 'lib/crabfarm.rb', line 65

def self.install_live_backend!
  require "crabfarm/live/manager"
  @@live = Live::Manager.new
end

.liveObject



70
71
72
# File 'lib/crabfarm.rb', line 70

def self.live
  @@live
end

.live?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/crabfarm.rb', line 74

def self.live?
  not @@live.nil?
end

.loggerObject



49
50
51
52
53
54
55
56
57
58
59
# File 'lib/crabfarm.rb', line 49

def self.logger
  if @@logger.nil?
    if @@config.log_path.nil? or @@config.log_path.empty?
      @@logger = Logger.new STDOUT
    else
      @@logger = Logger.new File.join(@@config.log_path, 'crawler.log')
    end
  end

  @@logger
end

.read_crabfile(_path) ⇒ Object



61
62
63
# File 'lib/crabfarm.rb', line 61

def self.read_crabfile(_path)
  @@config.instance_eval File.read _path
end

.rootObject



33
34
35
# File 'lib/crabfarm.rb', line 33

def self.root
  File.dirname __dir__
end

.with_context(_memento = nil) ⇒ Object



87
88
89
90
91
92
93
94
95
# File 'lib/crabfarm.rb', line 87

def self.with_context(_memento=nil)
  ctx = Factories::Context.build _memento
  begin
    ctx.prepare
    yield ctx
  ensure
    ctx.release
  end
end