tins 1.37.0 → 1.38.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: '049e3bf81de447eec53664f5555656602906bbd44a5f98b2e0e953318aadff77'
4
- data.tar.gz: 14debef966e248366ec1ef72b39b8ccc094a91049ed6cd44e9ee2550c607ae02
3
+ metadata.gz: 26f2a6faf004d28bc511820eb58835ba4b555481d38b12839b264fde8664b321
4
+ data.tar.gz: 394319369bf23b6afee56aebfe70ebdebe9d4d05ff77181338a754f667921266
5
5
  SHA512:
6
- metadata.gz: c93d9b5b23c3305f422f0efd81e0828591682331532b51f4de1a84e305f77bb3f9374abcf8b725cd665a74ef352cabb525f49b4dfa68fc78f5568e87a5e78012
7
- data.tar.gz: 4b8d5d1da5bffb1b26449f96aa0f292a28582e5409d734ba5cdc18c428a2e6b57f577662773b776abcbb5464d505ae6726b60bba54f2142ddf5a32faae5fd9e9
6
+ metadata.gz: 6491996c174a13ec0a4b1cbd8c2437e7f7becca98965962a0aa446e7a7bd50f87ef8ebef4ba61dc0c48b38a97a0009ee1b6411a414c42ca53903f97a9e025861
7
+ data.tar.gz: cc785591e2c3efe72b0b70585dd30001bf5d4e6d7ff6b8b1b88c023c7be85bc6cb1ca7262e9b3ace3a009f4eac39ca2b9cf62dea73858bd0dd570292b583c62d
data/CHANGES.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changes
2
2
 
3
+ ## 2025-01-04 v1.38.0
4
+
5
+ * Improved Tins::Limited concurrency handling:
6
+ * Added `execute` method for task submission with a block
7
+ * Changed `process` method to manage thread execution and queue management
8
+ * Introduced `stop` method to signal processing termination
9
+ * Modified test cases in `limited_test.rb` to accommodate new functionality
10
+ * Added `ensure` clause to decrement counter and signal continuation after
11
+ block execution
12
+ * Added support for Ruby **3.4** Alpine image:
13
+ * Updated `.all_images.yml` to include Ruby **3.4**-alpine environment
14
+ * Added `ruby:3.4-alpine` to the list of supported images
15
+ * Now uses **3.4** instead of **3.3**, **3.2**, and **3.1** for ruby versions
16
+
17
+ ## 2024-12-13 v1.37.1
18
+
19
+ * Renamed `ZERO` and `BINARY` constants to `ZERO_RE` and `BINARY_RE` to avoid
20
+ collisions with Logger/File constants.
21
+
3
22
  ## 2024-10-19 v1.37.0
4
23
 
5
24
  * Add support for module prepended blocks in **Tins::Concern**:
data/README.md CHANGED
@@ -10,87 +10,6 @@ Non yet.
10
10
 
