spidy 0.0.21 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ac50168f51ba6f3687d83cf9f3331d3952946b08032b902390af3a7e405acbd
4
- data.tar.gz: 324e6318e9c2c4dd9ebc1d24bfb57b8fa21b499b050d930a780bbc68f860cb53
3
+ metadata.gz: 54a354e11d7404229aff8394c535cdf06f8fdf2fcd1afc6081a7bf9dceeb00fb
4
+ data.tar.gz: bc89e11adeeffe65fc12bb844014814f2dc56b17db41ab2f08a5c40cfdbd5d18
5
5
  SHA512:
6
- metadata.gz: f8a83b0d24d19f8adf09aea6f26025fee31b1fbb52accf0d66bd017c2d1ebd9e93ad7c624def3fb4f599a05ab1e75a9c8c0a356718482adadcec5280d9910ed1
7
- data.tar.gz: 15800fe10242aa6e7049d5b4cec118cc882093ac104b1e5c243cbee257ebf418e23b2433d33b1cb83b0123fb2d50f2dce842c90aed9e1ff4567d5eaae72300d3
6
+ metadata.gz: 271c80cfcef9dc172a442c22c1db133d0250b016b78e0fefea78b5e6ad287e7d994780345dcec1a681a443956a6b16cac703dce96dc1ae3d410a35a728386ff8
7
+ data.tar.gz: b4a0ae085bf77a4e3f7f19604088b9e18c6444cff622cacacfeef2ca0a5a463aadf30a289b2ce2df14ffbe9887e95e9a79cc341f763779a5f14ef9281a8796ac
@@ -8,10 +8,12 @@ module Spidy::Connector::Html
8
8
  # retry class
9
9
  #
10
10
  class Retry < StandardError
11
+ attr_reader :page
11
12
  attr_reader :response_code
12
13
  attr_reader :wait_time
13
14
 
14
15
  def initialize(wait_time: 2, page: nil, error: nil)
16
+ @page = page
15
17
  @wait_time = wait_time
16
18
  @response_code = error.try(:response_code) || page.try(:response_code)
17
19
  end
@@ -33,7 +35,7 @@ module Spidy::Connector::Html
33
35
  attr_reader :agent
34
36
  attr_accessor :logger
35
37
 
36
- def call(url, encoding: nil, retry_count: 3, &yielder)
38
+ def call(url, encoding: nil, retry_count: 5, &yielder)
37
39
  fail 'url is not specified' if url.blank?
38
40
  if encoding
39
41
  agent.default_encoding = encoding
@@ -45,16 +47,8 @@ module Spidy::Connector::Html
45
47
 
46
48
  private
47
49
 
48
- # rubocop:disable Metrics/MethodLength
49
50
  def get(url, retry_count, yielder)
50
- agent.get(url) do |page|
51
- fail Retry, page: page, wait_time: 5 if page.title == 'Sorry, unable to access page...'
52
-
53
- yielder.call(page)
54
- end
55
- rescue Mechanize::ResponseCodeError => e
56
- raise Retry, error: e if e.response_code == '429'
57
- raise e
51
+ connect(url, retry_count, yielder)
58
52
  rescue Retry => e
59
53
  logger.call('retry.accessed': Time.current,
60
54
  'retry.uri': url,
@@ -71,6 +65,19 @@ module Spidy::Connector::Html
71
65
  end
72
66
  raise e
73
67
  end
74
- # rubocop:enable Metrics/MethodLength
68
+
69
+ def connect(url, retry_count, yielder)
70
+ result = nil
71
+ agent.get(url) do |page|
72
+ fail Retry, page: page, wait_time: 5 if page.title == 'Sorry, unable to access page...'
73
+
74
+ result = yielder.call(page)
75
+ end
76
+ result
77
+ rescue Mechanize::ResponseCodeError => e
78
+ raise Retry, error: e if e.response_code == '429'
79
+ raise e
80
+ end
81
+
75
82
  end
76
83
  end
data/lib/spidy/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spidy
4
- VERSION = '0.0.21'
4
+ VERSION = '0.0.22'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spidy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.21
4
+ version: 0.0.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - aileron
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-11 00:00:00.000000000 Z
11
+ date: 2019-12-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler