tins 1.44.1 → 1.46.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: dea8b09113e54baa0b79f271dcac56a05623938cfcf59936997a74e76f20a250
4
- data.tar.gz: dcd68ba95e4178255f5198e7f0a28812f13061aa4c0086bb06cd4d41bd131db3
3
+ metadata.gz: 2d1b389e636a16cc5689bf6289e6ec7eb0242c245851fbf208d14284df4fb941
4
+ data.tar.gz: f1d2211dfed516bbff6a93a94a0ac02dc2ab1aa029dd741655eac116e35d2cb6
5
5
  SHA512:
6
- metadata.gz: ce4055137e119adc1e3d7eb19cf367075ed65e153f7c07376d4f1b737beaff0096c975625a06b4fd434bed30e0e201f5ff397641a044a98bb92fa9167fb15cc5
7
- data.tar.gz: 968434c46941904d1deda42a10198d40fb127f43497c4e203e44fdc7c87d7d57366c4f0c61e6ccb1401de0a77c57f21e395708cd7868eabab95e8def759f7c69
6
+ metadata.gz: 408866a386efdeaf813f5c0ece264da6851ff6e4332a4838c8daa5f7e50d4689e652201ec0160f38d7e92d738d19fef9800842a7ec4e301a37458ca378a27afa
7
+ data.tar.gz: 213f32c4de0712be8e495a6ffebb2f36172e77016b56831bb5106efb5b020322317b0870ed2b3ab11f88bf469c1ba60fc539c4003ce1bbf86a53a591ac667455
data/CHANGES.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changes
2
2
 
3
+ ## 2025-11-10 v1.46.0
4
+
5
+ - Updated `s.rubygems_version` from **3.6.9** to **3.7.2** in gemspec
6
+ - In Tins::GO
7
+ - Extended string defaults with `EnumerableExtension` transformation
8
+ - Modified `v.transform_values!` to check and extend strings that aren't already `EnumerableExtension`
9
+ - Applied `w << w` to properly initialize the extension on default strings
10
+ - Updated tests to verify `EnumerableExtension` instances for both `v` and `w` options
11
+ - Set default value for `?w` option to **'baz'** in test cases
12
+ - Maintained backward compatibility while normalizing string handling
13
+ - Ensured consistent behavior between ARGV strings and default strings
14
+
15
+ ## 2025-10-16 v1.45.0
16
+
17
+ - Added `patch` alias for `build` and `build=` methods to align with SemVer terminology
18
+ - Updated `LEVELS` mapping to support `:patch` as alias for `:build` index
19
+ - Added `patch` and `patch=` aliases using the `alias` method
20
+ - Added tests for `patch` getter and setter functionality
21
+ - Updated `gem_hadar` development dependency from version **2.5** to **2.8**
22
+ - Added `openssl-dev` to Docker build dependencies
23
+ - Added `github_workflows` configuration to `Rakefile` for `static.yml` workflow
24
+ - Removed `.byebug_history` from `.gitignore` file
25
+ - Removed `.byebug_history` from ignore list in `Rakefile`
26
+ - Removed duplicate `mize` entry from code indexer configuration
27
+
3
28
  ## 2025-09-13 v1.44.1
4
29
 
5
30
  - Updated documentation link in README.md to point to GitHub.io instead of
data/Rakefile CHANGED
@@ -14,14 +14,18 @@ GemHadar do
14
14
  doc_code_files files.grep(%r(\Alib/))
15
15
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', 'coverage',
16
16
  '.rbx', '.AppleDouble', '.DS_Store', 'tags', 'cscope.out', '.bundle',
17
- '.byebug_history', '.yardoc', 'doc', 'TODO.md'
17
+ '.yardoc', 'doc', 'TODO.md'
18
18
  package_ignore '.all_images.yml', '.tool-versions', '.gitignore',
19
- 'VERSION', '.utilsrc', *FileList['.github/**/*'], *FileList['.contexts/*']
19
+ 'VERSION', '.utilsrc', '.github', '.contexts'
20
20
 
21
21
  readme 'README.md'
22
22
  licenses << 'MIT'
23
23
  clean << 'coverage'
24
24
 
25
+ github_workflows(
26
+ 'static.yml' => {}
27
+ )
28
+
25
29
  required_ruby_version '>= 3.1'
26
30
 
27
31
  dependency 'sync'
data/lib/tins/go.rb CHANGED
@@ -166,6 +166,15 @@ module Tins
166
166
  end && break
167
167
  end
168
168
  r.reject! { |a| (b[p] = false) || true if /\A~(?<p>.)/ =~ a }
169
+ v.transform_values! do |w|
170
+ if w.is_a?(String) && !w.is_a?(EnumerableExtension)
171
+ w = w.dup
172
+ w.extend EnumerableExtension
173
+ w << w
174
+ else
175
+ w
176
+ end
177
+ end
169
178
  args.replace r
170
179
  b.merge(v)
171
180
  end
@@ -23,10 +23,13 @@ module Tins
23
23
  module StringVersion
24
24
  # Map of version level symbols to their numeric indices
25
25
  LEVELS = [ :major, :minor, :build, :revision ].each_with_index.
26
- each_with_object({}) { |(k, v), h| h[k] = v }.freeze
26
+ each_with_object({}) { |(k, v), h| h[k] = v }
27
+ symbols = LEVELS.invert.freeze
28
+ LEVELS[:patch] = LEVELS[:build]
29
+ LEVELS.freeze
27
30
 
28
31
  # Inverted map of LEVELS for symbol lookup
29
- SYMBOLS = LEVELS.invert.freeze
32
+ SYMBOLS = symbols.freeze
30
33
 
31
34
  # Represents a version string with semantic comparison capabilities
32
35
  #
@@ -103,6 +106,9 @@ module Tins
103
106
  self[2]
104
107
  end
105
108
 
109
+ # Alias for {#build} according to SemVer nomenclature
110
+ alias patch build
111
+
106
112
  # Sets the build version component
107
113
  #
108
114
  # @param new_level [Integer] The new build version number
@@ -114,6 +120,9 @@ module Tins
114
120
  self[2] = new_level
115
121
  end
116
122
 
123
+ # Alias for {#build=} according to SemVer nomenclature
124
+ alias patch= build=
125
+
117
126
  # Returns the revision version component
118
127
  #
119
128
  # @return [Integer] The revision version number
data/lib/tins/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Tins
2
2
  # Tins version
3
- VERSION = '1.44.1'
3
+ VERSION = '1.46.0'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/tests/go_test.rb CHANGED
@@ -59,8 +59,10 @@ module Tins
59
59
  end
60
60
 
61
61
  def test_defaults
62
- r = go('bv:', args = %w[ -v bar ], defaults: { ?b => true, ?v => 'foo' })
63
- assert_equal({ ?b => 1, 'v' => 'bar' }, r)
62
+ r = go('bv:w:', args = %w[ -v bar ], defaults: { ?b => true, ?v => 'foo', ?w => 'baz' })
63
+ assert_equal({ ?b => 1, 'v' => 'bar', 'w' => 'baz' }, r)
64
+ assert_kind_of(Tins::GO::EnumerableExtension, r[?v])
65
+ assert_kind_of(Tins::GO::EnumerableExtension, r[?w])
64
66
  assert_equal [], args
65
67
  r = go('bv:', args = %w[ -v bar ~b baz ], defaults: { ?b => true, ?v => 'foo' })
66
68
  assert_equal({ ?b => false, 'v' => 'bar' }, r)
@@ -58,5 +58,18 @@ module Tins
58
58
  assert_equal '1.2.4', v.to_s
59
59
  assert_equal '1.2.3', w.to_s
60
60
  end
61
+
62
+ def test_patch_getter
63
+ s = '1.2.3'
64
+ assert_equal 3, s.version.patch
65
+ assert_equal s.version.patch, s.version.build
66
+ end
67
+
68
+ def test_patch_setter
69
+ s = '1.2.3'
70
+ s.version.patch = 5
71
+ assert_equal 5, s.version.patch
72
+ assert_equal s.version.patch, s.version.build
73
+ end
61
74
  end
62
75
  end
data/tins.gemspec CHANGED
@@ -1,9 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: tins 1.44.1 ruby lib
2
+ # stub: tins 1.46.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "tins".freeze
6
- s.version = "1.44.1".freeze
6
+ s.version = "1.46.0".freeze
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
@@ -17,13 +17,13 @@ Gem::Specification.new do |s|
17
17
  s.licenses = ["MIT".freeze]
18
18
  s.rdoc_options = ["--title".freeze, "Tins - Useful stuff.".freeze, "--main".freeze, "README.md".freeze]
19
19
  s.required_ruby_version = Gem::Requirement.new(">= 3.1".freeze)
20
- s.rubygems_version = "3.6.9".freeze
20
+ s.rubygems_version = "3.7.2".freeze
21
21
  s.summary = "Useful stuff.".freeze
