spidy 0.0.23 → 0.0.24

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: 7cf037c791411c37905e63faa8ed48c49f7735280d406846467ed0ed829e6a1e
4
- data.tar.gz: a34996a3fb583b9066c67509696ab972f368bbde1c2900d8f7304d92ca4741df
3
+ metadata.gz: 11b932ab32a92fe7cca2a4c7fb91204098204d2b60d3226137fc41c783f50997
4
+ data.tar.gz: 34fcddd2519415792d0222bf0c8176dd06a734cc48db3025ccbadd6d10a80582
5
5
  SHA512:
6
- metadata.gz: bfba65237f7975ebc995f52827dfd6cd975afaacdb01dbb6413c8ad07b88e8f3edb4a399ce505e10f0ce7c9acca39e7ccb2f3f5d1984a6b49b1a6de23058899c
7
- data.tar.gz: 0b7fb9f8c095b5e1153617493a404accfe4764dee34a68c3b8ba6d489138c0c0b1b87687b5376c16e08edd183f2972a99b3986e02f69dbb4a8ebe2d3f490bf09
6
+ metadata.gz: 64fe7aa6a460a4c13d90749827f85904c1cf8ca14391cc2e12f22e2ec4b5b8a3fd7776ad282e178cadddaa6db197a83f49b5870b27aaa8356b79d20565992383
7
+ data.tar.gz: a8405babf239188f933a13b5213bbc67efe5610a7e7f68bfa49c646a755ecebba049cdab4dbe6b52b085c71f6a0ffd82609ea5aadf9ef355bd8bf6200bdfe5f0
@@ -4,7 +4,23 @@
4
4
  # Bind html and convert to object
5
5
  #
6
6
  class Spidy::Binder::Html
7
- class_attribute :names, default: []
7
+ class << self
8
+ attr_reader :names
9
+
10
+ @names = []
11
+ def let(name, query = nil, &block)
12
+ @names << name
13
+ define_method(name) do
14
+ return html.at(query)&.text if block.nil?
15
+ return instance_exec(&block) if query.blank?
16
+
17
+ instance_exec(html.at(query), &block)
18
+ rescue NoMethodError => e
19
+ raise "#{html.uri} ##{name} => #{e.message}"
20
+ end
21
+ end
22
+ end
23
+
8
24
  attr_reader :html, :source, :url
9
25
 
10
26
  def initialize(html, url: nil)
@@ -18,18 +34,6 @@ class Spidy::Binder::Html
18
34
  end
19
35
 
20
36
  def to_h
21
- names.map { |name| [name, send(name)] }.to_h
22
- end
23
-
24
- def self.let(name, query = nil, &block)
25
- names << name
26
- define_method(name) do
27
- return html.at(query)&.text if block.nil?
28
- return instance_exec(&block) if query.blank?
29
-
30
- instance_exec(html.at(query), &block)
31
- rescue NoMethodError => e
32
- raise "#{html.uri} ##{name} => #{e.message}"
33
- end
37
+ self.class.names.map { |name| [name, send(name)] }.to_h
34
38
  end
35
39
  end
@@ -4,7 +4,22 @@
4
4
  # Bind json and convert to object
5
5
  #
6
6
  class Spidy::Binder::Json
7
- class_attribute :names, default: []
7
+ class << self
8
+ attr_reader :names
9
+
10
+ @names = []
11
+
12
+ def let(name, *query, &block)
13
+ @names << name
14
+ define_method(name) do
15
+ result = json.dig(*query) if query.present?
16
+ return result if block.nil?
17
+
18
+ instance_exec(result, &block)
19
+ end
20
+ end
21
+ end
22
+
8
23
  attr_reader :json, :source, :url
9
24
 
10
25
  def initialize(json, url: nil)
@@ -18,16 +33,6 @@ class Spidy::Binder::Json
18
33
  end
19
34
 
20
35
  def to_h
21
- names.map { |name| [name, send(name)] }.to_h
22
- end
23
-
24
- def self.let(name, *query, &block)
25
- names << name
26
- define_method(name) do
27
- result = json.dig(*query) if query.present?
28
- return result if block.nil?
29
-
30
- instance_exec(result, &block)
31
- end
36
+ self.class.names.map { |name| [name, send(name)] }.to_h
32
37
  end
33
38
  end
@@ -4,7 +4,23 @@
4
4
  # Bind xml and convert to object
5
5
  #
6
6
  class Spidy::Binder::Xml
7
- class_attribute :names, default: []
7
+ class << self
8
+ attr_reader :names
9
+ @names = []
10
+
11
+ def self.let(name, query = nil, &block)
12
+ @names << name
13
+ define_method(name) do
14
+ return xml.at(query)&.text if block.nil?
15
+ return instance_exec(&block) if query.blank?
16
+
17
+ instance_exec(xml.at(query), &block)
18
+ rescue NoMethodError => e
19
+ raise "#{xml} ##{name} => #{e.message}"
20
+ end
21
+ end
22
+ end
23
+
8
24
  attr_reader :xml, :source, :url
9
25
 
10
26
  def initialize(xml, url: nil)
@@ -18,18 +34,6 @@ class Spidy::Binder::Xml
18
34
  end
19
35
 
20
36
  def to_h
21
- names.map { |name| [name, send(name)] }.to_h
22
- end
23
-
24
- def self.let(name, query = nil, &block)
25
- names << name
26
- define_method(name) do
27
- return xml.at(query)&.text if block.nil?
28
- return instance_exec(&block) if query.blank?
29
-
30
- instance_exec(xml.at(query), &block)
31
- rescue NoMethodError => e
32
- raise "#{xml} ##{name} => #{e.message}"
33
- end
37
+ self.class.names.map { |name| [name, send(name)] }.to_h
34
38
  end
35
39
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Spidy
4
- VERSION = '0.0.23'
4
+ VERSION = '0.0.24'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spidy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.23
4
+ version: 0.0.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - aileron