spidy 0.1.2 → 0.1.3

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
  SHA256:
3
- metadata.gz: 325acf19ee696f081052597f6e7bc327d7f57b024340661ceb314f2c86501963
4
- data.tar.gz: f83f4cbb62b5d09ed3707711ed9ab9dd273e71966a4fff40cef481225ed9f473
3
+ metadata.gz: 246490222f930cca4d8697c6211a458444e39fd5e3723c53f6d3d0e658b36b3f
4
+ data.tar.gz: 429a24810fd5e2ebe6fb96ff97dd7ef86fa375513420a56b8237c874c84fc58d
5
5
  SHA512:
6
- metadata.gz: ed3bfa6b4868a1603bec5bba17affeb6f6674e606a25cd0f84cbf56cfcf7bd4fba11b01cfc20532dc64cbffb8fa648c87a34b03f888e11545cf92171d0d40f0d
7
- data.tar.gz: c37322aaa95e33a3697233c66245965fd9690329f678ba9e509c31117984318c5a8aaf5145d08f713c05b8d53b0129488347da9acec7cc97a16d0e8d3e9eef96
6
+ metadata.gz: 4a7c712900ae89e70fb6ee5cc633f57aeae30a77d825cef57c0b1f9d736f0b72c1a6762b89c01a9c73aea1197917125e2187518f5363d04dd8bcb96735ade69a
7
+ data.tar.gz: d4c2884fa2bb4eb6f02a77b35f9e11ff069d781a537f9e1b8e5210f307f8176575cdd2f22f7147b65d5aab17d6adb204d8c2572f9f1c0a50e65dd38705fb7dea
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- spidy (0.0.24)
4
+ spidy (0.1.3)
5
5
  activesupport
6
6
  mechanize
7
7
  pry
@@ -9,7 +9,7 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activesupport (6.0.1)
12
+ activesupport (6.0.2.1)
13
13
  concurrent-ruby (~> 1.0, >= 1.0.2)
14
14
  i18n (>= 0.7, < 2)
15
15
  minitest (~> 5.1)
@@ -24,7 +24,7 @@ GEM
24
24
  ffaker (2.10.0)
25
25
  http-cookie (1.0.3)
26
26
  domain_name (~> 0.5)
27
- i18n (1.7.0)
27
+ i18n (1.8.2)
28
28
  concurrent-ruby (~> 1.0)
29
29
  mechanize (2.7.6)
30
30
  domain_name (~> 0.5, >= 0.5.1)
@@ -36,15 +36,15 @@ GEM
36
36
  ntlm-http (~> 0.1, >= 0.1.1)
37
37
  webrobots (>= 0.0.9, < 0.2)
38
38
  method_source (0.9.2)
39
- mime-types (3.3)
39
+ mime-types (3.3.1)
40
40
  mime-types-data (~> 3.2015)
41
41
  mime-types-data (3.2019.1009)
42
42
  mini_portile2 (2.4.0)
43
- minitest (5.13.0)
43
+ minitest (5.14.0)
44
44
  net-http-digest_auth (1.4.1)
45
45
  net-http-persistent (3.1.0)
46
46
  connection_pool (~> 2.2)
47
- nokogiri (1.10.5)
47
+ nokogiri (1.10.7)
48
48
  mini_portile2 (~> 2.4.0)
49
49
  ntlm-http (0.1.1)
50
50
  pry (0.12.2)
@@ -65,7 +65,7 @@ GEM
65
65
  rspec-support (~> 3.8.0)
66
66
  rspec-support (3.8.2)
67
67
  thread_safe (0.3.6)
68
- tzinfo (1.2.5)
68
+ tzinfo (1.2.6)
69
69
  thread_safe (~> 0.1)
70
70
  unf (0.1.4)
71
71
  unf_ext
@@ -85,4 +85,4 @@ DEPENDENCIES
85
85
  spidy!
86
86
 
87
87
  BUNDLED WITH
88
- 2.0.2
88
+ 2.1.2
data/lib/spidy/binder.rb CHANGED
@@ -10,17 +10,18 @@ module Spidy::Binder
10
10
  autoload :Xml
11
11
 
12
12
  class Caller
13
- def initialize(binder)
13
+ def initialize(spidy, binder)
14
+ @spidy = spidy
14
15
  @binder = binder
15
16
  end
16
17
 
17
18
  def call(source, url: nil, define: nil)
18
- yield Class.new(@binder, &define).new(source, url: url)
19
+ yield Class.new(@binder, &define).new(@spidy, source, url)
19
20
  end
20
21
  end
21
22
 
22
- def self.get(value)
23
- return Caller.new(const_get(value.to_s.classify)) if name.is_a?(String) || name.is_a?(Symbol)
23
+ def self.get(spidy, value)
24
+ return Caller.new(spidy, const_get(value.to_s.classify)) if name.is_a?(String) || name.is_a?(Symbol)
24
25
 
25
26
  value
26
27
  end
@@ -24,11 +24,16 @@ class Spidy::Binder::Html
24
24
  attr_reader :html, :url
25
25
  alias_method :resource, :html
26
26
 
27
- def initialize(html, url: nil)
27
+ def initialize(spidy, html, url)
28
+ @spidy = spidy
28
29
  @url = url
29
30
  @html = html
30
31
  end
31
32
 
33
+ def scraper(name, source)
34
+ lambda { |&block| @spidy.call(source, name: name, &block) }
35
+ end
36
+
32
37
  def to_s
33
38
  to_h.to_json
34
39
  end
@@ -22,11 +22,16 @@ class Spidy::Binder::Json
22
22
  attr_reader :json, :url
23
23
  alias_method :resource, :json
24
24
 
25
- def initialize(json, url: nil)
25
+ def initialize(spidy, json, url)
26
+ @spidy = spidy
26
27
  @json = json
27
28
  @url = url
28
29
  end
29
30
 
31
+ def scraper(name, source)
32
+ lambda { |&block| @spidy.call(source, name: name, &block) }
33
+ end
34
+
30
35
  def to_s
31
36
  to_h.to_json
32
37
  end
@@ -24,11 +24,16 @@ class Spidy::Binder::Xml
24
24
  attr_reader :xml, :url
25
25
  alias_method :resource, :xml
26
26
 
27
- def initialize(xml, url: nil)
27
+ def initialize(spidy, xml, url)
28
+ @spidy = spidy
28
29
  @xml = xml
29
30
  @url = url
30
31
  end
31
32
 
33
+ def scraper(name, source)
34
+ lambda { |&block| @spidy.call(source, name: name, &block) }
35
+ end
36
+
32
37
  def to_s
33
38
  to_h.to_json
34
39
  end
@@ -35,7 +35,7 @@ module Spidy::Definition
35
35
  def define(name = :default, connector: nil, binder: nil, as: nil, &define_block)
36
36
  @namespace ||= {}
37
37
  connector = Spidy::Connector.get(connector || as)
38
- binder = Spidy::Binder.get(binder || as)
38
+ binder = Spidy::Binder.get(self, binder || as)
39
39
  @namespace[:"#{name}_scraper"] = define_proc(connector, binder, define_block)
40
40
  end
41
41
 
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.1.2'
4
+ VERSION = '0.1.3'
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.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - aileron
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-21 00:00:00.000000000 Z
11
+ date: 2020-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler