tins 1.48.0 → 1.50.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: e6498c3e89e39b8351e408abc526110d4a67b7666990a100657ebcb30d626312
4
- data.tar.gz: a131c7c65f440c56fbfd295478acb9400ccaf27e2b07e43ea8e4e6b17f89bdd9
3
+ metadata.gz: 9f585e0c2756a30e16b93f3d12729bb1d3b809ad0f9ccf65c123564d5973b67c
4
+ data.tar.gz: 05d59c13b1da5c0a0fcb9bf0348c1ff13c9493e8893bffcde895576709fade08
5
5
  SHA512:
6
- metadata.gz: 2905a2fa59926a1406cbbfc2ffcf5d68f536558287e852a701b61f9df0f7dfd4e9cd98e62113806cd44015ac26bb0187a55314f6a0246c97baa4ec9bb2aad848
7
- data.tar.gz: c5bbe5c05a230bcf2127355e021ca2c90d72ccab8260543b11f8dfd9664746ffc1ea667f7cf7433e2a740e60a51aa4b199cd614e0f811f89086bca4adf0112b8
6
+ metadata.gz: 3a98a372f22622442b3c77fb5f82fb603dc85454fd2ebe980bf92c8d098cfb561629cc5462fb5d46343d7ade16130f8999794d45e80074ba3642ec25e5e6a822
7
+ data.tar.gz: a929d78e27c01fd7660250609c5d42b0f679ca1bf78c961d819ac9c56c2fe607add986ce0109711864b66bd113ab1567632bb06d1e888b9f40370b6b76ef801f
data/CHANGES.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # Changes
2
2
 
3
+ ## 2025-12-19 v1.50.0
4
+
5
+ - Updated `gem_hadar` development dependency version to **2.10**
6
+ - Added `ruby:4.0-rc-alpine` image to the `images` section in `.all_images.yml`
7
+
8
+ ## 2025-12-18 v1.49.0
9
+
10
+ - Updated `bundle update` command to `bundle update --all` in `.all_images.yml`
11
+ to ensure all dependencies are updated recursively
12
+ - Added support for IEC binary prefixes with new `PREFIX_IEC_UC` constant and
13
+ updated `prefixes` method to handle `:iec_uc` and `:iec_uppercase`
14
+ identifiers
15
+ - Added corresponding test cases for IEC prefix mapping
16
+ - Added `:si_greek` alias for fractional prefixes (`m`, `µ`, `n`, etc.) in `PREFIX_F`
17
+ - Added `:si_uppercase` alias for SI uppercase prefixes (`K`, `M`, `G`, etc.) in `PREFIX_SI_UC`
18
+ - Updated `PREFIX_SI_UC` comment to clarify these are based on **1000**-step increments, not 1024
19
+ - Enhanced `prefixes` method to support new aliases while maintaining backward compatibility
20
+ - Added comprehensive tests for new aliases in `Tins::UnitTest`
21
+ - Updated `s.rubygems_version` from **3.7.2** to **4.0.2** in gemspec
22
+
3
23
  ## 2025-12-05 v1.48.0
4
24
 
5
25
  - Added `Tins::Token.analyze` class method to calculate bit strength
data/lib/tins/unit.rb CHANGED
@@ -26,6 +26,18 @@ module Tins
26
26
  '', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y',
27
27
  ].each_with_index.map { |n, i| Prefix.new(n.freeze, 1024, 1024 ** i, false) }.freeze
28
28
 
29
+ # An array of prefix objects for uppercase binary prefixes (Ki, Mi, Gi...) based
30
+ # on 1024-step increments.
31
+ PREFIX_IEC_UC = [
32
+ '', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yi',
33
+ ].each_with_index.map { |n, i| Prefix.new(n.freeze, 1024, 1024 ** i, false) }.freeze
34
+
35
+ # An array of prefix objects for uppercase SI unit prefixes (K, M, G...) based
36
+ # on 1000-step increments.
37
+ PREFIX_SI_UC = [
38
+ '', 'K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y',
39
+ ].each_with_index.map { |n, i| Prefix.new(n.freeze, 1000, 1000 ** i, false) }.freeze
40
+
29
41
  # An array of prefix objects for fractional prefixes (m, µ, n...) based on