11
11
  [![Code Coverage](https://codeclimate.com/github/flori/tins/coverage.png)](https://codeclimate.com/github/flori/tins)
12
12
 
13
- ## Changes
14
-
15
- * 2018-11-14 Release 1.20.2
16
- - Fix ~x options
17
- * 2018-11-14 Release 1.20.1
18
- - Add disabling boolean options in Tins::GO#go method.
19
- * 2018-11-14 Release 1.20.0
20
- - Support default arguments in Tins::GO#go method.
21
- * 2018-11-07 Release 1.19.0
22
- - Allow annotations without arguments
23
- * 2018-11-02 Release 1.18.0
24
- - `thread_local` and `thread_global` with default block
25
- * 2018-10-15 Release 1.17.0
26
- - Add Tins::TempIO::Enum class to wrap `temp_io` into Enumerator.
27
- * 2017-12-05 Release 1.16.3
28
- - Improve `temp_io` method by not changing working dir.
29
- * 2017-12-05 Release 1.16.2
30
- - Improve `temp_io` method with a given name.
31
- * 2017-12-05 Release 1.16.1
32
- - Improve `temp_io` method with block
33
- * 2017-11-29 Release 1.16.0
34
- - Prove `temp_io` method with block
35
- * 2017-06-29 Release 1.15.0
36
- - Add support for smart duration formats with %D directive
37
- * 2017-05-16 Release 1.14.0
38
- - Add visit proc to determine if file should be visited.
39
- * 2017-05-14 Release 1.13.3
40
- - Fix some debugging warnings
41
- * 2017-02-03 Release 1.13.2
42
- - Fix test on older rubies
43
- * 2016-11-23 Release 1.13.1
44
- - Fix comparibility of Tins::Duration instances
45
- * 2016-11-23 Release 1.13.0
46
- - Add expose method mostly for testing hidden methods.
47
- * 2016-08-04 Release 1.12.0
48
- - Add Tins::Unit.parse? method to check for units in strings.
49
- * 2016-07-12 Release 1.11.0
50
- - Provide Tins::Unit.format and Tins::Unit.parse methods.
51
- * 2016-05-25 Release 1.10.2
52
- - Avoid some warnings.
53
- * 2016-04-15 Release 1.10.1
54
- - Fix bug in go if a concatenated argument comes last.
55
- * 2016-04-12 Release 1.10.0
56
- - Support mixed rest arguments in go argument parsing.
57
- * 2016-03-10 Release 1.9.0
58
- - Add Tins::Duration for displaying durations.
59
- * 2016-01-18 Release 1.8.2
60
- - Implement Tins::StringVersion::Version#dup and
61
- Tins::StringVersion::Version#clone.
62
- * 2015-12-03 Release 1.8.1
63
- - Remove some backports already existant in the newer supported rubies.
64
- * 2015-12-01 Release 1.8.0
65
- - Add `foo_of` and `foo_annotations` methods to instances of classes with
66
- annotated methods.
67
- * 2015-11-09 Release 1.7.0
68
- - Officially require ruby >= 2.0 and use new hash syntax.
69
- - New feature attempt: sleep:-30 sleeps upto 30 seconds while retrying with
70
- an exponential waiting pattern.
71
- - Remove rotate and shuffle, recent rubies all support them.
72
- - Add an object oriented view on method signatures and use it to create
73
- method descriptions.
74
- * 2015-08-13 Release 1.6.0
75
- - Add complete method for readline completion
76
- * 2015-06-21 Release 1.5.4
77
- - Avoid %i syntax for now
78
- * 2015-06-17 Release 1.5.3
79
- - Make it run on 1.9 again.
80
- - Avoid a warning in Time.dummy implementation.
81
- * 2015-05-27 Release 1.5.2
82
- - Fix parameter naming for c-methods in method descriptions.
83
- * 2015-04-24 Release 1.5.0/1.5.1
84
- - Implement bump logic for StringVersion
85
- * 2015-04-23 Release 1.4.0
86
- - Add implement module helper method.
87
- * 2015-03-03 Release 1.3.5
88
- - Don't automatically include #to method into Object, this can lead to some
89
- confusion.
90
- * 2015-02-04 Release 1.3.4
91
- - Add some default alphabets to Tins::Token, e. g. Base64
92
- - Add changes to Readme
93
-
94
13
  ## Author
95
14
 
96
15
  Florian Frank mailto:flori@ping.de
@@ -3,12 +3,12 @@ module Tins
3
3
  module Constants
4
4
  SEEK_SET = ::File::SEEK_SET
5
5
 
6
- ZERO = "\x00"
7
- BINARY = "\x01-\x1f\x7f-\xff"
6
+ ZERO_RE = "\x00"
7
+ BINARY_RE = "\x01-\x1f\x7f-\xff"
8
8
 
9
9
  if defined?(::Encoding)
10
- ZERO.force_encoding(Encoding::ASCII_8BIT)
11
- BINARY.force_encoding(Encoding::ASCII_8BIT)
10
+ ZERO_RE.force_encoding(Encoding::ASCII_8BIT)
11
+ BINARY_RE.force_encoding(Encoding::ASCII_8BIT)
12
12
  end
13
13
  end
14
14
 
@@ -39,9 +39,9 @@ module Tins
39
39
  data = read options[:buffer_size]
40
40
  !data or data.empty? and return nil
41
41
  data_size = data.size
42
- data.count(Constants::ZERO).to_f / data_size >
42
+ data.count(Constants::ZERO_RE).to_f / data_size >
43
43
  options[:percentage_zeros] / 100.0 and return true
44
- data.count(Constants::BINARY).to_f / data_size >
44
+ data.count(Constants::BINARY_RE).to_f / data_size >
45
45
  options[:percentage_binary] / 100.0
46
46
  ensure
47
47
  old_pos and seek old_pos, Constants::SEEK_SET
data/lib/tins/limited.rb CHANGED
@@ -16,33 +16,58 @@ module Tins
16
16
  attr_reader :maximum
17
17
 
18
18
  # Execute _maximum_ number of threads in parallel.
19
- def execute
20
- @mutex.synchronize do
19
+ def execute(&block)
20
+ @tasks or raise ArgumentError, "start processing first"
21
+ @tasks << block
22
+ end
23
+
24
+ def process
25
+ @tasks = Queue.new
26
+ @executor = create_executor
27
+ catch :stop do
21
28
  loop do
22
- if @count < @maximum
23
- @count += 1
24
- Thread.new do
25
- @tg.add Thread.current
26
- yield
27
- @mutex.synchronize { @count -= 1 }
28
- @continue.signal
29
- end
30
- return
31
- else
32
- @continue.wait(@mutex)
33
- end
29
+ yield self
34
30
  end
31
+ ensure
32
+ wait until done?
33
+ @executor.kill
35
34
  end
36
35
  end
37
36
 
37
+ def stop
38
+ throw :stop
39
+ end
40
+
41
+ private
42
+
43
+ def done?
44
+ @tasks.empty? && @tg.list.empty?
45
+ end
46
+
38
47
  def wait
39
48
  @tg.list.each(&:join)
40
49
  end
41
50
 
42
- def process
43
- yield self
44
- ensure
45
- wait
51
+ def create_executor
52
+ Thread.new do
53
+ @mutex.synchronize do
54
+ loop do
55
+ if @count < @maximum
56
+ task = @tasks.pop
57
+ @count += 1
58
+ Thread.new do
59
+ @tg.add Thread.current
60
+ task.(Thread.current)
61
+ ensure
62
+ @count -= 1
63
+ @continue.signal
64
+ end
65
+ else
66
+ @continue.wait(@mutex)
67
+ end
68
+ end
69
+ end
70
+ end
46
71
  end
47
72
  end
48
73
  end
data/lib/tins/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Tins
2
2
  # Tins version
3
- VERSION = '1.37.0'
3
+ VERSION = '1.38.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:
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class ConcernTest < Test::Unit::TestCase
4
- module AC
4
+ module C1
5
5
  extend Tins::Concern
6
6
 
7
7
  included do
@@ -38,12 +38,27 @@ class ConcernTest < Test::Unit::TestCase
38
38
  $included = nil
39
39
  $prepended = nil
40
40
 
41
+ module C2
42
+ extend Tins::Concern
43
+
44
+ def foo
45
+ :'prepended-foo'
46
+ end
47
+ end
48
+
49
+
41
50
  class A
42
- include AC
51
+ include C1
43
52
  end
44
53
 
45
54
  class B
46
- prepend AC
55
+ prepend C1
56
+ end
57
+
58
+ class C
59
+ def foo
60
+ :foo
61
+ end
47
62
  end
48
63
 
49
64
  def test_concern_include
@@ -54,19 +69,26 @@ class ConcernTest < Test::Unit::TestCase
54
69
  assert_equal :baz1, A.baz1
55
70
  assert_equal :baz2, A.baz2
56
71
  assert_raise(StandardError) do
57
- AC.module_eval { included {} }
72
+ C1.module_eval { included {} }
58
73
  end
59
74
  end
60
75
 
61
76
  def test_concern_prepend
62
- a = B.new
77
+ b = B.new
63
78
  assert_equal B, $prepended
64
- assert_equal :foo, a.foo
79
+ assert_equal :foo, b.foo
65
80
  assert_equal :bar, B.bar
66
81
  assert_equal :baz1, B.baz1
67
82
  assert_equal :baz2, B.baz2
68
83
  assert_raise(StandardError) do
69
- AC.module_eval { prepended {} }
84
+ C1.module_eval { prepended {} }
70
85
  end
71
86
  end
87
+
88
+ def test_prepended_method
89
+ c = C.new
90
+ assert_equal :foo, c.foo
91
+ C.class_eval { prepend C2 }
92
+ assert_equal :'prepended-foo', c.foo
93
+ end
72
94
  end
@@ -2,36 +2,21 @@ require 'test_helper'
2
2
 
3
3
  module Tins
4
4
  class LimitedTest < Test::Unit::TestCase
5
- def test_limited
6
- count = {}
7
- limited = Tins::Limited.new(5)
8
- 5.times do
9
- limited.execute do
10
- count[Thread.current] = true
11
- sleep 1
12
- end
13
- end
14
- until count.size >= 5
15
- sleep 0.1
16
- end
17
- assert_equal 5, count.keys.uniq.size
18
- assert_equal 5, limited.wait.size
19
- end
20
-
21
- def test_process
5
+ def test_process_with
22
6
  count = {}
23
7
  Tins::Limited.new(5).process do |limited|
24
- 5.times do
8
+ 10.times do
25
9
  limited.execute do
26
10
  count[Thread.current] = true
27
11
  sleep 1
28
12
  end
29
13
  end
30
- until count.size >= 5
14
+ until count.size >= 10
31
15
  sleep 0.1
32
16
  end
33
- assert_equal 5, count.keys.uniq.size
17
+ limited.stop
34
18
  end
19
+ assert_equal 10, count.keys.uniq.size
35
20
  end
36
21
  end
37
22
  end
data/tins.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: tins 1.37.0 ruby lib
2
+ # stub: tins 1.38.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "tins".freeze
6
- s.version = "1.37.0".freeze
6
+ s.version = "1.38.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]
10
10
  s.authors = ["Florian Frank".freeze]
11
- s.date = "2024-10-19"
11
+ s.date = "2025-01-07"
12
12
  s.description = "All the stuff that isn't good/big enough for a real library.".freeze
13
13
  s.email = "flori@ping.de".freeze
14
14
  s.extra_rdoc_files = ["README.md".freeze, "lib/dslkit.rb".freeze, "lib/dslkit/polite.rb".freeze, "lib/dslkit/rude.rb".freeze, "lib/spruz.rb".freeze, "lib/tins.rb".freeze, "lib/tins/alias.rb".freeze, "lib/tins/annotate.rb".freeze, "lib/tins/ask_and_send.rb".freeze, "lib/tins/attempt.rb".freeze, "lib/tins/bijection.rb".freeze, "lib/tins/case_predicate.rb".freeze, "lib/tins/complete.rb".freeze, "lib/tins/concern.rb".freeze, "lib/tins/count_by.rb".freeze, "lib/tins/date_dummy.rb".freeze, "lib/tins/date_time_dummy.rb".freeze, "lib/tins/deep_const_get.rb".freeze, "lib/tins/deep_dup.rb".freeze, "lib/tins/deprecate.rb".freeze, "lib/tins/dslkit.rb".freeze, "lib/tins/duration.rb".freeze, "lib/tins/expose.rb".freeze, "lib/tins/extract_last_argument_options.rb".freeze, "lib/tins/file_binary.rb".freeze, "lib/tins/find.rb".freeze, "lib/tins/generator.rb".freeze, "lib/tins/go.rb".freeze, "lib/tins/hash_bfs.rb".freeze, "lib/tins/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/hash_union.rb".freeze, "lib/tins/if_predicate.rb".freeze, "lib/tins/implement.rb".freeze, "lib/tins/limited.rb".freeze, "lib/tins/lines_file.rb".freeze, "lib/tins/lru_cache.rb".freeze, "lib/tins/memoize.rb".freeze, "lib/tins/method_description.rb".freeze, "lib/tins/minimize.rb".freeze, "lib/tins/module_group.rb".freeze, "lib/tins/named_set.rb".freeze, "lib/tins/null.rb".freeze, "lib/tins/once.rb".freeze, "lib/tins/p.rb".freeze, "lib/tins/partial_application.rb".freeze, "lib/tins/proc_compose.rb".freeze, "lib/tins/proc_prelude.rb".freeze, "lib/tins/range_plus.rb".freeze, "lib/tins/require_maybe.rb".freeze, "lib/tins/responding.rb".freeze, "lib/tins/secure_write.rb".freeze, "lib/tins/sexy_singleton.rb".freeze, "lib/tins/string_byte_order_mark.rb".freeze, "lib/tins/string_camelize.rb".freeze, "lib/tins/string_underscore.rb".freeze, "lib/tins/string_version.rb".freeze, "lib/tins/subhash.rb".freeze, "lib/tins/temp_io.rb".freeze, "lib/tins/temp_io_enum.rb".freeze, "lib/tins/terminal.rb".freeze, "lib/tins/thread_local.rb".freeze, "lib/tins/time_dummy.rb".freeze, "lib/tins/timed_cache.rb".freeze, "lib/tins/to.rb".freeze, "lib/tins/to_proc.rb".freeze, "lib/tins/token.rb".freeze, "lib/tins/uniq_by.rb".freeze, "lib/tins/unit.rb".freeze, "lib/tins/version.rb".freeze, "lib/tins/write.rb".freeze, "lib/tins/xt.rb".freeze, "lib/tins/xt/annotate.rb".freeze, "lib/tins/xt/ask_and_send.rb".freeze, "lib/tins/xt/attempt.rb".freeze, "lib/tins/xt/blank.rb".freeze, "lib/tins/xt/case_predicate.rb".freeze, "lib/tins/xt/complete.rb".freeze, "lib/tins/xt/concern.rb".freeze, "lib/tins/xt/count_by.rb".freeze, "lib/tins/xt/date_dummy.rb".freeze, "lib/tins/xt/date_time_dummy.rb".freeze, "lib/tins/xt/deep_const_get.rb".freeze, "lib/tins/xt/deep_dup.rb".freeze, "lib/tins/xt/deprecate.rb".freeze, "lib/tins/xt/dslkit.rb".freeze, "lib/tins/xt/expose.rb".freeze, "lib/tins/xt/extract_last_argument_options.rb".freeze, "lib/tins/xt/file_binary.rb".freeze, "lib/tins/xt/full.rb".freeze, "lib/tins/xt/hash_bfs.rb".freeze, "lib/tins/xt/hash_symbolize_keys_recursive.rb".freeze, "lib/tins/xt/hash_union.rb".freeze, "lib/tins/xt/if_predicate.rb".freeze, "lib/tins/xt/implement.rb".freeze, "lib/tins/xt/irb.rb".freeze, "lib/tins/xt/method_description.rb".freeze, "lib/tins/xt/named.rb".freeze, "lib/tins/xt/null.rb".freeze, "lib/tins/xt/p.rb".freeze, "lib/tins/xt/partial_application.rb".freeze, "lib/tins/xt/proc_compose.rb".freeze, "lib/tins/xt/proc_prelude.rb".freeze, "lib/tins/xt/range_plus.rb".freeze, "lib/tins/xt/require_maybe.rb".freeze, "lib/tins/xt/responding.rb".freeze, "lib/tins/xt/secure_write.rb".freeze, "lib/tins/xt/sexy_singleton.rb".freeze, "lib/tins/xt/string.rb".freeze, "lib/tins/xt/string_byte_order_mark.rb".freeze, "lib/tins/xt/string_camelize.rb".freeze, "lib/tins/xt/string_underscore.rb".freeze, "lib/tins/xt/string_version.rb".freeze, "lib/tins/xt/subhash.rb".freeze, "lib/tins/xt/temp_io.rb".freeze, "lib/tins/xt/time_dummy.rb".freeze, "lib/tins/xt/time_freezer.rb".freeze, "lib/tins/xt/to.rb".freeze, "lib/tins/xt/uniq_by.rb".freeze, "lib/tins/xt/write.rb".freeze]
@@ -17,7 +17,7 @@ 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(">= 2.0".freeze)
20
- s.rubygems_version = "3.5.18".freeze
20
+ s.rubygems_version = "3.6.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/count_by_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/deep_const_get_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/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/uniq_by_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/count_by_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/deep_const_get_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/uniq_by_test.rb".freeze, "tests/unit_test.rb".freeze]
23
23
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tins
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.37.0
4
+ version: 1.38.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-10-19 00:00:00.000000000 Z
10
+ date: 2025-01-07 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: gem_hadar
@@ -463,7 +462,6 @@ homepage: https://github.com/flori/tins
463
462
  licenses:
464
463
  - MIT
465
464
  metadata: {}
466
- post_install_message:
467
465
  rdoc_options:
468
466
  - "--title"
469
467
  - Tins - Useful stuff.
@@ -482,8 +480,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
482
480
  - !ruby/object:Gem::Version
483
481
  version: '0'
484
482
  requirements: []
485
- rubygems_version: 3.5.18
486
- signing_key:
483
+ rubygems_version: 3.6.2
487
484
  specification_version: 4
488
485
  summary: Useful stuff.
489
486
  test_files: