crabfarm 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1031e279aeab473f8e46469b3f91383a4dffbd70
4
- data.tar.gz: f366d36831117570d65b999de947bb5d6af0d0d1
3
+ metadata.gz: 45541f82668f0910accb44339916af9e37595470
4
+ data.tar.gz: 99de58252a283fd334a5c1aafc491eec16610c21
5
5
  SHA512:
6
- metadata.gz: a5e46aeefc0f4fe6c96ad2f5d02ee312c826a5a724e20b9797818ddb4c876245b6e58331a85feaafc48ab7b7f97f38c3dd1fd497705c72020559bf84ee8c22e4
7
- data.tar.gz: df9dd5a3874ef38e462d1adfcf8c4ae92bf4b8f7ed0cfda6456d7e3ed6a1ceb2b791e1dd6f89988bec33bdf8d3fa9ef7db86c38515c43ae1de47aa314876063e
6
+ metadata.gz: 826f03dc142d062f35c2e7a3ff0cf7c56c16127704c95f81d39a14a0b702ea57c4da07250471ad0b9f55b3825ef51312317b7fc8c0aced47e1fb3f395e87c5d4
7
+ data.tar.gz: 63863c7f0ede26385cdc1993a97433cfb16911edd593d30488ff5569366aaa38654084f22391c4ce6dad47105b8b691947c37af4ab7ecd9146ee24c1fbc63066
@@ -52,7 +52,7 @@ module Crabfarm
52
52
  browser_dsl: :surfer,
53
53
  output_builder: :hash,
54
54
  driver_factory: nil,
55
- log_path: 'logs',
55
+ log_path: nil,
56
56
  proxy: nil,
57
57
 
58
58
  driver: 'phantomjs',
@@ -95,9 +95,13 @@ module Crabfarm
95
95
  @elapsed = Benchmark.measure do
96
96
  begin
97
97
  ActiveSupport::Dependencies.clear
98
+ logger.info "StateLoop: loading state: #{@next_state_name}"
98
99
  @doc = @context.run_state(@next_state_name, @next_state_params).output_as_json
100
+ logger.info "StateLoop: state loaded successfully: #{@next_state_name}"
99
101
  @error = nil
100
102
  rescue Exception => e
103
+ logger.error "StateLoop: error while loading state: #{@next_state_name}"
104
+ logger.error e
101
105
  @doc = nil
102
106
  @error = e
103
107
  end
@@ -111,6 +115,10 @@ module Crabfarm
111
115
  else sleep 0.2 end
112
116
  end
113
117
  end
118
+
119
+ def logger
120
+ Crabfarm.logger
121
+ end
114
122
  end
115
123
  end
116
124
  end
@@ -66,6 +66,8 @@ module Crabfarm
66
66
  @@evaluator = Engines::SafeStateLoop.new
67
67
  begin
68
68
  Support::CustomPuma.run API, _options
69
+ rescue SystemExit, Interrupt
70
+ # just finish
69
71
  ensure
70
72
  @@evaluator.release
71
73
  end
@@ -12,14 +12,18 @@ module Crabfarm
12
12
 
13
13
  def start
14
14
  find_available_port
15
+ Crabfarm.logger.info "Starting phantomjs in port #{@port}"
15
16
  @pid = Process.spawn({}, phantomjs_cmd)
16
17
  wait_for_server
18
+ Crabfarm.logger.info "Phantomjs started (PID: #{@pid})"
17
19
  end
18
20
 
19
21
  def stop
20
22
  unless @pid.nil?
21
- Process.kill("TERM", @pid)
22
- Process.wait @pid
23
+ Crabfarm.logger.info "Stopping phantomjs (PID: #{@pid})"
24
+ Process.kill "INT", @pid
25
+ Process.wait @pid, Process::WNOHANG
26
+ Crabfarm.logger.info "Phantomjs stopped (PID: #{@pid})"
23
27
  @pid = nil
24
28
  end
25
29
  end
@@ -1,2 +1,4 @@
1
1
  set_browser_dsl :surfer
2
2
  set_driver :phantomjs
3
+
4
+ set_log_path 'logs'
@@ -1,3 +1,3 @@
1
1
  module Crabfarm
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
data/lib/crabfarm.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'logger'
1
2
  require "forwardable"
2
3
  require "active_support/inflector"
3
4
  require "selenium-webdriver"
@@ -20,11 +21,20 @@ require "crabfarm/strategies"
20
21
  module Crabfarm
21
22
 
22
23
  @@config = Configuration.new
24
+ @@logger = nil
23
25
 
24
26
  def self.config
25
27
  @@config
26
28
  end
27
29
 
30
+ def self.logger
31
+ if @@logger.nil?
32
+ @@logger = Logger.new(@@config.log_path.nil? ? STDOUT : File.join(@@config.log_path, 'crawler.log'))
33
+ @@logger.level = Logger::INFO
34
+ end
35
+ @@logger
36
+ end
37
+
28
38
  def self.read_crabfile(_path)
29
39
  @@config.instance_eval File.read _path
30
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crabfarm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ignacio Baixas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-20 00:00:00.000000000 Z
11
+ date: 2015-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jbuilder