getv 2.1.2 → 2.2.0

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: 4a93d786b9109d9f99361e2e5fbda52af315ee2945d1d286910a2f26afcf4426
4
- data.tar.gz: d39c715cf2a38fee4a326d577bf238ae44399078ef562d1f585945bc012377b2
3
+ metadata.gz: a61689e83e79890fe34ef8a54fb004fce2ba6afc46f461f15345b0aa5a521e02
4
+ data.tar.gz: 5b85ec535bf555d416fe406b6438f8455c672d87ba76a3a39dfa8bffd113a8b7
5
5
  SHA512:
6
- metadata.gz: 0bbd5cfeff4a45f151a77dcfe7660cf4a333852419b68df6f4b21d5acef4dd8cb4facd48a34b1e5eaff35905f62c10a9378c6d5afadcbc9eb17d42edfb435bfa
7
- data.tar.gz: 71a67c7993e38745ea78880b68abffe0284c6260357585d55b887c11d53be23b805739b15da2a91d520fa53161f8e938e645a15fbef1acacafa988e07a5f2928
6
+ metadata.gz: f5a88e66bc7a8d8a3c9ab49fed1ac6b19c1477bf3b50a18beeb7a4ccbcab7cecffe43b07ab761f62d661d6c411e6060718979bbb1525e7c6d3fb1f5117cecb7b
7
+ data.tar.gz: 31859e428d224cf9e1cb5741873cbaed2f46653dbc247d582df106fa06284ab3c20f7c97c0ceff9f52e63dba0f960cbf41cd453f3c7ed68fa39314a5aa83f70e
data/README.md CHANGED
@@ -39,7 +39,7 @@ SYNOPSIS
39
39
 
40
40
 
41
41
  VERSION
42
- 2.1.2
42
+ 2.1.4
43
43
 
44
44
 
45
45
 
@@ -72,7 +72,7 @@ Show the latest available version of the `getv` gem:
72
72
 
73
73
  ```console
74
74
  $ getv --latest gem getv
75
- 2.1.2
75
+ 2.1.4
76
76
  ```
77
77
 
78
78
  Show all `dep` GitHub release versions in JSON:
@@ -21,7 +21,7 @@ module Getv
21
21
  { owner: name.split('/')[0], repo: name.split('/')[1],
22
22
  url: 'https://registry.hub.docker.com' }
23
23
  else
24
- { owner: name.split('/')[1], repo: name.split('/')[2..-1].join('/'),
24
+ { owner: name.split('/')[1], repo: name.split('/')[2..].join('/'),
25
25
  url: "https://#{name.split('/')[0]}" }
26
26
  end
27
27
  end
@@ -36,15 +36,20 @@ module Getv
36
36
  d_opts
37
37
  end
38
38
 
39
- def retrieve_versions
39
+ def retrieve_versions # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
40
40
  require 'docker_registry2'
41
41
  retries ||= 0
42
42
  docker = DockerRegistry2.connect(opts[:url], docker_opts)
43
43
  docker.tags("#{opts[:owner]}/#{opts[:repo]}")['tags'] || []
44
44
  rescue DockerRegistry2::NotFound
45
45
  []
46
- rescue StandardError
47
- retry if (retries += 1) < 4
46
+ rescue StandardError => e
47
+ if (retries += 1) < 4
48
+ retry
49
+ else
50
+ puts "Error fetching tags for docker image #{opts[:url]}/#{opts[:owner]}/#{opts[:repo]}:"
51
+ puts e.message
52
+ end
48
53
  end
49
54
  end
50
55
  end
data/lib/getv/package.rb CHANGED
@@ -42,12 +42,13 @@ module Getv
42
42
  @opts = opts
43
43
  end
44
44
 
45
- def defaults
45
+ def defaults # rubocop:disable Metrics/MethodLength
46
46
  {
47
47
  select_search: '^\s*v?(.*)\s*$',
48
48
  select_replace: '\1',
49
49
  reject: nil,
50
50
  semantic_only: true,
51
+ semantic_prefix: nil,
51
52
  semantic_select: ['*'],
52
53
  proxy: nil,
53
54
  versions: nil,
@@ -66,20 +67,28 @@ module Getv
66
67
  end
67
68
 
68
69
  def update_versions # rubocop:disable Metrics/PerceivedComplexity,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/AbcSize
69
- versions = retrieve_versions
70
+ versions = retrieve_versions || []
70
71
  versions.sort! if instance_of?(Getv::Package::GitHub::Commit)
71
72
  select_pattern = Regexp.new(opts[:select_search])
72
73
  versions.select! { |v| v =~ select_pattern }
73
74
  versions.map! { |v| v.sub(select_pattern, opts[:select_replace]) }
74
75
  versions.reject! { |v| v =~ Regexp.new(opts[:reject]) } unless opts[:reject].nil?
76
+
75
77
  if opts[:semantic_only]
76
78
  require 'semantic'
77
79
  require 'semantic/core_ext'
78
- versions.select!(&:is_version?)
80
+
81
+ # remove non semantic version tags
82
+ versions.select! do |v|
83
+ v.sub(/^#{opts[:semantic_prefix]}/, '').is_version? && v.start_with?(opts[:semantic_prefix].to_s)
84
+ end
85
+
79
86
  opts[:semantic_select].each do |comparator|
80
- versions.select! { |v| Semantic::Version.new(v).satisfies?(comparator) }
87
+ versions.select! do |v|
88
+ Semantic::Version.new(v.sub(/^#{opts[:semantic_prefix]}/, '')).satisfies?(comparator)
89
+ end
81
90
  end
82
- versions.sort_by! { |v| Semantic::Version.new(v) }
91
+ versions.sort_by! { |v| Semantic::Version.new(v.sub(/^#{opts[:semantic_prefix]}/, '')) }
83
92
  else
84
93
  versions.sort! unless instance_of?(Getv::Package::GitHub::Commit)
85
94
  end
data/lib/getv/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Getv
4
- VERSION = '2.1.2'
4
+ VERSION = '2.2.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: 2.1.2
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - harbottle
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-04 00:00:00.000000000 Z
11
+ date: 2022-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 1.0.0
39
+ version: 1.10.1
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
42
  version: 2.0.0
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.0.0
49
+ version: 1.10.1
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: 2.0.0