22
22
  s.test_files = ["tests/annotate_test.rb".freeze, "tests/ask_and_send_test.rb".freeze, "tests/attempt_test.rb".freeze, "tests/bijection_test.rb".freeze, "tests/blank_full_test.rb".freeze, "tests/case_predicate_test.rb".freeze, "tests/concern_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/deep_dup_test.rb".freeze, "tests/delegate_test.rb".freeze, "tests/deprecate_test.rb".freeze, "tests/dslkit_test.rb".freeze, "tests/duration_test.rb".freeze, "tests/dynamic_scope_test.rb".freeze, "tests/expose_test.rb".freeze, "tests/extract_last_argument_options_test.rb".freeze, "tests/file_binary_test.rb".freeze, "tests/find_test.rb".freeze, "tests/from_module_test.rb".freeze, "tests/generator_test.rb".freeze, "tests/go_test.rb".freeze, "tests/hash_bfs_test.rb".freeze, "tests/hash_symbolize_keys_recursive_test.rb".freeze, "tests/hash_union_test.rb".freeze, "tests/if_predicate_test.rb".freeze, "tests/implement_test.rb".freeze, "tests/limited_test.rb".freeze, "tests/lines_file_test.rb".freeze, "tests/lru_cache_test.rb".freeze, "tests/memoize_test.rb".freeze, "tests/method_description_test.rb".freeze, "tests/minimize_test.rb".freeze, "tests/module_group_test.rb".freeze, "tests/named_set_test.rb".freeze, "tests/named_test.rb".freeze, "tests/null_test.rb".freeze, "tests/p_test.rb".freeze, "tests/partial_application_test.rb".freeze, "tests/proc_compose_test.rb".freeze, "tests/proc_prelude_test.rb".freeze, "tests/range_plus_test.rb".freeze, "tests/require_maybe_test.rb".freeze, "tests/responding_test.rb".freeze, "tests/rotate_test.rb".freeze, "tests/scope_test.rb".freeze, "tests/secure_write_test.rb".freeze, "tests/sexy_singleton_test.rb".freeze, "tests/string_byte_order_mark_test.rb".freeze, "tests/string_camelize_test.rb".freeze, "tests/string_named_placeholders.rb".freeze, "tests/string_underscore_test.rb".freeze, "tests/string_version_test.rb".freeze, "tests/subhash_test.rb".freeze, "tests/temp_io_test.rb".freeze, "tests/test_helper.rb".freeze, "tests/time_dummy_test.rb".freeze, "tests/time_freezer_test.rb".freeze, "tests/to_test.rb".freeze, "tests/token_test.rb".freeze, "tests/unit_test.rb".freeze, "tests/annotate_test.rb".freeze, "tests/ask_and_send_test.rb".freeze, "tests/attempt_test.rb".freeze, "tests/bijection_test.rb".freeze, "tests/blank_full_test.rb".freeze, "tests/case_predicate_test.rb".freeze, "tests/concern_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/deep_dup_test.rb".freeze, "tests/delegate_test.rb".freeze, "tests/deprecate_test.rb".freeze, "tests/dslkit_test.rb".freeze, "tests/duration_test.rb".freeze, "tests/dynamic_scope_test.rb".freeze, "tests/expose_test.rb".freeze, "tests/extract_last_argument_options_test.rb".freeze, "tests/file_binary_test.rb".freeze, "tests/find_test.rb".freeze, "tests/from_module_test.rb".freeze, "tests/generator_test.rb".freeze, "tests/go_test.rb".freeze, "tests/hash_bfs_test.rb".freeze, "tests/hash_symbolize_keys_recursive_test.rb".freeze, "tests/hash_union_test.rb".freeze, "tests/if_predicate_test.rb".freeze, "tests/implement_test.rb".freeze, "tests/limited_test.rb".freeze, "tests/lines_file_test.rb".freeze, "tests/lru_cache_test.rb".freeze, "tests/memoize_test.rb".freeze, "tests/method_description_test.rb".freeze, "tests/minimize_test.rb".freeze, "tests/module_group_test.rb".freeze, "tests/named_set_test.rb".freeze, "tests/named_test.rb".freeze, "tests/null_test.rb".freeze, "tests/p_test.rb".freeze, "tests/partial_application_test.rb".freeze, "tests/proc_compose_test.rb".freeze, "tests/proc_prelude_test.rb".freeze, "tests/range_plus_test.rb".freeze, "tests/require_maybe_test.rb".freeze, "tests/responding_test.rb".freeze, "tests/rotate_test.rb".freeze, "tests/scope_test.rb".freeze, "tests/secure_write_test.rb".freeze, "tests/sexy_singleton_test.rb".freeze, "tests/string_byte_order_mark_test.rb".freeze, "tests/string_camelize_test.rb".freeze, "tests/string_underscore_test.rb".freeze, "tests/string_version_test.rb".freeze, "tests/subhash_test.rb".freeze, "tests/temp_io_test.rb".freeze, "tests/time_dummy_test.rb".freeze, "tests/time_freezer_test.rb".freeze, "tests/to_test.rb".freeze, "tests/token_test.rb".freeze, "tests/unit_test.rb".freeze]
23
23
 
24
24
  s.specification_version = 4
25
25
 
26
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 2.5".freeze])
26
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 2.8".freeze])
27
27
  s.add_development_dependency(%q<all_images>.freeze, [">= 0".freeze])
28
28
  s.add_development_dependency(%q<debug>.freeze, [">= 0".freeze])
29
29
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0".freeze])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tins
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.44.1
4
+ version: 1.46.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '2.5'
18
+ version: '2.8'
19
19
  type: :development
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '2.5'
25
+ version: '2.8'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: all_images
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -484,7 +484,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
484
484
  - !ruby/object:Gem::Version
485
485
  version: '0'
486
486
  requirements: []
487
- rubygems_version: 3.6.9
487
+ rubygems_version: 3.7.2
488
488
  specification_version: 4
489
489
  summary: Useful stuff.
490
490
  test_files: