getv 1.2.1 → 1.3.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
2
  SHA256:
3
- metadata.gz: 549d2b57e5c43edd1ef2e1863ae5f77a2fb90ae084af476538a4be8ede571b96
4
- data.tar.gz: 70d9e117658760a203c38154ffcdb07b59a45755188738745810a7b190c4a699
3
+ metadata.gz: d3f1afae07aeb895e7cac0ef722a2a0c12008681ee09bfa724cdfc692accba75
4
+ data.tar.gz: 67ea05289cee910c2c53db2fa337cc6a20bc2459d407bf5bf995d01b5cea41a5
5
5
  SHA512:
6
- metadata.gz: 74e3de7eb766b38f77f963b73f86d53453af269a007c83e3329a4e4e51274fd052fee4d9bd68f79037abdb0cb5575d91eabdbba57db7dd43a14073738f9dd76c
7
- data.tar.gz: ac8824867be53ca59914e4edb77b0eeed7f46c204e63c2664a1d3897d291dbd1bc77b49917044a2bc45db3602918d384521422773f382ee468ca5d490c6fc1fa
6
+ metadata.gz: e33576d51b5d6a32d39f54421e87d458542b3ce38a52f2e8b5182d4c38d54257b5e4a75469f96d15df8ab34c0546e03a153e7133138dd5d2dd9b63258d0eaa02
7
+ data.tar.gz: da5ed58b41e029f1979147c6d3d614bdc9841f267fc56e37f9b4775b7f7c8dc1836141f57e477156876b03b2daa9ac518445364386f4e85802728e0981a7577e
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # getv
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/getv.svg)](https://rubygems.org/gems/getv)
4
+
3
5
  The goal of `getv` is to make it easy and quick to pull software package version numbers from various sources on the web. The application is packaged as a [gem](https://rubygems.org/gems/getv) and provides both a Ruby library and an executable command line tool, `getv`.
4
6
 
5
7
  ## Installation
@@ -37,18 +39,15 @@ SYNOPSIS
37
39
 
38
40
 
39
41
  VERSION
40
- 1.1.0
42
+ 1.3.0
41
43
 
42
44
 
43
45
 
44
46
  GLOBAL OPTIONS
45
- --help - Show this message
46
- -j, --json - Output in json
47
- -l, --latest - Latest version
48
- --reject=arg - Regex version rejection (default: none)
49
- --select_replace=arg - Regex version selection replace (default: none)
50
- --select_search=arg - Regex version selection search (default: none)
51
- --version - Display the program version
47
+ --help - Show this message
48
+ -j, --json - Output in json
49
+ -l, --latest - Latest version
50
+ --version - Display the program version
52
51
 
53
52
 
54
53
 
@@ -56,9 +55,9 @@ COMMANDS
56
55
  docker - Get package versions from a Docker or OCI container image registry
57
56
  gem - Get package versions from RubyGems.org
58
57
  get - Get package versions from text file URL
59
- github_commit - Get package versions from GitHub commits
60
- github_release - Get package versions from GitHub releases
61
- github_tag - Get package versions from GitHub tags
58
+ github_commit - Get package versions from GitHub commits. Set environment variable $GITHUB_TOKEN to avoid GitHub API limit.
59
+ github_release - Get package versions from GitHub releases. Set environment variable $GITHUB_TOKEN to avoid GitHub API limit.
60
+ github_tag - Get package versions from GitHub tags. Set environment variable $GITHUB_TOKEN to avoid GitHub API limit.
62
61
  help - Shows a list of commands or help for one command
63
62
  index - Get package versions from web page of links
64
63
  npm - Get package versions from npm at registry.npmjs.org
@@ -71,7 +70,7 @@ Show the latest available version of the `getv` gem:
71
70
 
72
71
  ```console
73
72
  $ getv --latest gem getv
74
- 1.1.0
73
+ 1.3.0
75
74
  ```
76
75
 
77
76
  Show all `dep` GitHub release versions in JSON:
@@ -84,7 +83,7 @@ $ getv --json github_release golang/dep
84
83
  Show all AtomicParsley Github release versions:
85
84
 
86
85
  ```console
87
- $ getv --select_search='(.*)' github_release --invalid_versions wez/atomicparsley
86
+ $ getv github_release --invalid_versions wez/atomicparsley
88
87
  20200701.154658.b0d6223
89
88
  20201231.092811.cbecfb1
90
89
  20210114.184825.1dbe1be
@@ -103,7 +102,7 @@ $ getv -l get --url=https://storage.googleapis.com/kubernetes-release/release/st
103
102
  Show selected semantic versions of the `apache/superset` Docker image in JSON:
104
103
 
105
104
  ```console
106
- $ getv --json --reject '-' docker --semantic_select '~>1.3.0,!=1.3.1' apache/superset
105
+ $ getv --json docker --reject '-' --semantic_select '~>1.3.0,!=1.3.1' apache/superset
107
106
  {"name":"apache/superset","versions":["1.3.0","1.3.2"]}
108
107
  ```
109
108
 
@@ -121,7 +120,7 @@ Show the latest GitHub commit to the `main` branch of the `getv` project in a us
121
120
 
122
121
  ```console
123
122
  # By default the \2 capture group contains the date and \5 contains the short commit hash
124
- $ getv -l --select_replace '\2git\5' github_commit --branch main liger1978/getv
123
+ $ getv -l github_commit --select_replace '\2git\5' --branch main liger1978/getv
125
124
  20220123git9ed86f0
126
125
  ```
127
126
 
@@ -141,6 +140,14 @@ puts superset.latest_version
141
140
 
142
141
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake spec` to run the tests. Run `bundle exec rubocop` to run the linter. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
143
142
 
143
+ Note that by default, Bundler will attempt to install gems to the system, e.g. `/usr/bin`, `/usr/share`, which requires elevated access and can interfere with files that are managed by the system's package manager. This behaviour can be overridden by creating the file `.bundle/config` and adding the following line:
144
+ ```
145
+ BUNDLE_PATH: "./.bundle"
146
+ ```
147
+ When you run `bin/setup` or `bundle install`, all gems will be installed inside the .bundle directory of this project.
148
+
149
+ To make this behaviour a default for all gem projects, the above line can be added to the user's bundle config file in their home directory (`~/.bundle/config`)
150
+
144
151
  ## Contributing
145
152
 
146
153
  Bug reports and pull requests are welcome on [GitHub](https://github.com/liger1978/getv).
data/exe/getv CHANGED
@@ -44,24 +44,28 @@ class App # rubocop:disable Metrics/ClassLength
44
44
 
45
45
  switch %i[l latest], desc: 'Latest version', negatable: false
46
46
  switch %i[j json], desc: 'Output in json', negatable: false
47
- flag %i[select_search], desc: 'Regex version selection search'
48
- flag %i[select_replace], desc: 'Regex version selection replace'
49
- flag %i[reject], desc: 'Regex version rejection'
50
47
 
51
48
  desc 'Get package versions from a Docker or OCI container image registry'
52
49
  arg_name 'package_name'
53
- command :docker do |c|
50
+ command :docker do |c| # rubocop:disable Metrics/BlockLength
51
+ defaults = (Getv::Package.new 'name', type: c.name.to_s).opts
52
+ c.flag %i[select_search], desc: 'Regex version selection search', default_value: defaults[:select_search]
53
+ c.flag %i[select_replace], desc: 'Regex version selection replace', default_value: defaults[:select_replace]
54
+ c.flag %i[reject], desc: 'Regex version rejection', default_value: defaults[:reject]
54
55
  c.switch %i[invalid_versions], desc: 'Include invalid semantic versions', negatable: false, default_value: false
55
- c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)'
56
- c.flag %i[owner], desc: 'Repository owner'
57
- c.flag %i[repo], desc: 'Repository name'
58
- c.flag %i[url], desc: 'URL'
56
+ c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)',
57
+ default_value: defaults[:semantic_select]
58
+ c.flag %i[owner], desc: 'Repository owner',
59
+ default_value: "'<owner>' if package_name is in format '<owner>/<repo>', otherwise just package_name" # rubocop:disable Layout/LineLength
60
+ c.flag %i[repo], desc: 'Repository name',
61
+ default_value: "'<repo>' if package_name is in format '<owner>/<repo>', otherwise just package_name" # rubocop:disable Layout/LineLength
62
+ c.flag %i[url], desc: 'URL', default_value: defaults[:url]
59
63
  c.action do |global_options, options, args|
60
64
  if args.size == 1
61
65
  opts = global_options.merge(options)
62
66
  opts = opts.slice :select_search, :select_replace, :reject, :semantic_only, :semantic_select, :owner, :repo,
63
67
  :url
64
- opts = opts.delete_if { |_k, v| v.nil? }
68
+ opts = opts.delete_if { |k, v| v.nil? || v == c.flags[k].default_value }
65
69
  opts[:semantic_only] = !options[:invalid_versions]
66
70
  opts[:semantic_select] = opts[:semantic_select].split(',') unless opts.fetch(:semantic_select, nil).nil?
67
71
  package = Getv::Package.new args[0], { type: c.name.to_s }.merge(opts)
@@ -75,13 +79,18 @@ class App # rubocop:disable Metrics/ClassLength
75
79
  desc 'Get package versions from RubyGems.org'
76
80
  arg_name 'package_name'
77
81
  command :gem do |c|
82
+ defaults = (Getv::Package.new 'name', type: c.name.to_s).opts
83
+ c.flag %i[select_search], desc: 'Regex version selection search', default_value: defaults[:select_search]
84
+ c.flag %i[select_replace], desc: 'Regex version selection replace', default_value: defaults[:select_replace]
85
+ c.flag %i[reject], desc: 'Regex version rejection', default_value: defaults[:reject]
78
86
  c.switch %i[invalid_versions], desc: 'Include invalid semantic versions', negatable: false, default_value: false
79
- c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)'
87
+ c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)',
88
+ default_value: defaults[:semantic_select]
80
89
  c.action do |global_options, options, args|
81
90
  if args.size == 1
82
91
  opts = global_options.merge(options)
83
92
  opts = opts.slice :select_search, :select_replace, :reject, :semantic_only, :semantic_select
84
- opts = opts.delete_if { |_k, v| v.nil? }
93
+ opts = opts.delete_if { |k, v| v.nil? || v == c.flags[k].default_value }
85
94
  opts[:semantic_only] = !options[:invalid_versions]
86
95
  opts[:semantic_select] = opts[:semantic_select].split(',') unless opts.fetch(:semantic_select, nil).nil?
87
96
  package = Getv::Package.new args[0], { type: c.name.to_s }.merge(opts)
@@ -95,14 +104,19 @@ class App # rubocop:disable Metrics/ClassLength
95
104
  desc 'Get package versions from text file URL'
96
105
  arg_name 'package_name'
97
106
  command :get do |c|
107
+ defaults = (Getv::Package.new 'name', type: c.name.to_s).opts
108
+ c.flag %i[select_search], desc: 'Regex version selection search', default_value: defaults[:select_search]
109
+ c.flag %i[select_replace], desc: 'Regex version selection replace', default_value: defaults[:select_replace]
110
+ c.flag %i[reject], desc: 'Regex version rejection', default_value: defaults[:reject]
98
111
  c.switch %i[invalid_versions], desc: 'Include invalid semantic versions', negatable: false, default_value: false
99
- c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)'
100
- c.flag %i[url], desc: 'URL'
112
+ c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)',
113
+ default_value: defaults[:semantic_select]
114
+ c.flag %i[url], desc: 'URL', default_value: defaults[:url]
101
115
  c.action do |global_options, options, args|
102
116
  if args.size == 1
103
117
  opts = global_options.merge(options)
104
118
  opts = opts.slice :select_search, :select_replace, :reject, :semantic_only, :semantic_select, :url
105
- opts = opts.delete_if { |_k, v| v.nil? }
119
+ opts = opts.delete_if { |k, v| v.nil? || v == c.flags[k].default_value }
106
120
  opts[:semantic_only] = !options[:invalid_versions]
107
121
  opts[:semantic_select] = opts[:semantic_select].split(',') unless opts.fetch(:semantic_select, nil).nil?
108
122
  package = Getv::Package.new args[0], { type: c.name.to_s }.merge(opts)
@@ -116,14 +130,20 @@ class App # rubocop:disable Metrics/ClassLength
116
130
  desc 'Get package versions from GitHub commits. Set environment variable $GITHUB_TOKEN to avoid GitHub API limit.'
117
131
  arg_name 'package_name'
118
132
  command :github_commit do |c|
119
- c.flag %i[owner], desc: 'Repository owner'
120
- c.flag %i[repo], desc: 'Repository name'
121
- c.flag %i[branch], desc: 'Repository branch'
133
+ defaults = (Getv::Package.new 'name', type: c.name.to_s).opts
134
+ c.flag %i[select_search], desc: 'Regex version selection search', default_value: defaults[:select_search]
135
+ c.flag %i[select_replace], desc: 'Regex version selection replace', default_value: defaults[:select_replace]
136
+ c.flag %i[reject], desc: 'Regex version rejection', default_value: defaults[:reject]
137
+ c.flag %i[owner], desc: 'Repository owner',
138
+ default_value: "'<owner>' if package_name is in format '<owner>/<repo>', otherwise just package_name" # rubocop:disable Layout/LineLength
139
+ c.flag %i[repo], desc: 'Repository name',
140
+ default_value: "'<repo>' if package_name is in format '<owner>/<repo>', otherwise just package_name" # rubocop:disable Layout/LineLength
141
+ c.flag %i[branch], desc: 'Repository branch', default_value: defaults[:branch]
122
142
  c.action do |global_options, options, args|