30
42
  # 1000-step decrements.
31
43
  PREFIX_F = [
@@ -51,10 +63,14 @@ module Tins
51
63
  case identifier
52
64
  when :uppercase, :uc, 1024
53
65
  PREFIX_UC
66
+ when :iec_uppercase, :iec_uc
67
+ PREFIX_IEC_UC
54
68
  when :lowercase, :lc, 1000
55
69
  PREFIX_LC
56
- when :fraction, :f, 0.001
70
+ when :fraction, :f, :si_greek, 0.001
57
71
  PREFIX_F
72
+ when :si_uc, :si_uppercase
73
+ PREFIX_SI_UC
58
74
  when Array
59
75
  identifier
60
76
  end
data/lib/tins/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Tins
2
2
  # Tins version
3
- VERSION = '1.48.0'
3
+ VERSION = '1.50.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/unit_test.rb CHANGED
@@ -15,6 +15,11 @@ module Tins
15
15
  assert_equal Tins::Unit::PREFIX_F, prefixes(0.001)
16
16
  assert_equal Tins::Unit::PREFIX_F, prefixes(:f)
17
17
  assert_equal Tins::Unit::PREFIX_F, prefixes(:fraction)
18
+ assert_equal Tins::Unit::PREFIX_F, prefixes(:si_greek)
19
+ assert_equal Tins::Unit::PREFIX_SI_UC, prefixes(:si_uc)
20
+ assert_equal Tins::Unit::PREFIX_SI_UC, prefixes(:si_uppercase)
21
+ assert_equal Tins::Unit::PREFIX_IEC_UC, prefixes(:iec_uc)
22
+ assert_equal Tins::Unit::PREFIX_IEC_UC, prefixes(:iec_uppercase)
18
23
  assert_equal nil, prefixes(:nix)
19
24
  end
20
25
 
@@ -42,6 +47,19 @@ module Tins
42
47
  format(0.000_000_123, format: '%.3f %U', prefix: :f, unit: ?F)
43
48
  end
44
49
 
50
+ def test_format_si_multipliers
51
+ assert_equal '23 KHz',
52
+ format(23 * 1000, format: '%d %U', prefix: :si_uc, unit: 'Hz')
53
+ assert_equal '-23 KHz',
54
+ format(-23 * 1000, format: '%d %U', prefix: :si_uc, unit: 'Hz')
55
+ assert_equal '23.1 KHz',
56
+ format(23 * 1000 + 111, format: '%.1f %U', prefix: :si_uc, unit: 'Hz')
57
+ assert_equal 'KHz: 23',
58
+ format(23 * 1000, format: '%U: %d', prefix: :si_uc, unit: 'Hz')
59
+ assert_equal 'KHz: 23.12',
60
+ format(23 * 1000 + 120, prefix: :si_uc, format: '%U: %.2f', unit: 'Hz')
61
+ end
62
+
45
63
  def test_parse
46
64
  assert_in_delta 17_301_504, parse('16.5 Mb').to_i, 1e-5
47
65
  assert_in_delta 16_500_000, parse('16.5 mbps', unit: 'bps').to_i, 1e-5
data/tins.gemspec CHANGED
@@ -1,9 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: tins 1.48.0 ruby lib
2
+ # stub: tins 1.50.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "tins".freeze
6
- s.version = "1.48.0".freeze
6
+ s.version = "1.50.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.7.2".freeze
20
+ s.rubygems_version = "4.0.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.8".freeze])
26
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 2.10".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.48.0
4
+ version: 1.50.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.8'
18
+ version: '2.10'
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.8'
25
+ version: '2.10'
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.7.2
487
+ rubygems_version: 4.0.2
488
488
  specification_version: 4
489
489
  summary: Useful stuff.
490
490
  test_files: