ryoba 1.0.0 → 2.0.0

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
- SHA1:
3
- metadata.gz: c8f9b74acd04ed36e1171fb82634e96d9da6bea4
4
- data.tar.gz: ce38a2666fa0e0cc710386bf97a06e52312a9c6a
2
+ SHA256:
3
+ metadata.gz: dbea6a62f02bcec9504fb66b9f43619103cf4a90010e7bc56b66e650d2737e04
4
+ data.tar.gz: fd92a7df7d967d79ae34f527d5f0c025d1e06b53592f86f4264539a44339bf52
5
5
  SHA512:
6
- metadata.gz: c341734a0b8656a61f4889b01a74b3ca2c3593532635ea533cf75c31d6e1859612641c24113e57df12ef1d21ba180b306cd32ab804a087e01a9f49453d0158e7
7
- data.tar.gz: be4be1c45496f21e0c4ed2d7da8627bf845306fd2970d77223984120c0b416517d8ec6c2a2a63e9f72271e997838cfe3e88c6aa0027f669d684b6e84ef9ac730
6
+ metadata.gz: 02d81589dd867ed1555ebb82123ff8cf132b571d3da5893517af6d4e7b7ccc99c54a704a271263fa0592064754329bf7d8e8692e18c9d436a5c95000d7e6d9ef
7
+ data.tar.gz: c0eede04b599c9d96f2f7294a778b0bc2ea53c13f17e2daeb8606e0b972e7b3776d3b94c2f6dd3c7aa33a7a94189d72b26509e20fc6fbd17d723bc7600ef4087
data/CHANGELOG.md ADDED
@@ -0,0 +1,16 @@
1
+ ## 2.0.0
2
+
3
+ * [BREAKING] Drop support for Ruby < 3.4
4
+
5
+
6
+ ## 1.1.0
7
+
8
+ * Rename `Nokogiri::XML::Node#text!` to `#content!`, and alias as
9
+ `#text!` and `#inner_text!`
10
+ * Add `Nokogiri::XML::Node#content?`, and alias as `#inner_text?`
11
+ * Add `Nokogiri::XML::Document#uri`
12
+
13
+
14
+ ## 1.0.0
15
+
16
+ * Initial release
data/Gemfile CHANGED
@@ -1,6 +1,7 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
-
5
3
  # Specify your gem's dependencies in ryoba.gemspec
6
4
  gemspec
5
+
6
+ gem "rake", "~> 13.0"
7
+ gem "minitest", "~> 6.0"
data/README.md CHANGED
@@ -5,39 +5,34 @@
5
5
 
6
6
  ## API
7
7
 
8
- - Nokogiri::XML::Node
9
- - [#matches!](http://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node:matches%21)
10
- - [#text!](http://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node:text%21)
11
- - [#uri](http://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node:uri)
12
- - Nokogiri::XML::Searchable
13
- - [#ancestor](http://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable:ancestor)
14
- - [#ancestor!](http://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable:ancestor%21)
15
- - [#ancestors!](http://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable:ancestors%21)
16
- - [#at!](http://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable:at%21)
17
- - [#search!](http://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable:search%21)
8
+ - [`Nokogiri::XML::Document`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Document)
9
+ - [`#uri`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Document:uri)
10
+ - [`Nokogiri::XML::Node`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node)
11
+ - [`#content!`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node:content%21)
12
+ - aliased as [`#inner_text!`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node:inner_text%21)
13
+ - aliased as [`#text!`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node:text%21)
14
+ - [`#content?`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node:content%3F)
15
+ - aliased as [`#inner_text?`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node:inner_text%3F)
16
+ - [`#matches!`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node:matches%21)
17
+ - [`#uri`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Node:uri)
18
+ - [`Nokogiri::XML::Searchable`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable)
19
+ - [`#ancestor`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable:ancestor)
20
+ - [`#ancestor!`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable:ancestor%21)
21
+ - [`#ancestors!`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable:ancestors%21)
22
+ - [`#at!`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable:at%21)
23
+ - [`#search!`](https://www.rubydoc.info/gems/ryoba/Nokogiri/XML/Searchable:search%21)
18
24
 
19
25
 
20
26
  ## Installation
21
27
 
22
- Install from [Ruby Gems](https://rubygems.org/gems/ryoba):
23
-
24
- ```bash
25
- $ gem install ryoba
26
- ```
27
-
28
- Then require in your Ruby script:
29
-
30
- ```ruby
31
- require "ryoba"
32
- ```
28
+ Install the [`ryoba` gem](https://rubygems.org/gems/ryoba).
33
29
 
34
30
 
35
31
  ## Contributing
36
32
 
37
- Run `rake test` to run the tests. You can also run `rake irb` for an
38
- interactive prompt that pre-loads the project code.
33
+ Run `rake test` to run the tests.
39
34
 
40
35
 
41
36
  ## License
42
37
 
43
- [MIT License](https://opensource.org/licenses/MIT)
38
+ [MIT License](LICENSE.txt)
data/Rakefile CHANGED
@@ -1,18 +1,5 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rake/testtask"
3
- require "yard"
4
-
5
-
6
- YARD::Rake::YardocTask.new(:doc) do |t|
7
- end
8
-
9
- desc "Launch IRB with this gem pre-loaded"
10
- task :irb do
11
- require "ryoba"
12
- require "irb"
13
- ARGV.clear
14
- IRB.start
15
- end
16
3
 
17
4
  Rake::TestTask.new(:test) do |t|
18
5
  t.libs << "test"
data/lib/ryoba/error.rb CHANGED
File without changes
@@ -0,0 +1,19 @@
1
+ require "uri"
2
+
3
+ class Nokogiri::XML::Document
4
+
5
+ # Constructs a URI from the Document's +url+, unless +url+ is nil.
6
+ #
7
+ # @example
8
+ # xml = Nokogiri::XML(<<-XML, "https://www.example.com/foo")
9
+ # <body>FOO</body>
10
+ # XML
11
+ #
12
+ # xml.uri # == URI("https://www.example.com/foo")
13
+ #
14
+ # @return [URI, nil]
15
+ def uri
16
+ URI(url) if url
17
+ end
18
+
19
+ end
@@ -2,25 +2,79 @@ require "uri"
2
2
 
3
3
  class Nokogiri::XML::Node
4
4
 
5
- # Equivalent to +.text.strip+, but raises an error if the result is an
5
+ # Equivalent to +content.strip+, but returns nil if the result is an
6
6
  # empty string.
7
7
  #
8
+ # @example
9
+ # xml = Nokogiri::XML(<<-XML)
10
+ # <body>
11
+ # <h1>
12
+ # Headline 1
13
+ # </h1>
14
+ # <h2> Headline 2 </h2>
15
+ # <h3> </h3>
16
+ # </body>
17
+ # XML
18
+ #
19
+ # xml.at("h1").content? # == "Headline 1"
20
+ # xml.at("h2").content? # == "Headline 2"
21
+ # xml.at("h3").content? # == nil
22
+ #
23
+ # @return [String, nil]
24
+ def content?
25
+ result = self.content.strip
26
+ result unless result.empty?
27
+ end
28
+
29
+ alias_method :inner_text?, :content?
30
+
31
+ # Equivalent to +content.strip+, but raises an exception if the result
32
+ # is an empty string.
33
+ #
34
+ # @example
35
+ # xml = Nokogiri::XML(<<-XML)
36
+ # <body>
37
+ # <h1>
38
+ # Headline 1
39
+ # </h1>
40
+ # <h2> Headline 2 </h2>
41
+ # <h3> </h3>
42
+ # </body>
43
+ # XML
44
+ #
45
+ # xml.at("h1").content! # == "Headline 1"
46
+ # xml.at("h2").content! # == "Headline 2"
47
+ # xml.at("h3").content! # raises exception
48
+ #
8
49
  # @return [String]
9
50
  # @raise [Ryoba::Error]
10
- # if result is an empty string
11
- def text!
12
- result = self.text.strip
51
+ # if +content.strip+ returns an empty string
52
+ def content!
53
+ result = self.content.strip
13
54
  if result.empty?
14
55
  raise Ryoba::Error.new("No text in:\n#{self.to_html}")
15
56
  end
16
57
  result
17
58
  end
18
59
 
19
- # Like +Node#matches?+, but, instead of returning a boolean, returns
20
- # the Node if it matches +selector+ and raises an error otherwise.
60
+ alias_method :inner_text!, :content!
61
+ alias_method :text!, :content!
62
+
63
+ # Like +Node#matches?+, but returns the Node if +selector+ matches,
64
+ # and raises an exception otherwise.
65
+ #
66
+ # @example
67
+ # xml = Nokogiri::XML(<<-XML)
68
+ # <body>
69
+ # <div id="a" class="c" />
70
+ # <div id="b" />
71
+ # </body>
72
+ # XML
73
+ #
74
+ # xml.at("#a").matches!(".c") # == Node div#a.c
75
+ # xml.at("#b").matches!(".c") # raises exception
21
76
  #
22
77
  # @param selector [String]
23
- # selector to match
24
78
  # @return [self]
25
79
  # @raise [Ryoba::Error]
26
80
  # if Node does not match +selector+
@@ -38,35 +92,33 @@ class Nokogiri::XML::Node
38
92
  "form" => "action",
39
93
  }
40
94
 
41
- # Returns a URI from a specified attribute's value. If no attribute
42
- # is specified, an appropriate attribute will be chosen from
43
- # {HTML_ELEMENT_URI_ATTRIBUTES} using the Node's +name+, if possible.
44
- # A relative URI will be converted to an absolute URI, based on the
45
- # Node document's +url+, if possible.
95
+ # Builds a URI from a specified attribute. If no attribute is
96
+ # specified, an element-appropriate attribute is chosen from
97
+ # {HTML_ELEMENT_URI_ATTRIBUTES}, if possible. Relative URIs are
98
+ # converted to absolute URIs using the Node's +document.url+, if
99
+ # possible.
46
100
  #
47
101
  # @example
48
- # xml = Nokogiri::XML(<<-XML, "http://localhost/qux")
102
+ # xml = Nokogiri::XML(<<-XML, "http://localhost/qux/")
49
103
  # <body>
50
104
  # <a href="https://www.example.com/foo">FOO</a>
51
- # <div data-src="/bar" />
105
+ # <img src="/bar" />
106
+ # <div data-src="baz" />
52
107
  # <p>blah</p>
53
108
  # </body>
54
109
  # XML
55
110
  #
56
111
  # xml.at("a").uri # == URI("https://www.example.com/foo")
57
- # xml.at("div").uri("data-src") # == URI("http://localhost/qux/bar")
112
+ # xml.at("img").uri # == URI("http://localhost/bar")
113
+ # xml.at("div").uri("data-src") # == URI("http://localhost/qux/baz")
58
114
  # xml.at("p").uri # == nil
59
115
  #
60
116
  # @param attribute_name [String]
61
- # name of the attribute to return as a URI
62
117
  # @return [URI, nil]
63
118
  def uri(attribute_name = nil)
64
119
  attribute_name ||= HTML_ELEMENT_URI_ATTRIBUTES[self.name]
65
120
  url = self[attribute_name]
66
-
67
- if url
68
- self.document.url ? URI.join(self.document.url, url) : URI(url)
69
- end
121
+ URI.join(*self.document.url, url) if url
70
122
  end
71
123
 
72
124
  end
@@ -1,10 +1,20 @@
1
1
  module Nokogiri::XML::Searchable
2
2
 
3
- # Like +Searchable#search+, but raises an exception if there are no
4
- # results.
3
+ # Like +#search+, but raises an exception if there are no results.
4
+ #
5
+ # @example
6
+ # xml = Nokogiri::XML(<<-XML)
7
+ # <body>
8
+ # <div id="a" />
9
+ # <div id="b" />
10
+ # </body>
11
+ # XML
12
+ #
13
+ # xml.search!("div") # == NodeSet [div#a, div#b]
14
+ # xml.search!("img") # raises exception
5
15
  #
6
16
  # @param queries [Array<String>]
7
- # @return [Array<Nokogiri::XML::Element>]
17
+ # @return [Nokogiri::XML::NodeSet]
8
18
  # @raise [Ryoba::Error]
9
19
  # if all queries yield no results
10
20
  def search!(*queries)
@@ -15,8 +25,18 @@ module Nokogiri::XML::Searchable
15
25
  results
16
26
  end
17
27
 
18
- # Like +Searchable#at+, but raises an exception if there are no
19
- # results.
28
+ # Like +#at+, but raises an exception if there are no results.
29
+ #
30
+ # @example
31
+ # xml = Nokogiri::XML(<<-XML)
32
+ # <body>
33
+ # <div id="a" />
34
+ # <div id="b" />
35
+ # </body>
36
+ # XML
37
+ #
38
+ # xml.at!("div") # == Node div#a
39
+ # xml.at!("img") # raises exception
20
40
  #
21
41
  # @param queries [Array<String>]
22
42
  # @return [Nokogiri::XML::Element]
@@ -30,11 +50,27 @@ module Nokogiri::XML::Searchable
30
50
  result
31
51
  end
32
52
 
33
- # Like +Searchable#ancestors+, but raises an exception if there are no
34
- # matching ancestors.
53
+ # Like +#ancestors+, but raises an exception if there are no matching
54
+ # ancestors.
55
+ #
56
+ # @example
57
+ # xml = Nokogiri::XML(<<-XML)
58
+ # <body>
59
+ # <div id="a">
60
+ # <div id="b">
61
+ # <img src="cat.jpg">
62
+ # </div>
63
+ # </div>
64
+ # </body>
65
+ # XML
66
+ #
67
+ # xml.at("img").ancestors! # == NodeSet [div#b, div#a, body]
68
+ # xml.at("img").ancestors!("div") # == NodeSet [div#b, div#a]
69
+ # xml.at("img").ancestors!("#a") # == NodeSet [div#a]
70
+ # xml.at("img").ancestors!("#z") # raises exception
35
71
  #
36
72
  # @param selector [String]
37
- # @return [Array<Nokogiri::XML::Element>]
73
+ # @return [Nokogiri::XML::NodeSet]
38
74
  # @raise [Ryoba::Error]
39
75
  # if no ancestors match +selector+
40
76
  def ancestors!(selector = nil)
@@ -45,8 +81,22 @@ module Nokogiri::XML::Searchable
45
81
  results
46
82
  end
47
83
 
48
- # Like +Searchable#ancestors+, but returns only the first matching
49
- # ancestor.
84
+ # Like +#ancestors+, but returns only the first matching ancestor.
85
+ #
86
+ # @example
87
+ # xml = Nokogiri::XML(<<-XML)
88
+ # <body>
89
+ # <div id="a">
90
+ # <div id="b">
91
+ # <img src="cat.jpg">
92
+ # </div>
93
+ # </div>
94
+ # </body>
95
+ # XML
96
+ #
97
+ # xml.at("img").ancestor # == Node div#b
98
+ # xml.at("img").ancestor("#a") # == Node div#a
99
+ # xml.at("img").ancestor("#z") # == nil
50
100
  #
51
101
  # @param selector [String]
52
102
  # @return [Nokogiri::XML::Element, nil]
@@ -54,8 +104,22 @@ module Nokogiri::XML::Searchable
54
104
  self.ancestors(selector).first
55
105
  end
56
106
 
57
- # Like +Searchable#ancestors!+, but returns only the first matching
58
- # ancestor.
107
+ # Like {ancestors!}, but returns only the first matching ancestor.
108
+ #
109
+ # @example
110
+ # xml = Nokogiri::XML(<<-XML)
111
+ # <body>
112
+ # <div id="a">
113
+ # <div id="b">
114
+ # <img src="cat.jpg">
115
+ # </div>
116
+ # </div>
117
+ # </body>
118
+ # XML
119
+ #
120
+ # xml.at("img").ancestor! # == Node div#b
121
+ # xml.at("img").ancestor!("#a") # == Node div#a
122
+ # xml.at("img").ancestor!("#z") # raises exception
59
123
  #
60
124
  # @param selector [String]
61
125
  # @return [Nokogiri::XML::Element]
data/lib/ryoba/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ryoba
2
- VERSION = "1.0.0"
2
+ VERSION = "2.0.0"
3
3
  end
data/lib/ryoba.rb CHANGED
@@ -2,5 +2,6 @@ require "nokogiri"
2
2
 
3
3
  require_relative "ryoba/version"
4
4
  require_relative "ryoba/error"
5
+ require_relative "ryoba/nokogiri/xml/document"
5
6
  require_relative "ryoba/nokogiri/xml/node"
6
7
  require_relative "ryoba/nokogiri/xml/searchable"
data/ryoba.gemspec CHANGED
@@ -1,29 +1,27 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "ryoba/version"
1
+ require_relative "lib/ryoba/version"
5
2
 
6
3
  Gem::Specification.new do |spec|
7
4
  spec.name = "ryoba"
8
5
  spec.version = Ryoba::VERSION
9
6
  spec.authors = ["Jonathan Hefner"]
10
- spec.email = ["jonathan.hefner@gmail.com"]
7
+ spec.email = ["jonathan@hefner.pro"]
11
8
 
12
9
  spec.summary = %q{Nokogiri utility methods}
13
10
  spec.homepage = "https://github.com/jonathanhefner/ryoba"
14
11
  spec.license = "MIT"
12
+ spec.required_ruby_version = ">= 3.4"
13
+
14
+ spec.metadata["source_code_uri"] = spec.homepage
15
+ spec.metadata["changelog_uri"] = spec.metadata["source_code_uri"] + "/blob/master/CHANGELOG.md"
15
16
 
16
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
- f.match(%r{^(test|spec|features)/})
17
+ # Specify which files should be added to the gem when it is released.
18
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
+ spec.files = Dir.chdir(__dir__) do
20
+ `git ls-files -z`.split("\x0").reject { |f| f.start_with?("test/", ".git") }
18
21
  end
19
22
  spec.bindir = "exe"
20
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
24
  spec.require_paths = ["lib"]
22
25
 
23
- spec.add_runtime_dependency "nokogiri", ">= 1.6.6", "< 2.0"
24
-
25
- spec.add_development_dependency "bundler", "~> 1.16"
26
- spec.add_development_dependency "rake", "~> 10.0"
27
- spec.add_development_dependency "minitest", "~> 5.0"
28
- spec.add_development_dependency "yard", "~> 0.9"
26
+ spec.add_dependency "nokogiri", ">= 1.6.6", "< 2.0"
29
27
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ryoba
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Hefner
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2018-04-16 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: nokogiri
@@ -30,77 +29,20 @@ dependencies:
30
29
  - - "<"
31
30
  - !ruby/object:Gem::Version
32
31
  version: '2.0'
33
- - !ruby/object:Gem::Dependency
34
- name: bundler
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '1.16'
40
- type: :development
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '1.16'
47
- - !ruby/object:Gem::Dependency
48
- name: rake
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '10.0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '10.0'
61
- - !ruby/object:Gem::Dependency
62
- name: minitest
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '5.0'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '5.0'
75
- - !ruby/object:Gem::Dependency
76
- name: yard
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '0.9'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '0.9'
89
- description:
90
32
  email:
91
- - jonathan.hefner@gmail.com
33
+ - jonathan@hefner.pro
92
34
  executables: []
93
35
  extensions: []
94
36
  extra_rdoc_files: []
95
37
  files:
96
- - ".gitignore"
97
- - ".travis.yml"
38
+ - CHANGELOG.md
98
39
  - Gemfile
99
40
  - LICENSE.txt
100
41
  - README.md
101
42
  - Rakefile
102
43
  - lib/ryoba.rb
103
44
  - lib/ryoba/error.rb
45
+ - lib/ryoba/nokogiri/xml/document.rb
104
46
  - lib/ryoba/nokogiri/xml/node.rb
105
47
  - lib/ryoba/nokogiri/xml/searchable.rb
106
48
  - lib/ryoba/version.rb
@@ -108,8 +50,9 @@ files:
108
50
  homepage: https://github.com/jonathanhefner/ryoba
109
51
  licenses:
110
52
  - MIT
111
- metadata: {}
112
- post_install_message:
53
+ metadata:
54
+ source_code_uri: https://github.com/jonathanhefner/ryoba
55
+ changelog_uri: https://github.com/jonathanhefner/ryoba/blob/master/CHANGELOG.md
113
56
  rdoc_options: []
114
57
  require_paths:
115
58
  - lib
@@ -117,16 +60,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
117
60
  requirements:
118
61
  - - ">="
119
62
  - !ruby/object:Gem::Version
120
- version: '0'
63
+ version: '3.4'
121
64
  required_rubygems_version: !ruby/object:Gem::Requirement
122
65
  requirements:
123
66
  - - ">="
124
67
  - !ruby/object:Gem::Version
125
68
  version: '0'
126
69
  requirements: []
127
- rubyforge_project:
128
- rubygems_version: 2.6.13
129
- signing_key:
70
+ rubygems_version: 4.0.10
130
71
  specification_version: 4
131
72
  summary: Nokogiri utility methods
132
73
  test_files: []
data/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.2.5
5
- before_install: gem install bundler -v 1.16.1