digger 0.2.0 → 0.2.1

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: 29c3945e9377348e1152eea7f46e0f11aa2e59cc5568fad57d25ecd3d271a9df
4
- data.tar.gz: 1e4862f9939aa9c62e175a39df078fe12a2f51190af1f280f6d418cbab7e6390
3
+ metadata.gz: b036f2d202aa8360cf3b07822168fb8e3e3e084d4b2f5ccb5eca026dd4c47981
4
+ data.tar.gz: 85d13e567add73e38c25738852dc3b30e3ad1900579dca815d5aef4cb16dbca8
5
5
  SHA512:
6
- metadata.gz: 177e393de76bc35e31d6cc0eeda839d543d13fd81c40eba7d08704a131ec01396872734ea689c49fb1d09ceb4ba604fae76c3c201a2706dc9c889161038e0323
7
- data.tar.gz: da76004a179aaed5cf75a96f90da3ebc739416e0ec162ff95c6aa27625590826fcc179b749156ea96937e364fb6a251515cb335a14b317001f3a47ea30330aeb
6
+ metadata.gz: decb9abb96f56dc7f75ba95151b02c7415018a789583da1324ab4786317d7e0bfc272a83b47399b51672bdb30b3d90c502f25358d7438b9ee26a8d39764a58dd
7
+ data.tar.gz: 73f7dfd179175bcda4a24a120cad95a61093f17166e389e44b37a158ff8ee1ea927844d9b85773914f14d99473776f11752c7aa32fadfec1b8b703e584591c3f
@@ -82,7 +82,7 @@ module Digger
82
82
  end
83
83
 
84
84
  def css_match(doc)
85
- block = safe_block { |node| node.content.strip }
85
+ block = safe_block { |node| node&.content&.strip }
86
86
  # content is Nokogiri::HTML::Document
87
87
  contents = doc.css(value)
88
88
  if type == 'css_many'
@@ -122,21 +122,24 @@ module Digger
122
122
 
123
123
  private :json_index_keys, :json_fetch
124
124
 
125
- # Nokogiri node methods
126
- class Nokogiri::XML::Node
127
- %w[one many].each do |name|
128
- define_method "inner_#{name}" do |css, &block|
129
- callback = ->(node) { (block || ->(n) { n.text.strip }).call(node) if node }
130
- if name == 'one' # inner_one
131
- callback.call(self.css(css).first)
132
- else # inner_many
133
- self.css(css).map { |node| callback.call(node) }
134
- end
135
- end
125
+ class ::Nokogiri::XML::Node
126
+ def inner_one(expr, &block)
127
+ fn = block || ->(node) { node&.content&.strip }
128
+ fn.call(css(expr)&.first)
136
129
  end
130
+
131
+ def inner_many(expr, &block)
132
+ fn = block || ->(node) { node&.content&.strip }
133
+ css(expr)&.map { |node| fn.call(node) }
134
+ end
135
+
137
136
  def source
138
137
  to_xml
139
138
  end
139
+
140
+ def inner_number
141
+ content&.match(/\d+/).to_s.to_i
142
+ end
140
143
  end
141
144
  end
142
145
  end
@@ -1,3 +1,3 @@
1
1
  module Digger
2
- VERSION = '0.2.0'.freeze
2
+ VERSION = '0.2.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: digger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - binz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-31 00:00:00.000000000 Z
11
+ date: 2022-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake