digger 0.2.0 → 0.2.1

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