getv 0.2.0 → 1.0.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: 4f71f37db6e179d3af3b99369ea5ed0f18f9b11fdfb61cb49b3fddb41c154413
4
- data.tar.gz: c8519d3d87fbb86265e1b77370213f5e41bdd19f205b731691a354b156c5d275
3
+ metadata.gz: dee216d169325a49c0b22c5a155f4cbf2d7de0485cf910187eea5e2a53e00fec
4
+ data.tar.gz: b68a57c56575fde9a0838be0a63d9e79d918a0152ef30ecea597aa3b8d242586
5
5
  SHA512:
6
- metadata.gz: 8ce6bc17082dd898e433702e395ab2b12432fb5e72d4d287fa5c55210b234cf6f7a324a07fceee1b1b452c24f1309f8ff801a10502012de238f143be0a507422
7
- data.tar.gz: c5d3ff7f4ae2fe63221c6a31f841da8f85f509579abb1a937c07ba2eb35c3b6432026353d456b45bd3857e051f7e3f3dd2e0b33dbc68ad61c3667b84fe9bedfb
6
+ metadata.gz: e009db79c088984187e984880e7cd48c03ab72771c38085268f31ef242ea254657af6436f1a800aef2d2b017fad5bd5f6c32dd39bba986c56567332cd9859536
7
+ data.tar.gz: 5004687e4f6614a93fc9074e7a452b814719807abaef12c4e3350d6011c704085caa04409c234ed58ee78b8937f2a24245fd0e7d2f5d3d033b349786b973b65e
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ /bin/
1
2
  /bundle/
2
3
  /.yardoc
3
4
  /_yardoc/
@@ -7,6 +8,8 @@
7
8
  /spec/reports/
8
9
  /tmp/
9
10
  /*.gem
11
+ /vendor
12
+ Gemfile.lock
10
13
 
11
14
  # rspec failure tracking
12
15
  .rspec_status
data/.rubocop.yml ADDED
@@ -0,0 +1,10 @@
1
+ ---
2
+ AllCops:
3
+ NewCops: enable
4
+
5
+ Metrics/BlockLength:
6
+ Exclude:
7
+ - 'Rakefile'
8
+ - '**/*.rake'
9
+ - 'test/**/*.rb'
10
+ - 'spec/**/*_spec.rb'
data/Gemfile CHANGED
@@ -1,13 +1,17 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in getv.gemspec
4
6
  gemspec
5
7
 
6
- gem "rake", "~> 12.0"
7
- gem "rspec", "~> 3.0"
8
- gem "nokogiri", "~> 1.13"
9
- gem "irb", "~> 1.4"
10
- gem "rdoc", "~> 6.4"
11
- gem "octokit", "~> 4.21"
12
- gem "semantic", "~> 1.6"
13
- gem "docker_registry2", "~> 1.10"
8
+ gem 'docker_registry2', '~> 1.10'
9
+ gem 'irb', '~> 1.4'
10
+ gem 'nokogiri', '~> 1.13'
11
+ gem 'octokit', '~> 4.21'
12
+ gem 'rake', '~> 12.0'
13
+ gem 'rdoc', '~> 6.4'
14
+ gem 'rspec', '~> 3.0'
15
+ gem 'semantic', '~> 1.6'
16
+ gem 'vcr', '~> 6.0'
17
+ gem 'webmock', '~> 3.0'
data/README.md CHANGED
@@ -21,13 +21,13 @@ Or install it yourself as:
21
21
  ## Usage
22
22
 
23
23
  ```
24
- irb(main):024:0> superset = Getv::Package.new('superset',{:type => 'docker', :owner => 'apache', :reject => '-'})
24
+ irb(main):024:0> superset = Getv::Package.new('superset', type: 'docker', owner: 'apache', reject: '-')
25
25
  =>
26
26
  #<Getv::Package:0x000055b6d2326f20
27
27
  ...
28
- irb(main):025:0> superset.get_versions
28
+ irb(main):025:0> superset.versions
29
29
  => ["1.0.0", "1.0.1", "1.1.0", "1.2.0", "1.3.0", "1.3.1", "1.3.2"]
30
- irb(main):026:0> superset.get_latest_version
30
+ irb(main):026:0> superset.latest_version
31
31
  => "1.3.2"
32
32
  irb(main):027:0> superset
33
33
  =>
data/getv.gemspec CHANGED
@@ -1,31 +1,33 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'lib/getv/version'
2
4
 
3
5
  Gem::Specification.new do |spec|
4
- spec.name = "getv"
6
+ spec.name = 'getv'
5
7
  spec.version = Getv::VERSION
6
- spec.authors = ["harbottle"]
7
- spec.email = ["harbottle@room3d3.com"]
8
+ spec.authors = ['harbottle']
9
+ spec.email = ['harbottle@room3d3.com']
8
10
 
9
- spec.summary = "Pull package version numbers from the web in various ways."
10
- spec.description = "Pull package version numbers from the web in various ways."
11
- spec.homepage = "https://github.com/liger1978/getv"
12
- spec.license = "MIT"
11
+ spec.summary = 'Pull package version numbers from the web in various ways.'
12
+ spec.description = 'Pull package version numbers from the web in various ways.'
13
+ spec.homepage = 'https://github.com/liger1978/getv'
14
+ spec.license = 'MIT'
13
15
 
14
- spec.metadata["homepage_uri"] = spec.homepage
15
- spec.metadata["source_code_uri"] = "https://github.com/liger1978/getv"
16
- spec.metadata["changelog_uri"] = "https://github.com/liger1978/getv"
16
+ spec.metadata['homepage_uri'] = spec.homepage
17
+ spec.metadata['source_code_uri'] = 'https://github.com/liger1978/getv'
18
+ spec.metadata['changelog_uri'] = 'https://github.com/liger1978/getv'
17
19
 
18
20
  # Specify which files should be added to the gem when it is released.
19
21
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
22
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
21
23
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
24
  end
23
- spec.bindir = "exe"
25
+ spec.bindir = 'exe'
24
26
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
- spec.require_paths = ["lib"]
27
+ spec.require_paths = ['lib']
26
28
 
27
- spec.add_dependency("nokogiri", ">= 1.0.0", "< 2.0.0")
28
- spec.add_dependency("octokit", ">= 3.0.0", "< 5.0.0")
29
- spec.add_dependency("semantic", ">= 1.0.0", "< 2.0.0")
30
- spec.add_dependency("docker_registry2", ">= 1.0.0", "< 2.0.0")
29
+ spec.add_dependency('docker_registry2', '>= 1.0.0', '< 2.0.0')
30
+ spec.add_dependency('nokogiri', '>= 1.0.0', '< 2.0.0')
31
+ spec.add_dependency('octokit', '>= 3.0.0', '< 5.0.0')
32
+ spec.add_dependency('semantic', '>= 1.0.0', '< 2.0.0')
31
33
  end
data/lib/getv/package.rb CHANGED
@@ -1,178 +1,164 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Getv
2
- class Package
4
+ # package class
5
+ class Package # rubocop:disable Metrics/ClassLength
3
6
  attr_accessor :name, :opts
4
7
 
5
- def initialize(name, opts={})
8
+ def initialize(name, opts = {}) # rubocop:disable Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/AbcSize
6
9
  @name = name
7
- if /rubygem-.*/.match?(name)
8
- opts = {'type' => 'gem'}.merge(opts)
9
- elsif /nodejs-.*/.match?(name)
10
- opts = {'type' => 'npm'}.merge(opts)
11
- elsif /python.*-.*/.match?(name)
12
- opts = {'type' => 'pypi'}.merge(opts)
10
+ case name
11
+ when /rubygem-.*/
12
+ opts = { 'type' => 'gem' }.merge(opts)
13
+ when /nodejs-.*/
14
+ opts = { 'type' => 'npm' }.merge(opts)
15
+ when /python.*-.*/
16
+ opts = { 'type' => 'pypi' }.merge(opts)
13
17
  end
14
18
  if opts[:type] == 'github_commit'
15
19
  opts = {
16
- :select_search => '^((\d{8})(\d{6}),(([a-z\d]{7})(.*)))$',
17
- :semantic_only => false
20
+ branch: 'master',
21
+ select_search: '^((\d{8})(\d{6}),(([a-z\d]{7})(.*)))$',
22
+ semantic_only: false
18
23
  }.merge(opts)
19
24
  end
20
25
  opts = {
21
- :type => 'github_release',
22
- :select_search => '^\s*v?((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)\s*$',
23
- :select_replace => '\1',
24
- :reject => nil,
25
- :semantic_only => true,
26
- :semantic_select => ['*'],
27
- :versions => nil,
28
- :latest_version => nil,
26
+ type: 'github_release',
27
+ select_search: '^\s*v?((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)\s*$', # rubocop:disable Layout/LineLength
28
+ select_replace: '\1',
29
+ reject: nil,
30
+ semantic_only: true,
31
+ semantic_select: ['*'],
32
+ versions: nil,
33
+ latest_version: nil
29
34
  }.merge(opts)
30
35
  case opts[:type]
31
36
  when 'docker'
32
- opts = {:owner => 'library', :repo => name, :url=> 'https://registry.hub.docker.com'}.merge(opts)
37
+ opts = { owner: 'library', repo: name, url: 'https://registry.hub.docker.com' }.merge(opts)
33
38
  when 'gem'
34
- opts = {:gem => name[/rubygem-(.*)/, 1] || name}.merge(opts)
39
+ opts = { gem: name[/rubygem-(.*)/, 1] || name }.merge(opts)
35
40
  when /github.*/
36
- opts = {:owner => name, :repo => name,}.merge(opts)
41
+ opts = { owner: name, repo: name }.merge(opts)
37
42
  when 'index'
38
- opts = {:link => 'content'}.merge(opts)
43
+ opts = { link: 'content' }.merge(opts)
39
44
  when 'npm'
40
- opts = {:npm => name[/nodejs-(.*)/, 1] || name}.merge(opts)
45
+ opts = { npm: name[/nodejs-(.*)/, 1] || name }.merge(opts)
41
46
  when 'pypi'
42
- opts = {:npm => name[/python.*-(.*)/, 1] || name}.merge(opts)
47
+ opts = { npm: name[/python.*-(.*)/, 1] || name }.merge(opts)
43
48
  end
44
49
  @opts = opts
45
50
  end
46
-
47
- def get_latest_version
48
- if opts[:latest_version] == nil
49
- self.update_versions
50
- end
51
+
52
+ def latest_version
53
+ update_versions if opts[:latest_version].nil?
51
54
  opts[:latest_version]
52
55
  end
53
56
 
54
- def get_versions
55
- if opts[:version] == nil
56
- self.update_versions
57
- end
57
+ def versions
58
+ update_versions if opts[:versions].nil?
58
59
  opts[:versions]
59
60
  end
60
61
 
61
- def update_versions
62
- case opts[:type]
63
- when 'docker'
64
- versions = get_versions_using_docker
65
- when 'gem'
66
- versions = get_versions_using_gem
67
- when 'get'
68
- versions = get_versions_using_get
69
- when 'github_commit'
70
- versions = get_versions_using_github('commit')
71
- when 'github_release'
72
- versions = get_versions_using_github('release')
73
- when 'github_tag'
74
- versions = get_versions_using_github('tag')
75
- when 'index'
76
- versions = get_versions_using_index
77
- when 'npm'
78
- versions = get_versions_using_npm
79
- when 'pypi'
80
- versions = get_versions_using_pypi
81
- end
82
- if opts[:type] == 'github_commit'
83
- versions.sort!
84
- end
62
+ def update_versions # rubocop:disable Metrics/PerceivedComplexity,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/AbcSize
63
+ method = opts[:type].split('_')
64
+ method[0] = "versions_using_#{method[0]}"
65
+
66
+ versions = send(*method)
67
+ versions.sort! if opts[:type] == 'github_commit'
85
68
  select_pattern = Regexp.new(opts[:select_search])
86
- versions.select! {|v| v =~ select_pattern}
87
- versions.map! {|v| v.sub(select_pattern, opts[:select_replace])}
88
- unless opts[:reject].nil?
89
- versions.reject! {|v| v =~ Regexp.new(opts[:reject])}
90
- end
69
+ versions.select! { |v| v =~ select_pattern }
70
+ versions.map! { |v| v.sub(select_pattern, opts[:select_replace]) }
71
+ versions.reject! { |v| v =~ Regexp.new(opts[:reject]) } unless opts[:reject].nil?
91
72
  if opts[:semantic_only]
92
73
  require 'semantic'
93
74
  require 'semantic/core_ext'
94
- versions.select! {|v| v.is_version?}
75
+ versions.select!(&:is_version?)
95
76
  opts[:semantic_select].each do |comparator|
96
- versions.select! {|v| Semantic::Version.new(v).satisfies?(comparator)}
77
+ versions.select! { |v| Semantic::Version.new(v).satisfies?(comparator) }
97
78
  end
98
- versions.sort_by! {|v| Semantic::Version.new(v)}
79
+ versions.sort_by! { |v| Semantic::Version.new(v) }
99
80
  else
100
- unless opts[:type] == 'github_commit'
101
- versions.sort!
102
- end
103
- end
104
- opts[:versions] = versions
105
- unless opts[:versions].empty?
106
- opts[:latest_version] = opts[:versions][-1]
81
+ versions.sort! unless opts[:type] == 'github_commit'
107
82
  end
83
+ opts[:versions] = versions.uniq
84
+ opts[:latest_version] = opts[:versions][-1] unless opts[:versions].empty?
108
85
  end
109
86
 
110
87
  private
111
88
 
112
- def get_versions_using_docker
89
+ def versions_using_docker
113
90
  require 'docker_registry2'
114
91
  docker = DockerRegistry2.connect(opts[:url])
115
- return docker.tags("#{opts[:owner]}/#{opts[:repo]}")['tags']
92
+ docker.tags("#{opts[:owner]}/#{opts[:repo]}")['tags']
116
93
  end
117
94
 
118
- def get_versions_using_gem
95
+ def versions_using_gem
119
96
  require 'json'
120
97
  require 'open-uri'
121
98
  require 'net/http'
122
- return JSON.parse(Net::HTTP.get(URI("https://rubygems.org/api/v1/versions/#{opts[:gem]}.json"))).map {|v| v['number']}
99
+ JSON.parse(Net::HTTP.get(URI("https://rubygems.org/api/v1/versions/#{opts[:gem]}.json"))).map do |v|
100
+ v['number']
101
+ end
123
102
  end
124
103
 
125
- def get_versions_using_get
104
+ def versions_using_get
126
105
  require 'open-uri'
127
106
  require 'net/http'
128
- return Net::HTTP.get(URI(opts[:url])).split("\n")
107
+ Net::HTTP.get(URI(opts[:url])).split("\n")
129
108
  end
130
109
 
131
- def get_versions_using_github(method)
110
+ def github
132
111
  require 'octokit'
133
112
  if ENV['GITHUB_TOKEN']
134
- github = Octokit::Client.new(:access_token => ENV['GITHUB_TOKEN'])
113
+ github = Octokit::Client.new(access_token: ENV['GITHUB_TOKEN'])
135
114
  user = github.user
136
115
  user.login
137
116
  else
138
- github = Octokit::Client.new()
117
+ github = Octokit::Client.new
139
118
  end
140
- if method == 'release'
141
- return github.releases("#{opts[:owner]}/#{opts[:repo]}").map{|r| r.tag_name}
142
- elsif method == 'commit'
143
- return github.commits("#{opts[:owner]}/#{opts[:repo]}").map { |c|
119
+ github.auto_paginate = true
120
+ github
121
+ end
122
+
123
+ def versions_using_github(method) # rubocop:disable Metrics/AbcSize
124
+ case method
125
+ when 'release'
126
+ github.releases("#{opts[:owner]}/#{opts[:repo]}").map(&:tag_name)
127
+ when 'commit'
128
+ github.commits("#{opts[:owner]}/#{opts[:repo]}", opts[:branch]).map do |c|
144
129
  "#{DateTime.parse(c[:commit][:author][:date].to_s).strftime('%Y%m%d%H%M%S')},#{c[:sha]}"
145
- }
130
+ end
146
131
  else
147
- return github.tags("#{opts[:owner]}/#{opts[:repo]}").map{|t| t[:name]}
132
+ github.tags("#{opts[:owner]}/#{opts[:repo]}").map { |t| t[:name] }
148
133
  end
149
134
  end
150
135
 
151
- def get_versions_using_index
136
+ def versions_using_index
152
137
  require 'open-uri'
153
138
  require 'net/http'
154
139
  require 'nokogiri'
155
- if opts[:link] == 'value'
156
- versions = Nokogiri::HTML(URI.open(opts[:url])).css('a').map{|a| a.values[0]}
157
- else
158
- versions = Nokogiri::HTML(URI.open(opts[:url])).css('a').map{|a| a.public_send(opts[:link])}
140
+
141
+ Nokogiri::HTML(URI.open(opts[:url])).css('a').map do |a| # rubocop:disable Security/Open
142
+ if opts[:link] == 'value'
143
+ a.values[0]
144
+ else
145
+ a.public_send(opts[:link])
146
+ end
159
147
  end
160
- return versions
161
148
  end
162
149
 
163
- def get_versions_using_npm
150
+ def versions_using_npm
164
151
  require 'json'
165
152
  require 'open-uri'
166
153
  require 'net/http'
167
- return JSON.parse(Net::HTTP.get(URI("https://registry.npmjs.org/#{opts[:npm]}")))['versions'].keys
154
+ JSON.parse(Net::HTTP.get(URI("https://registry.npmjs.org/#{opts[:npm]}")))['versions'].keys
168
155
  end
169
156
 
170
- def get_versions_using_pypi
157
+ def versions_using_pypi
171
158
  require 'json'
172
159
  require 'open-uri'
173
160
  require 'net/http'
174
- return JSON.parse(Net::HTTP.get(URI("https://pypi.org/pypi/#{opts[:pypi]}/json")))['releases'].keys
161
+ JSON.parse(Net::HTTP.get(URI("https://pypi.org/pypi/#{opts[:pypi]}/json")))['releases'].keys
175
162
  end
176
-
177
163
  end
178
164
  end
data/lib/getv/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Getv
2
- VERSION = "0.2.0"
4
+ VERSION = '1.0.1'
3
5
  end
data/lib/getv.rb CHANGED
@@ -1,5 +1,7 @@
1
- require "getv/version"
2
- require "getv/package"
1
+ # frozen_string_literal: true
2
+
3
+ require 'getv/version'
4
+ require 'getv/package'
3
5
 
4
6
  module Getv
5
7
  class Error < StandardError; end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: getv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - harbottle
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-15 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
- name: nokogiri
14
+ name: docker_registry2
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -31,47 +31,47 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.0.0
33
33
  - !ruby/object:Gem::Dependency
34
- name: octokit
34
+ name: nokogiri
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 3.0.0
39
+ version: 1.0.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: 5.0.0
42
+ version: 2.0.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 3.0.0
49
+ version: 1.0.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: 5.0.0
52
+ version: 2.0.0
53
53
  - !ruby/object:Gem::Dependency
54
- name: semantic
54
+ name: octokit
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.0.0
59
+ version: 3.0.0
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: 2.0.0
62
+ version: 5.0.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 1.0.0
69
+ version: 3.0.0
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: 2.0.0
72
+ version: 5.0.0
73
73
  - !ruby/object:Gem::Dependency
74
- name: docker_registry2
74
+ name: semantic
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - ">="
@@ -100,25 +100,12 @@ files:
100
100
  - ".bundle/config"
101
101
  - ".gitignore"
102
102
  - ".rspec"
103
+ - ".rubocop.yml"
103
104
  - ".travis.yml"
104
105
  - Gemfile
105
- - Gemfile.lock
106
106
  - LICENSE.txt
107
107
  - README.md
108
108
  - Rakefile
109
- - bin/bundle
110
- - bin/console
111
- - bin/htmldiff
112
- - bin/irb
113
- - bin/ldiff
114
- - bin/nokogiri
115
- - bin/racc
116
- - bin/rake
117
- - bin/rdoc
118
- - bin/restclient
119
- - bin/ri
120
- - bin/rspec
121
- - bin/setup
122
109
  - getv.gemspec
123
110
  - lib/getv.rb
124
111
  - lib/getv/package.rb
@@ -130,7 +117,7 @@ metadata:
130
117
  homepage_uri: https://github.com/liger1978/getv
131
118
  source_code_uri: https://github.com/liger1978/getv
132
119
  changelog_uri: https://github.com/liger1978/getv
133
- post_install_message:
120
+ post_install_message:
134
121
  rdoc_options: []
135
122
  require_paths:
136
123
  - lib
@@ -145,8 +132,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
132
  - !ruby/object:Gem::Version
146
133
  version: '0'
147
134
  requirements: []
148
- rubygems_version: 3.2.22
149
- signing_key:
135
+ rubygems_version: 3.0.3
136
+ signing_key:
150
137
  specification_version: 4
151
138
  summary: Pull package version numbers from the web in various ways.
152
139
  test_files: []
data/Gemfile.lock DELETED
@@ -1,113 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- getv (0.1.0)
5
- docker_registry2 (>= 1.0.0, < 2.0.0)
6
- nokogiri (>= 1.0.0, < 2.0.0)
7
- octokit (>= 3.0.0, < 5.0.0)
8
- semantic (>= 1.0.0, < 2.0.0)
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- addressable (2.8.0)
14
- public_suffix (>= 2.0.2, < 5.0)
15
- diff-lcs (1.5.0)
16
- docker_registry2 (1.10.0)
17
- rest-client (>= 1.8.0)
18
- domain_name (0.5.20190701)
19
- unf (>= 0.0.5, < 1.0.0)
20
- faraday (1.9.3)
21
- faraday-em_http (~> 1.0)
22
- faraday-em_synchrony (~> 1.0)
23
- faraday-excon (~> 1.1)
24
- faraday-httpclient (~> 1.0)
25
- faraday-multipart (~> 1.0)
26
- faraday-net_http (~> 1.0)
27
- faraday-net_http_persistent (~> 1.0)
28
- faraday-patron (~> 1.0)
29
- faraday-rack (~> 1.0)
30
- faraday-retry (~> 1.0)
31
- ruby2_keywords (>= 0.0.4)
32
- faraday-em_http (1.0.0)
33
- faraday-em_synchrony (1.0.0)
34
- faraday-excon (1.1.0)
35
- faraday-httpclient (1.0.1)
36
- faraday-multipart (1.0.3)
37
- multipart-post (>= 1.2, < 3)
38
- faraday-net_http (1.0.1)
39
- faraday-net_http_persistent (1.2.0)
40
- faraday-patron (1.0.0)
41
- faraday-rack (1.0.0)
42
- faraday-retry (1.0.3)
43
- http-accept (1.7.0)
44
- http-cookie (1.0.4)
45
- domain_name (~> 0.5)
46
- io-console (0.5.11)
47
- irb (1.4.1)
48
- reline (>= 0.3.0)
49
- mime-types (3.4.1)
50
- mime-types-data (~> 3.2015)
51
- mime-types-data (3.2022.0105)
52
- mini_portile2 (2.7.1)
53
- multipart-post (2.1.1)
54
- netrc (0.11.0)
55
- nokogiri (1.13.0)
56
- mini_portile2 (~> 2.7.0)
57
- racc (~> 1.4)
58
- octokit (4.21.0)
59
- faraday (>= 0.9)
60
- sawyer (~> 0.8.0, >= 0.5.3)
61
- psych (4.0.3)
62
- stringio
63
- public_suffix (4.0.6)
64
- racc (1.6.0)
65
- rake (12.3.3)
66
- rdoc (6.4.0)
67
- psych (>= 4.0.0)
68
- reline (0.3.1)
69
- io-console (~> 0.5)
70
- rest-client (2.1.0)
71
- http-accept (>= 1.7.0, < 2.0)
72
- http-cookie (>= 1.0.2, < 2.0)
73
- mime-types (>= 1.16, < 4.0)
74
- netrc (~> 0.8)
75
- rspec (3.10.0)
76
- rspec-core (~> 3.10.0)
77
- rspec-expectations (~> 3.10.0)
78
- rspec-mocks (~> 3.10.0)
79
- rspec-core (3.10.1)
80
- rspec-support (~> 3.10.0)
81
- rspec-expectations (3.10.1)
82
- diff-lcs (>= 1.2.0, < 2.0)
83
- rspec-support (~> 3.10.0)
84
- rspec-mocks (3.10.2)
85
- diff-lcs (>= 1.2.0, < 2.0)
86
- rspec-support (~> 3.10.0)
87
- rspec-support (3.10.3)
88
- ruby2_keywords (0.0.5)
89
- sawyer (0.8.2)
90
- addressable (>= 2.3.5)
91
- faraday (> 0.8, < 2.0)
92
- semantic (1.6.1)
93
- stringio (3.0.1)
94
- unf (0.1.4)
95
- unf_ext
96
- unf_ext (0.0.8)
97
-
98
- PLATFORMS
99
- ruby
100
-
101
- DEPENDENCIES
102
- docker_registry2 (~> 1.10)
103
- getv!
104
- irb (~> 1.4)
105
- nokogiri (~> 1.13)
106
- octokit (~> 4.21)
107
- rake (~> 12.0)
108
- rdoc (~> 6.4)
109
- rspec (~> 3.0)
110
- semantic (~> 1.6)
111
-
112
- BUNDLED WITH
113
- 2.1.4
data/bin/bundle DELETED
@@ -1,114 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'bundle' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "rubygems"
12
-
13
- m = Module.new do
14
- module_function
15
-
16
- def invoked_as_script?
17
- File.expand_path($0) == File.expand_path(__FILE__)
18
- end
19
-
20
- def env_var_version
21
- ENV["BUNDLER_VERSION"]
22
- end
23
-
24
- def cli_arg_version
25
- return unless invoked_as_script? # don't want to hijack other binstubs
26
- return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update`
27
- bundler_version = nil
28
- update_index = nil
29
- ARGV.each_with_index do |a, i|
30
- if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN
31
- bundler_version = a
32
- end
33
- next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/
34
- bundler_version = $1
35
- update_index = i
36
- end
37
- bundler_version
38
- end
39
-
40
- def gemfile
41
- gemfile = ENV["BUNDLE_GEMFILE"]
42
- return gemfile if gemfile && !gemfile.empty?
43
-
44
- File.expand_path("../../Gemfile", __FILE__)
45
- end
46
-
47
- def lockfile
48
- lockfile =
49
- case File.basename(gemfile)
50
- when "gems.rb" then gemfile.sub(/\.rb$/, gemfile)
51
- else "#{gemfile}.lock"
52
- end
53
- File.expand_path(lockfile)
54
- end
55
-
56
- def lockfile_version
57
- return unless File.file?(lockfile)
58
- lockfile_contents = File.read(lockfile)
59
- return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
60
- Regexp.last_match(1)
61
- end
62
-
63
- def bundler_version
64
- @bundler_version ||=
65
- env_var_version || cli_arg_version ||
66
- lockfile_version
67
- end
68
-
69
- def bundler_requirement
70
- return "#{Gem::Requirement.default}.a" unless bundler_version
71
-
72
- bundler_gem_version = Gem::Version.new(bundler_version)
73
-
74
- requirement = bundler_gem_version.approximate_recommendation
75
-
76
- return requirement unless Gem::Version.new(Gem::VERSION) < Gem::Version.new("2.7.0")
77
-
78
- requirement += ".a" if bundler_gem_version.prerelease?
79
-
80
- requirement
81
- end
82
-
83
- def load_bundler!
84
- ENV["BUNDLE_GEMFILE"] ||= gemfile
85
-
86
- activate_bundler
87
- end
88
-
89
- def activate_bundler
90
- gem_error = activation_error_handling do
91
- gem "bundler", bundler_requirement
92
- end
93
- return if gem_error.nil?
94
- require_error = activation_error_handling do
95
- require "bundler/version"
96
- end
97
- return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION))
98
- warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`"
99
- exit 42
100
- end
101
-
102
- def activation_error_handling
103
- yield
104
- nil
105
- rescue StandardError, LoadError => e
106
- e
107
- end
108
- end
109
-
110
- m.load_bundler!
111
-
112
- if m.invoked_as_script?
113
- load Gem.bin_path("bundler", "bundle")
114
- end
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "getv"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/htmldiff DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'htmldiff' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
- Pathname.new(__FILE__).realpath)
14
-
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
16
-
17
- if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
- load(bundle_binstub)
20
- else
21
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
- end
24
- end
25
-
26
- require "rubygems"
27
- require "bundler/setup"
28
-
29
- load Gem.bin_path("diff-lcs", "htmldiff")
data/bin/irb DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'irb' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
- Pathname.new(__FILE__).realpath)
14
-
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
16
-
17
- if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
- load(bundle_binstub)
20
- else
21
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
- end
24
- end
25
-
26
- require "rubygems"
27
- require "bundler/setup"
28
-
29
- load Gem.bin_path("irb", "irb")
data/bin/ldiff DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'ldiff' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
- Pathname.new(__FILE__).realpath)
14
-
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
16
-
17
- if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
- load(bundle_binstub)
20
- else
21
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
- end
24
- end
25
-
26
- require "rubygems"
27
- require "bundler/setup"
28
-
29
- load Gem.bin_path("diff-lcs", "ldiff")
data/bin/nokogiri DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'nokogiri' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
- Pathname.new(__FILE__).realpath)
14
-
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
16
-
17
- if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
- load(bundle_binstub)
20
- else
21
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
- end
24
- end
25
-
26
- require "rubygems"
27
- require "bundler/setup"
28
-
29
- load Gem.bin_path("nokogiri", "nokogiri")
data/bin/racc DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'racc' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
- Pathname.new(__FILE__).realpath)
14
-
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
16
-
17
- if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
- load(bundle_binstub)
20
- else
21
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
- end
24
- end
25
-
26
- require "rubygems"
27
- require "bundler/setup"
28
-
29
- load Gem.bin_path("racc", "racc")
data/bin/rake DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'rake' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
- Pathname.new(__FILE__).realpath)
14
-
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
16
-
17
- if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
- load(bundle_binstub)
20
- else
21
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
- end
24
- end
25
-
26
- require "rubygems"
27
- require "bundler/setup"
28
-
29
- load Gem.bin_path("rake", "rake")
data/bin/rdoc DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'rdoc' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
- Pathname.new(__FILE__).realpath)
14
-
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
16
-
17
- if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
- load(bundle_binstub)
20
- else
21
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
- end
24
- end
25
-
26
- require "rubygems"
27
- require "bundler/setup"
28
-
29
- load Gem.bin_path("rdoc", "rdoc")
data/bin/restclient DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'restclient' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
- Pathname.new(__FILE__).realpath)
14
-
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
16
-
17
- if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
- load(bundle_binstub)
20
- else
21
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
- end
24
- end
25
-
26
- require "rubygems"
27
- require "bundler/setup"
28
-
29
- load Gem.bin_path("rest-client", "restclient")
data/bin/ri DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'ri' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
- Pathname.new(__FILE__).realpath)
14
-
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
16
-
17
- if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
- load(bundle_binstub)
20
- else
21
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
- end
24
- end
25
-
26
- require "rubygems"
27
- require "bundler/setup"
28
-
29
- load Gem.bin_path("rdoc", "ri")
data/bin/rspec DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'rspec' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "pathname"
12
- ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
- Pathname.new(__FILE__).realpath)
14
-
15
- bundle_binstub = File.expand_path("../bundle", __FILE__)
16
-
17
- if File.file?(bundle_binstub)
18
- if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
- load(bundle_binstub)
20
- else
21
- abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
- Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
- end
24
- end
25
-
26
- require "rubygems"
27
- require "bundler/setup"
28
-
29
- load Gem.bin_path("rspec-core", "rspec")
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here