getv 2.1.3 → 2.2.2

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: '09cc60d4212ca31e846439b931041166f3fca8cdf1e7dfc6442ee0f0c95c29e5'
4
- data.tar.gz: 66b94dd425781d6824abfb22bcafc47723c4025f8a8c3b3c8a5f3bf402da92a3
3
+ metadata.gz: 49aa8b3fcba8807f3c2f3a2293aaa55c8ca6e90b38855793fda814b66d679cf9
4
+ data.tar.gz: 7c8af95d73dd5a71febd3e6492c84bb24a4652ec87974f6557439be572eded4a
5
5
  SHA512:
6
- metadata.gz: 7d5207d6ed38b9b06b275d1f0b47503b490faca73427b39509cd79851ba7737e79f0be2247d8969945e9c2697b9a424f95d7e3c8f6213a8582625ceca2005833
7
- data.tar.gz: fc950d0cd4bab100cb665d9d47719fbf5a3c0fe471a6bee2325557e52c6257063c29928466a8aa99df507b77b7466757988f09db234f05546c8fa89a0ce1b540
6
+ metadata.gz: d92225e9fe417b80a5e25258f28e9f0c37d7fcac47d6f0f7e68536b76dad83058231d2c9163e762c1920ead4b51b632e29963b22672e4932dc16ed44acf38bcd
7
+ data.tar.gz: 3ba925a1e820db86aa4f7673fcba59c2e414edee80aaa238549fd8d9378ddb7392ff2a24447315b18c7289826ae5d128ea1dd0393ade0016eb9adf3398914e09
data/README.md CHANGED
@@ -39,7 +39,7 @@ SYNOPSIS
39
39
 
40
40
 
41
41
  VERSION
42
- 2.1.3
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.3
75
+ 2.1.4
76
76
  ```
77
77
 
78
78
  Show all `dep` GitHub release versions in JSON:
@@ -6,7 +6,7 @@ module Getv
6
6
  class Docker < Package
7
7
  def initialize(name, opts = {})
8
8
  opts = defaults.merge(opts)
9
- opts = { user: nil, password: nil }.merge(opts)
9
+ opts = { user: nil, password: nil, auto_paginate: true }.merge(opts)
10
10
  opts = docker_defaults(name).merge(opts)
11
11
  super name, opts
12
12
  end
@@ -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
@@ -40,7 +40,7 @@ module Getv
40
40
  require 'docker_registry2'
41
41
  retries ||= 0
42
42
  docker = DockerRegistry2.connect(opts[:url], docker_opts)
43
- docker.tags("#{opts[:owner]}/#{opts[:repo]}")['tags'] || []
43
+ docker.tags("#{opts[:owner]}/#{opts[:repo]}", auto_paginate: opts[:auto_paginate])['tags'] || []
44
44
  rescue DockerRegistry2::NotFound
45
45
  []
46
46
  rescue StandardError => e
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,
@@ -72,14 +73,22 @@ module Getv
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.3'
4
+ VERSION = '2.2.2'
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.3
4
+ version: 2.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - harbottle
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-05 00:00:00.000000000 Z
11
+ date: 2022-07-26 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