123
143
  if args.size == 1
124
144
  opts = global_options.merge(options)
125
145
  opts = opts.slice :select_search, :select_replace, :reject, :owner, :repo, :branch
126
- opts = opts.delete_if { |_k, v| v.nil? }
146
+ opts = opts.delete_if { |k, v| v.nil? || v == c.flags[k].default_value }
127
147
  package = Getv::Package.new args[0], { type: c.name.to_s }.merge(opts)
128
148
  Getv::Cli.output(package, latest: global_options[:latest], json: global_options[:json])
129
149
  else
@@ -135,15 +155,22 @@ class App # rubocop:disable Metrics/ClassLength
135
155
  desc 'Get package versions from GitHub releases. Set environment variable $GITHUB_TOKEN to avoid GitHub API limit.'
136
156
  arg_name 'package_name'
137
157
  command :github_release do |c|
158
+ defaults = (Getv::Package.new 'name', type: c.name.to_s).opts
159
+ c.flag %i[select_search], desc: 'Regex version selection search', default_value: defaults[:select_search]
160
+ c.flag %i[select_replace], desc: 'Regex version selection replace', default_value: defaults[:select_replace]
161
+ c.flag %i[reject], desc: 'Regex version rejection', default_value: defaults[:reject]
138
162
  c.switch %i[invalid_versions], desc: 'Include invalid semantic versions', negatable: false, default_value: false
139
- c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)'
140
- c.flag %i[owner], desc: 'Repository owner'
141
- c.flag %i[repo], desc: 'Repository name'
163
+ c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)',
164
+ default_value: defaults[:semantic_select]
165
+ c.flag %i[owner], desc: 'Repository owner',
166
+ default_value: "'<owner>' if package_name is in format '<owner>/<repo>', otherwise just package_name" # rubocop:disable Layout/LineLength
167
+ c.flag %i[repo], desc: 'Repository name',
168
+ default_value: "'<repo>' if package_name is in format '<owner>/<repo>', otherwise just package_name" # rubocop:disable Layout/LineLength
142
169
  c.action do |global_options, options, args|
143
170
  if args.size == 1
144
171
  opts = global_options.merge(options)
145
172
  opts = opts.slice :select_search, :select_replace, :reject, :semantic_only, :semantic_select, :owner, :repo
146
- opts = opts.delete_if { |_k, v| v.nil? }
173
+ opts = opts.delete_if { |k, v| v.nil? || v == c.flags[k].default_value }
147
174
  opts[:semantic_only] = !options[:invalid_versions]
148
175
  opts[:semantic_select] = opts[:semantic_select].split(',') unless opts.fetch(:semantic_select, nil).nil?
149
176
  package = Getv::Package.new args[0], { type: c.name.to_s }.merge(opts)
@@ -157,15 +184,22 @@ class App # rubocop:disable Metrics/ClassLength
157
184
  desc 'Get package versions from GitHub tags. Set environment variable $GITHUB_TOKEN to avoid GitHub API limit.'
158
185
  arg_name 'package_name'
159
186
  command :github_tag do |c|
187
+ defaults = (Getv::Package.new 'name', type: c.name.to_s).opts
188
+ c.flag %i[select_search], desc: 'Regex version selection search', default_value: defaults[:select_search]
189
+ c.flag %i[select_replace], desc: 'Regex version selection replace', default_value: defaults[:select_replace]
190
+ c.flag %i[reject], desc: 'Regex version rejection', default_value: defaults[:reject]
160
191
  c.switch %i[invalid_versions], desc: 'Include invalid semantic versions', negatable: false, default_value: false
161
- c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)'
162
- c.flag %i[owner], desc: 'Repository owner'
163
- c.flag %i[repo], desc: 'Repository name'
192
+ c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)',
193
+ default_value: defaults[:semantic_select]
194
+ c.flag %i[owner], desc: 'Repository owner',
195
+ default_value: "'<owner>' if package_name is in format '<owner>/<repo>', otherwise just package_name" # rubocop:disable Layout/LineLength
196
+ c.flag %i[repo], desc: 'Repository name',
197
+ default_value: "'<repo>' if package_name is in format '<owner>/<repo>', otherwise just package_name" # rubocop:disable Layout/LineLength
164
198
  c.action do |global_options, options, args|
165
199
  if args.size == 1
166
200
  opts = global_options.merge(options)
167
201
  opts = opts.slice :select_search, :select_replace, :reject, :semantic_only, :semantic_select, :owner, :repo
168
- opts = opts.delete_if { |_k, v| v.nil? }
202
+ opts = opts.delete_if { |k, v| v.nil? || v == c.flags[k].default_value }
169
203
  opts[:semantic_only] = !options[:invalid_versions]
170
204
  opts[:semantic_select] = opts[:semantic_select].split(',') unless opts.fetch(:semantic_select, nil).nil?
171
205
  package = Getv::Package.new args[0], { type: c.name.to_s }.merge(opts)
@@ -179,16 +213,21 @@ class App # rubocop:disable Metrics/ClassLength
179
213
  desc 'Get package versions from web page of links'
180
214
  arg_name 'package_name'
181
215
  command :index do |c|
216
+ defaults = (Getv::Package.new 'name', type: c.name.to_s).opts
217
+ c.flag %i[select_search], desc: 'Regex version selection search', default_value: defaults[:select_search]
218
+ c.flag %i[select_replace], desc: 'Regex version selection replace', default_value: defaults[:select_replace]
219
+ c.flag %i[reject], desc: 'Regex version rejection', default_value: defaults[:reject]
182
220
  c.switch %i[invalid_versions], desc: 'Include invalid semantic versions', negatable: false, default_value: false
183
- c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)'
184
- c.flag %i[url], desc: 'URL'
221
+ c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)',
222
+ default_value: defaults[:semantic_select]
223
+ c.flag %i[url], desc: 'URL', default_value: defaults[:url]
185
224
  c.switch %i[link_value], desc: 'Use the value (target) of links rather than the content (display text)',
186
225
  negatable: false, default_value: false
187
226
  c.action do |global_options, options, args|
188
227
  if args.size == 1
189
228
  opts = global_options.merge(options)
190
229
  opts = opts.slice :select_search, :select_replace, :reject, :semantic_only, :semantic_select, :url
191
- opts = opts.delete_if { |_k, v| v.nil? }
230
+ opts = opts.delete_if { |k, v| v.nil? || v == c.flags[k].default_value }
192
231
  opts[:link] == 'value' if options[:link_value]
193
232
  opts[:semantic_only] = !options[:invalid_versions]
194
233
  opts[:semantic_select] = opts[:semantic_select].split(',') unless opts.fetch(:semantic_select, nil).nil?
@@ -203,13 +242,18 @@ class App # rubocop:disable Metrics/ClassLength
203
242
  desc 'Get package versions from npm at registry.npmjs.org'
204
243
  arg_name 'package_name'
205
244
  command :npm do |c|
245
+ defaults = (Getv::Package.new 'name', type: c.name.to_s).opts
246
+ c.flag %i[select_search], desc: 'Regex version selection search', default_value: defaults[:select_search]
247
+ c.flag %i[select_replace], desc: 'Regex version selection replace', default_value: defaults[:select_replace]
248
+ c.flag %i[reject], desc: 'Regex version rejection', default_value: defaults[:reject]
206
249
  c.switch %i[invalid_versions], desc: 'Include invalid semantic versions', negatable: false, default_value: false
207
- c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)'
250
+ c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)',
251
+ default_value: defaults[:semantic_select]
208
252
  c.action do |global_options, options, args|
209
253
  if args.size == 1
210
254
  opts = global_options.merge(options)
211
255
  opts = opts.slice :select_search, :select_replace, :reject, :semantic_only, :semantic_select
212
- opts = opts.delete_if { |_k, v| v.nil? }
256
+ opts = opts.delete_if { |k, v| v.nil? || v == c.flags[k].default_value }
213
257
  opts[:semantic_only] = !options[:invalid_versions]
214
258
  opts[:semantic_select] = opts[:semantic_select].split(',') unless opts.fetch(:semantic_select, nil).nil?
215
259
  package = Getv::Package.new args[0], { type: c.name.to_s }.merge(opts)
@@ -223,13 +267,18 @@ class App # rubocop:disable Metrics/ClassLength
223
267
  desc 'Get package versions from the Python Package Index at pypi.org'
224
268
  arg_name 'package_name'
225
269
  command :pypi do |c|
270
+ defaults = (Getv::Package.new 'name', type: c.name.to_s).opts
271
+ c.flag %i[select_search], desc: 'Regex version selection search', default_value: defaults[:select_search]
272
+ c.flag %i[select_replace], desc: 'Regex version selection replace', default_value: defaults[:select_replace]
273
+ c.flag %i[reject], desc: 'Regex version rejection', default_value: defaults[:reject]
226
274
  c.switch %i[invalid_versions], desc: 'Include invalid semantic versions', negatable: false, default_value: false
227
- c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)'
275
+ c.flag %i[semantic_select], desc: 'Semantic version selection (comma delimited)',
276
+ default_value: defaults[:semantic_select]
228
277
  c.action do |global_options, options, args|
229
278
  if args.size == 1
230
279
  opts = global_options.merge(options)
231
280
  opts = opts.slice :select_search, :select_replace, :reject, :semantic_only, :semantic_select
232
- opts = opts.delete_if { |_k, v| v.nil? }
281
+ opts = opts.delete_if { |k, v| v.nil? || v == c.flags[k].default_value }
233
282
  opts[:semantic_only] = !options[:invalid_versions]
234
283
  opts[:semantic_select] = opts[:semantic_select].split(',') unless opts.fetch(:semantic_select, nil).nil?
235
284
  package = Getv::Package.new args[0], { type: c.name.to_s }.merge(opts)
data/lib/getv/package.rb CHANGED
@@ -24,7 +24,7 @@ module Getv
24
24
  end
25
25
  opts = {
26
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
27
+ select_search: '^\s*v?(.*)\s*$',
28
28
  select_replace: '\1',
29
29
  reject: nil,
30
30
  semantic_only: true,
data/lib/getv/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Getv
4
- VERSION = '1.2.1'
4
+ VERSION = '1.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: getv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
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-23 00:00:00.000000000 Z
11
+ date: 2022-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli
@@ -118,20 +118,9 @@ executables:
118
118
  extensions: []
119
119
  extra_rdoc_files: []
120
120
  files:
121
- - ".bundle/config"
122
- - ".github/workflows/ruby.yml"
123
- - ".gitignore"
124
- - ".rspec"
125
- - ".rubocop.yml"
126
- - ".travis.yml"
127
- - Gemfile
128
121
  - LICENSE.txt
129
122
  - README.md
130
- - Rakefile
131
- - bin/console
132
- - bin/setup
133
123
  - exe/getv
134
- - getv.gemspec
135
124
  - lib/getv.rb
136
125
  - lib/getv/package.rb
137
126
  - lib/getv/version.rb
@@ -142,7 +131,7 @@ metadata:
142
131
  homepage_uri: https://github.com/liger1978/getv
143
132
  source_code_uri: https://github.com/liger1978/getv
144
133
  changelog_uri: https://github.com/liger1978/getv
145
- post_install_message:
134
+ post_install_message:
146
135
  rdoc_options: []
147
136
  require_paths:
148
137
  - lib
@@ -157,8 +146,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
146
  - !ruby/object:Gem::Version
158
147
  version: '0'
159
148
  requirements: []
160
- rubygems_version: 3.2.22
161
- signing_key:
149
+ rubygems_version: 3.0.3
150
+ signing_key:
162
151
  specification_version: 4
163
152
  summary: Pull package version numbers from the web in various ways.
164
153
  test_files: []
data/.bundle/config DELETED
@@ -1,4 +0,0 @@
1
- ---
2
- BUNDLE_BIN: "bin"
3
- BUNDLE_DISABLE_SHARED_GEMS: "true"
4
- BUNDLE_PATH: "./bundle"
@@ -1,37 +0,0 @@
1
- # This workflow uses actions that are not certified by GitHub.
2
- # They are provided by a third-party and are governed by
3
- # separate terms of service, privacy policy, and support
4
- # documentation.
5
- # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
- # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
-
8
- name: Ruby
9
-
10
- on:
11
- push:
12
- branches: [ main ]
13
- pull_request:
14
- branches: [ main ]
15
-
16
- jobs:
17
- test:
18
-
19
- runs-on: ubuntu-latest
20
- strategy:
21
- matrix:
22
- ruby-version: ['2.6', '2.7', '3.0']
23
-
24
- steps:
25
- - uses: actions/checkout@v2
26
- - name: Set up Ruby
27
- # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
- # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
- # uses: ruby/setup-ruby@v1
30
- uses: ruby/setup-ruby@v1
31
- with:
32
- ruby-version: ${{ matrix.ruby-version }}
33
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
- - name: Run linter
35
- run: bundle exec rake rubocop
36
- - name: Run unit tests
37
- run: bundle exec rake
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- /bin/*
2
- !/bin/console
3
- !/bin/setup
4
- /bundle/
5
- /.yardoc
6
- /_yardoc/
7
- /coverage/
8
- /doc/
9
- /pkg/
10
- /spec/reports/
11
- /tmp/
12
- /*.gem
13
- /vendor
14
- Gemfile.lock
15
-
16
- # rspec failure tracking
17
- .rspec_status
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.rubocop.yml DELETED
@@ -1,16 +0,0 @@
1
- ---
2
- require:
3
- - rubocop-rspec
4
- AllCops:
5
- Exclude:
6
- - 'bin/**/*'
7
- - 'bundle/**/*'
8
- - 'vendor/**/*'
9
- - '*.gemspec'
10
- NewCops: enable
11
-
12
- Metrics/BlockLength:
13
- Exclude:
14
- - 'Rakefile'
15
- - '**/*.rake'
16
- - 'spec/**/*_spec.rb'
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.6.6
6
- before_install: gem install bundler -v 2.1.4
data/Gemfile DELETED
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- # Specify your gem's dependencies in getv.gemspec
6
- gemspec
7
-
8
- gem 'docker_registry2', '~> 1.10'
9
- gem 'gli', '~> 2.20'
10
- gem 'irb', '~> 1.4'
11
- gem 'nokogiri', '~> 1.13'
12
- gem 'octokit', '~> 4.21'
13
- gem 'rake', '~> 12.0'
14
- gem 'rdoc', '~> 6.4'
15
- gem 'rspec', '~> 3.0'
16
- gem 'rubocop', '~> 1.24', require: false
17
- gem 'rubocop-rake', '~> 0.6', require: false
18
- gem 'rubocop-rspec', '~> 2.7', require: false
19
- gem 'semantic', '~> 1.6'
20
- gem 'vcr', '~> 6.0'
21
- gem 'webmock', '~> 3.0'
data/Rakefile DELETED
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
5
- require 'rubocop/rake_task'
6
-
7
- RSpec::Core::RakeTask.new(:spec)
8
-
9
- RuboCop::RakeTask.new do |task|
10
- task.requires << 'rubocop-rspec'
11
- end
12
-
13
- task default: :spec
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/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
data/getv.gemspec DELETED
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'lib/getv/version'
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = 'getv'
7
- spec.version = Getv::VERSION
8
- spec.authors = ['harbottle']
9
- spec.email = ['harbottle@room3d3.com']
10
-
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'
15
-
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'
19
-
20
- # Specify which files should be added to the gem when it is released.
21
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
22
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
23
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
- end
25
- spec.bindir = 'exe'
26
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
- spec.require_paths = ['lib']
28
-
29
- spec.add_dependency('gli', '>= 2.20.1', '< 3.0.0')
30
- spec.add_dependency('docker_registry2', '>= 1.0.0', '< 2.0.0')
31
- spec.add_dependency('nokogiri', '>= 1.0.0', '< 2.0.0')
32
- spec.add_dependency('octokit', '>= 3.0.0', '< 5.0.0')
33
- spec.add_dependency('semantic', '>= 1.0.0', '< 2.0.0')
34
- end