spidy 0.1.2 → 0.1.3

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: 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