tins 1.33.0 → 1.35.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +76 -0
  3. data/Rakefile +1 -3
  4. data/lib/tins/count_by.rb +16 -3
  5. data/lib/tins/deep_const_get.rb +48 -34
  6. data/lib/tins/deprecate.rb +15 -0
  7. data/lib/tins/duration.rb +42 -0
  8. data/lib/tins/hash_bfs.rb +51 -0
  9. data/lib/tins/secure_write.rb +1 -1
  10. data/lib/tins/sexy_singleton.rb +2 -1
  11. data/lib/tins/string_version.rb +4 -0
  12. data/lib/tins/time_dummy.rb +2 -1
  13. data/lib/tins/timed_cache.rb +1 -1
  14. data/lib/tins/token.rb +5 -1
  15. data/lib/tins/uniq_by.rb +16 -3
  16. data/lib/tins/version.rb +1 -1
  17. data/lib/tins/xt/count_by.rb +0 -4
  18. data/lib/tins/xt/deprecate.rb +5 -0
  19. data/lib/tins/xt/hash_bfs.rb +7 -0
  20. data/lib/tins/xt/uniq_by.rb +13 -3
  21. data/lib/tins/xt.rb +2 -0
  22. data/lib/tins.rb +2 -0
  23. data/tests/annotate_test.rb +0 -1
  24. data/tests/bijection_test.rb +0 -1
  25. data/tests/concern_test.rb +0 -1
  26. data/tests/date_dummy_test.rb +0 -1
  27. data/tests/date_time_dummy_test.rb +0 -1
  28. data/tests/delegate_test.rb +0 -1
  29. data/tests/deprecate_test.rb +41 -0
  30. data/tests/dslkit_test.rb +0 -1
  31. data/tests/duration_test.rb +19 -2
  32. data/tests/dynamic_scope_test.rb +0 -1
  33. data/tests/extract_last_argument_options_test.rb +0 -1
  34. data/tests/find_test.rb +0 -1
  35. data/tests/from_module_test.rb +0 -1
  36. data/tests/generator_test.rb +0 -1
  37. data/tests/go_test.rb +0 -1
  38. data/tests/hash_bfs_test.rb +34 -0
  39. data/tests/hash_symbolize_keys_recursive_test.rb +0 -1
  40. data/tests/implement_test.rb +0 -1
  41. data/tests/limited_test.rb +0 -1
  42. data/tests/lines_file_test.rb +0 -1
  43. data/tests/lru_cache_test.rb +0 -1
  44. data/tests/memoize_test.rb +0 -1
  45. data/tests/minimize_test.rb +0 -1
  46. data/tests/module_group_test.rb +0 -1
  47. data/tests/named_set_test.rb +0 -1
  48. data/tests/null_test.rb +0 -1
  49. data/tests/require_maybe_test.rb +0 -1
  50. data/tests/scope_test.rb +0 -1
  51. data/tests/secure_write_test.rb +6 -1
  52. data/tests/sexy_singleton_test.rb +1 -1
  53. data/tests/string_version_test.rb +1 -1
  54. data/tests/subhash_test.rb +0 -1
  55. data/tests/test_helper.rb +2 -1
  56. data/tests/time_dummy_test.rb +0 -1
  57. data/tests/time_freezer_test.rb +1 -1
  58. data/tests/token_test.rb +0 -1
  59. data/tests/unit_test.rb +0 -1
  60. data/tins.gemspec +8 -9
  61. metadata +18 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0185540b8a9fc9cce81bef8f9d36afb7673358213d9de89077ba240a50e41ec8'
4
- data.tar.gz: 8bdb177527fd08daaa20605f25245a317d7348a66988091ebc815ec94ca15b98
3
+ metadata.gz: c4cb4ab5a9b7debca4a2b25d7661de1f7ebe75bccf738d88a02c4b9480bc887f
4
+ data.tar.gz: d73eb031538b6daa98e70c46caadf288415716451ffb4cabf808d2b35e3e2438
5
5
  SHA512:
6
- metadata.gz: d34e73f43a601fa6e50b8abf36cde8b05b9b264810fb2c57144e042087e5192901e8d256f081faf0e02503411bc98c7d09b01f0719f520fa4ae398e360de6dc5
7
- data.tar.gz: 1cea3b6380e60f6a801fc504b51ebea4a429965b5a6ddb5ac165aa2458da5c48191d16e7dae34c7dfe45fafb716a513e9cf59fe62347513b9efdc620979c56dd
6
+ metadata.gz: 4bde944cf28e96f8de0227e579aaeae21ca2195dc733ca08726ebd097a52fe848b244db7dd30bf1f97db635e774ce5c976c0c2e335a5873e22ce1b63423cb776
7
+ data.tar.gz: fa80a61808dcfd564606ed06cf6f32384df4ddaa9c8116f3a07b3a17b80b5234df26c73c9d758a05ec2db9237ff7707664ff094d82ef2e4611ca37317ef67039
data/CHANGES.md ADDED
@@ -0,0 +1,76 @@
1
+ # Changes
2
+
3
+ ## 2024-10-10 v1.35.0
4
+
5
+ ### New Features
6
+ * Implemented breadth-first search in hashes using the `Tins::HashBFS` module.
7
+ + Added tests for the `Tins::HashBFS` module.
8
+
9
+ ### Refactoring and Cleanup
10
+ * Reformatted code.
11
+ * Removed TODO note from the `TODO` file.
12
+ * Cleaned up test requirements:
13
+ - Added `require 'tins'` to `tests/test_helper.rb`.
14
+ - Removed unnecessary `require 'tins'` lines from test files.
15
+ * Refactored BASE16 constants and alphabet:
16
+ + Added `BASE16_LOWERCASE_ALPHABET` constant.
17
+ + Added `BASE16_UPPERCASE_ALPHABET` constant.
18
+
19
+ ### Tool Updates
20
+ * Updated bundler command to use full index:
21
+ - Added `--full-index` flag to `bundle install`.
22
+ - Replaced `bundle update` with `bundle install --full-index`.
23
+
24
+ ## 2024-09-30 v1.34.0
25
+
26
+ ### Changes in **1.34.0**
27
+
28
+ * **Secure write functionality updated**
29
+ + Added support for `Pathname` objects in `secure_write`
30
+ + Updated `File.new` call to use `to_s` method on filename
31
+ + New test case added for `secure_write` with `Pathname` object
32
+ * **Refactor version comparisons in various modules**
33
+ + Added `Tins::StringVersion.compare` method to compare Ruby versions with operators.
34
+ + Replaced direct version comparisons with `compare` method in multiple modules.
35
+ * **Deprecate deep_const_get and const_defined_in? methods**
36
+ + Add deprecation notice for `const_defined_in?` for ruby >= 1.8
37
+ + Add deprecation notice for `deep_const_get` method with a new method name `const_get` for ruby >= 2.0
38
+ * **Refactor deprecation logic and tests**
39
+ + Update `Tins::Deprecate#deprecate` method to allow for optional `new_method` parameter.
40
+ + Modify `tests/deprecate_test.rb` to test deprecated methods with and without messages.
41
+ * **Prepare count_by method for deprecation**
42
+ + Suggest using `count` with block instead in newer Rubies
43
+ * **Prepare uniq_by / uniq_by! method for deprecation**
44
+ + Suggest using `uniq` / `uniq!` with block instead in newer Rubies
45
+
46
+ ## 2024-04-17 v1.33.0
47
+
48
+ * **Changes for Ruby 3.3 and 3.4**
49
+ + Added support for Ruby **3.3**
50
+ + Added dependency on `bigdecimal` for upcoming Ruby **3.4**
51
+ * **Other Changes**
52
+ + Halting once is enough
53
+ + Added ruby **3.2**, removed some older ones
54
+ + Added test process convenience method
55
+
56
+ ## 2022-11-21 v1.32.1
57
+
58
+ * Removed mutex for finalizer, allowing Ruby to handle cleanup instead.
59
+ * Significant changes:
60
+ + Removed `mutex` variable
61
+ + Updated code to rely on Ruby's built-in finalization mechanism
62
+
63
+ ## 2022-11-17 v1.32.0
64
+
65
+ * **attempt** method now supports passing of previously caught exception into
66
+ the called block to let the handling behaviour depend on it.
67
+ * Some smaller changes to make debugging on multiple Ruby releases, easier via
68
+ all_images.
69
+ * Enable fast failing mode
70
+ * Add convenience method to create `Tins::StringVersion` objects.
71
+ * Pass previous exception to attempt block ...
72
+ ... to allow reacting to it, logging it etc.
73
+ * Remove additional groups
74
+ * Use debug instead of byebug for development
75
+ * Ignore more hidden files in the package
76
+ * Update Ruby version to **3.1**
data/Rakefile CHANGED
@@ -14,14 +14,12 @@ GemHadar do
14
14
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', '.rvmrc', 'coverage', '.rbx',
15
15
  '.AppleDouble', '.DS_Store', 'tags', '.bundle', '.byebug_history'
16
16
  package_ignore '.all_images.yml', '.tool-versions', '.gitignore', 'VERSION',
17
- '.utilsrc', '.rspec', 'TODO',
18
- *Dir.glob('.github/**/*', File::FNM_DOTMATCH)
17
+ '.utilsrc', 'TODO', *Dir.glob('.github/**/*', File::FNM_DOTMATCH)
19
18
 
20
19
  readme 'README.md'
21
20
  licenses << 'MIT'
22
21
 
23
22
  required_ruby_version '>= 2.0'
24
- development_dependency 'utils'
25
23
  development_dependency 'all_images'
26
24
  development_dependency 'debug'
27
25
  development_dependency 'term-ansicolor'
data/lib/tins/count_by.rb CHANGED
@@ -1,8 +1,21 @@
1
+ require 'tins/string_version'
2
+
1
3
  module Tins
2
4
  module CountBy
3
- def count_by(&b)
4
- b ||= lambda { |x| true }
5
- inject(0) { |s, e| s += 1 if b[e]; s }
5
+ if Tins::StringVersion.compare(RUBY_VERSION, :<=, "1.8")
6
+ def count_by(&block)
7
+ block ||= lambda { |x| true }
8
+ inject(0) { |s, e| s += 1 if block.call(e); s }
9
+ end
10
+ else
11
+ require 'tins/deprecate'
12
+ extend Tins::Deprecate
13
+
14
+ deprecate method:
15
+ def count_by(&block)
16
+ count(&block)
17
+ end,
18
+ new_method: :count
6
19
  end
7
20
  end
8
21
  end
@@ -1,45 +1,59 @@
1
+ require 'tins/string_version'
2
+
1
3
  module Tins
2
4
  module DeepConstGet
3
- if ::Object.method(:const_defined?).arity == 1
4
- # :nocov:
5
- # We do not create coverage on 1.8
6
- def self.const_defined_in?(modul, constant)
7
- modul.const_defined?(constant)
8
- end
9
- # :nocov:
10
- else
11
- def self.const_defined_in?(modul, constant)
12
- modul.const_defined?(constant, false)
5
+ class << self
6
+ if ::Object.method(:const_defined?).arity == 1
7
+ # :nocov:
8
+ # We do not create coverage on 1.8
9
+ def const_defined_in?(modul, constant)
10
+ modul.const_defined?(constant)
11
+ end
12
+ # :nocov:
13
+ else
14
+ require 'tins/deprecate'
15
+ extend Tins::Deprecate
16
+
17
+ deprecate method:
18
+ def const_defined_in?(modul, constant)
19
+ modul.const_defined?(constant, false)
20
+ end,
21
+ new_method: :const_defined?
13
22
  end
14
- end
15
23
 
16
- if Tins::StringVersion(RUBY_VERSION) < Tins::StringVersion('2.0')
17
- def self.deep_const_get(path, start_module = Object)
18
- path.to_s.split('::').inject(start_module) do |p, c|
19
- case
20
- when c.empty?
21
- if start_module == Object
22
- Object
24
+ if Tins::StringVersion.compare(RUBY_VERSION, :<, '2.0')
25
+ def deep_const_get(path, start_module = Object)
26
+ path.to_s.split('::').inject(start_module) do |p, c|
27
+ case
28
+ when c.empty?
29
+ if start_module == Object
30
+ Object
31
+ else
32
+ raise ArgumentError, "top level constants cannot be reached from"\
33
+ " start module #{start_module.inspect}"
34
+ end
35
+ when const_defined_in?(p, c)
36
+ p.const_get(c)
23
37
  else
24
- raise ArgumentError, "top level constants cannot be reached from"\
25
- " start module #{start_module.inspect}"
26
- end
27
- when const_defined_in?(p, c)
28
- p.const_get(c)
29
- else
30
- begin
31
- p.const_missing(c)
32
- rescue NameError => e
33
- raise ArgumentError, "can't get const #{path}: #{e}"
38
+ begin
39
+ p.const_missing(c)
40
+ rescue NameError => e
41
+ raise ArgumentError, "can't get const #{path}: #{e}"
42
+ end
34
43
  end
35
44
  end
36
45
  end
37
- end
38
- else
39
- def self.deep_const_get(path, start_module = Object)
40
- start_module.const_get(path)
41
- rescue NameError => e
42
- raise ArgumentError, "can't get const #{path}: #{e}"
46
+ else
47
+ require 'tins/deprecate'
48
+ extend Tins::Deprecate
49
+
50
+ deprecate method:
51
+ def deep_const_get(path, start_module = Object)
52
+ start_module.const_get(path)
53
+ rescue NameError => e
54
+ raise ArgumentError, "can't get const #{path}: #{e}"
55
+ end,
56
+ new_method: :const_get
43
57
  end
44
58
  end
45
59
 
@@ -0,0 +1,15 @@
1
+ module Tins
2
+ module Deprecate
3
+ def deprecate(method:, new_method: nil, message: nil)
4
+ message ||= '[DEPRECATION] `%{method}` is deprecated. Please use `%{new_method}` instead.'
5
+ message = message % { method: method, new_method: new_method }
6
+ m = Module.new do
7
+ define_method(method) do |*a, **kw, &b|
8
+ warn message
9
+ super(*a, **kw, &b)
10
+ end
11
+ end
12
+ prepend m
13
+ end
14
+ end
15
+ end
data/lib/tins/duration.rb CHANGED
@@ -2,6 +2,48 @@ module Tins
2
2
  class Duration
3
3
  include Comparable
4
4
 
5
+ # Returns the number of seconds represented by the given duration string
6
+ # according to the provided template format.
7
+ #
8
+ # @param [String] string The duration string to parse.
9
+ # @param [String] template for the duration format, see {#format}.
10
+ #
11
+ # @return [Integer, Float] The number of (fractional) seconds of the duration.
12
+ #
13
+ # @example
14
+ # Tins::Duration.parse('6+05:04:03', template: '%S%d+%h:%m:%s') # => 536643
15
+ # Tins::Duration.parse('6+05:04:03.21', template: '%S%d+%h:%m:%s.%f') # => 536643.21
16
+ def self.parse(string, template: '%S%d+%h:%m:%s.%f')
17
+ s, t = string.to_s.dup, template.dup
18
+ d, sd = 0, 1
19
+ loop do
20
+ t.sub!(/\A(%[Sdhmsf%]|.)/) { |directive|
21
+ case directive
22
+ when '%S' then s.sub!(/\A-?/) { sd *= -1 if _1 == ?-; '' }
23
+ when '%d' then s.sub!(/\A\d+/) { d += 86_400 * _1.to_i; '' }
24
+ when '%h' then s.sub!(/\A\d+/) { d += 3_600 * _1.to_i; '' }
25
+ when '%m' then s.sub!(/\A\d+/) { d += 60 * _1.to_i; '' }
26
+ when '%s' then s.sub!(/\A\d+/) { d += _1.to_i; '' }
27
+ when '%f' then s.sub!(/\A\d+/) { d += Float(?. + _1); '' }
28
+ when '%%' then
29
+ if s[0] == ?%
30
+ s[0] = ''
31
+ else
32
+ raise "expected %s, got #{s.inspect}"
33
+ end
34
+ else
35
+ if directive == s[0]
36
+ s[0] = ''
37
+ else
38
+ raise ArgumentError, "expected #{t.inspect}, got #{s.inspect}"
39
+ end
40
+ end
41
+ ''
42
+ } or break
43
+ end
44
+ sd * d
45
+ end
46
+
5
47
  def initialize(seconds)
6
48
  @negative = seconds < 0
7
49
  seconds = seconds.abs
@@ -0,0 +1,51 @@
1
+ require 'tins/thread_local'
2
+
3
+ module Tins
4
+ module HashBFS
5
+ extend Tins::ThreadLocal
6
+
7
+ thread_local :seen
8
+
9
+ def bfs(include_nodes: false, &block)
10
+ block or raise ArgumentError, 'require &block argument'
11
+ self.seen = {}
12
+ queue = []
13
+ queue.push([ nil, self ])
14
+ while (index, object = queue.shift)
15
+ case
16
+ when seen[object.__id__]
17
+ next
18
+ when Hash === object
19
+ seen[object.__id__] = true
20
+ object.each do |k, v|
21
+ queue.push([ k, convert_to_hash_or_ary(v) ])
22
+ end
23
+ include_nodes or next
24
+ when Array === object
25
+ seen[object.__id__] = true
26
+ object.each_with_index do |v, i|
27
+ queue.push([ i, convert_to_hash_or_ary(v) ])
28
+ end
29
+ include_nodes or next
30
+ end
31
+ block.(index, object)
32
+ end
33
+ self
34
+ ensure
35
+ self.seen = nil
36
+ end
37
+
38
+ def convert_to_hash_or_ary(v)
39
+ case
40
+ when v.respond_to?(:to_hash)
41
+ v = v.to_hash
42
+ when v.respond_to?(:to_ary)
43
+ v = v.to_ary
44
+ else
45
+ v
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+ require 'tins/alias'
@@ -2,7 +2,7 @@ module Tins
2
2
  module SecureWrite
3
3
  # Write to a file atomically
4
4
  def secure_write(filename, content = nil, mode = 'w')
5
- temp = File.new(filename + ".tmp.#$$.#{Time.now.to_f}", mode)
5
+ temp = File.new(filename.to_s + ".tmp.#$$.#{Time.now.to_f}", mode)
6
6
  if content.nil? and block_given?
7
7
  yield temp
8
8
  elsif !content.nil?
@@ -1,3 +1,4 @@
1
+ require 'tins/string_version'
1
2
  require 'singleton'
2
3
 
3
4
  module Tins
@@ -12,7 +13,7 @@ module Tins
12
13
  class << SexySingleton
13
14
  alias __old_singleton_included__ included
14
15
 
15
- if RUBY_VERSION < "2.7"
16
+ if Tins::StringVersion.compare(RUBY_VERSION, :<, "2.7")
16
17
  def included(klass)
17
18
  __old_singleton_included__(klass)
18
19
  (class << klass; self; end).class_eval do
@@ -98,6 +98,10 @@ module Tins
98
98
  def version
99
99
  Version.new(self)
100
100
  end
101
+
102
+ def self.compare(version1, operator, version2)
103
+ Version.new(version1).send(operator, Version.new(version2))
104
+ end
101
105
  end
102
106
 
103
107
  def self.StringVersion(string)
@@ -1,3 +1,4 @@
1
+ require 'tins/string_version'
1
2
  require 'time'
2
3
 
3
4
  module Tins
@@ -35,7 +36,7 @@ module Tins
35
36
  end
36
37
  end
37
38
 
38
- if RUBY_VERSION >= "3.0"
39
+ if Tins::StringVersion.compare(RUBY_VERSION, :>=, "3.0")
39
40
  def new(*a, **kw)
40
41
  if dummy
41
42
  dummy.dup
@@ -15,7 +15,7 @@ class TimedCache
15
15
  @jitter = jitter
16
16
  block or raise ArgumentError, 'block is required'
17
17
  @block = block
18
- @redis = Redis.new # RedisPool::Pool.connection(:timed_cache, configuration: :redis)
18
+ @redis = Redis.new
19
19
  end
20
20
 
21
21
  def namespaced(key)
data/lib/tins/token.rb CHANGED
@@ -15,7 +15,11 @@ module Tins
15
15
 
16
16
  BASE32_EXTENDED_HEX_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUV".freeze
17
17
 
18
- BASE16_ALPHABET = "0123456789ABCDEF".freeze
18
+ BASE16_UPPERCASE_ALPHABET = "0123456789ABCDEF".freeze
19
+
20
+ BASE16_LOWERCASE_ALPHABET = "0123456789abcdef".freeze
21
+
22
+ BASE16_ALPHABET = BASE16_UPPERCASE_ALPHABET
19
23
 
20
24
  def initialize(bits: 128, length: nil, alphabet: DEFAULT_ALPHABET, random: SecureRandom)
21
25
  alphabet.size > 1 or raise ArgumentError, 'need at least 2 symbols in alphabet'
data/lib/tins/uniq_by.rb CHANGED
@@ -1,8 +1,21 @@
1
+ require 'tins/string_version'
2
+
1
3
  module Tins
2
4
  module UniqBy
3
- def uniq_by(&b)
4
- b ||= lambda { |x| x }
5
- inject({}) { |h, e| h[b[e]] ||= e; h }.values
5
+ if Tins::StringVersion.compare(RUBY_VERSION, :<=, "1.8")
6
+ def uniq_by(&block)
7
+ block ||= lambda { |x| x }
8
+ inject({}) { |h, e| h[ block.call(e) ] ||= e; h }.values
9
+ end
10
+ else
11
+ require 'tins/deprecate'
12
+ extend Tins::Deprecate
13
+
14
+ deprecate method:
15
+ def uniq_by(&block)
16
+ uniq(&block)
17
+ end,
18
+ new_method: :uniq
6
19
  end
7
20
  end
8
21
  end
data/lib/tins/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Tins
2
2
  # Tins version
3
- VERSION = '1.33.0'
3
+ VERSION = '1.35.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:
@@ -4,8 +4,4 @@ module Tins
4
4
  module ::Enumerable
5
5
  include CountBy
6
6
  end
7
-
8
- class ::Array
9
- include CountBy
10
- end
11
7
  end
@@ -0,0 +1,5 @@
1
+ require 'tins/deprecate'
2
+
3
+ class Module
4
+ include Tins::Deprecate
5
+ end
@@ -0,0 +1,7 @@
1
+ require 'tins/hash_bfs'
2
+
3
+ module Tins
4
+ class ::Hash
5
+ include HashBFS
6
+ end
7
+ end
@@ -1,3 +1,4 @@
1
+ require 'tins/string_version'
1
2
  require 'tins/uniq_by'
2
3
 
3
4
  module Tins
@@ -6,10 +7,19 @@ module Tins
6
7
  end
7
8
 
8
9
  class ::Array
9
- include UniqBy
10
+ if Tins::StringVersion.compare(RUBY_VERSION, :<=, "1.8")
11
+ include UniqBy
12
+
13
+ def uniq_by!(&b)
14
+ replace uniq_by(&b)
15
+ end
16
+ else
17
+ require 'tins/deprecate'
18
+ extend Tins::Deprecate
10
19
 
11
- def uniq_by!(&b)
12
- replace uniq_by(&b)
20
+ deprecate method:
21
+ alias_method(:uniq_by!, :uniq!),
22
+ new_method: :uniq!
13
23
  end
14
24
  end
15
25
  end
data/lib/tins/xt.rb CHANGED
@@ -42,4 +42,6 @@ module Tins
42
42
  require 'tins/xt/complete'
43
43
  require 'tins/xt/expose'
44
44
  require 'tins/xt/temp_io'
45
+ require 'tins/xt/deprecate'
46
+ require 'tins/xt/hash_bfs'
45
47
  end
data/lib/tins.rb CHANGED
@@ -58,5 +58,7 @@ module Tins
58
58
  require 'tins/temp_io'
59
59
  require 'tins/temp_io_enum'
60
60
  require 'tins/lru_cache'
61
+ require 'tins/deprecate'
62
+ require 'tins/hash_bfs'
61
63
  end
62
64
  require 'tins/alias'
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class AnnotateTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class BijectionTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  class ConcernTest < Test::Unit::TestCase
5
4
  module AC
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class DateDummyTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class DateTimeDummyTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
 
5
4
  class DelegationTestClass
@@ -0,0 +1,41 @@
1
+ require 'test_helper'
2
+
3
+ module Tins
4
+ class DeprecateTest < Test::Unit::TestCase
5
+ class A < Array
6
+ attr_reader :warned
7
+
8
+ def warn(message)
9
+ @warned = message if message =~ /DEPRECATION/
10
+ end
11
+
12
+ extend Tins::Deprecate
13
+ deprecate method:
14
+ def zum_felde
15
+ to_a
16
+ end,
17
+ new_method: :to_a
18
+
19
+ extend Tins::Deprecate
20
+ deprecate method:
21
+ def zum_vektor
22
+ to_a
23
+ end,
24
+ message: '[DEPRECATION] method `%{method}` is obsolete.'
25
+ end
26
+
27
+ def test_deprecate
28
+ a = A[ 1, 2 ]
29
+ assert_nil a.warned
30
+ assert_equal [ 1, 2 ], a.zum_felde
31
+ assert_match(/zum_felde` is deprecated/, a.warned)
32
+ end
33
+
34
+ def test_deprecate_with_message
35
+ a = A[ 1, 2 ]
36
+ assert_nil a.warned
37
+ assert_equal [ 1, 2 ], a.zum_vektor
38
+ assert_match(/zum_vektor` is obsolete/, a.warned)
39
+ end
40
+ end
41
+ end
data/tests/dslkit_test.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  class TL
5
4
  def initialize
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class DurationTest < Test::Unit::TestCase
@@ -76,6 +75,24 @@ module Tins
76
75
  assert_true duration.negative?
77
76
  assert_false Tins::Duration.new(42).negative?
78
77
  end
78
+
79
+ def test_parse_roundtrip
80
+ duration_string = '6+05:04:03.210'
81
+ seconds = Tins::Duration.parse(duration_string)
82
+ assert_equal duration_string, Tins::Duration.new(seconds).to_s
83
+ end
84
+
85
+ def test_parse_duration_instance
86
+ duration_string = '6+05:04:03.210'
87
+ duration = Tins::Duration.new(536643.21)
88
+ seconds = Tins::Duration.parse(duration)
89
+ assert_equal duration_string, Tins::Duration.new(seconds).to_s
90
+ end
91
+
92
+ def test_parse_percentage
93
+ duration_string = '1%2'
94
+ seconds = Tins::Duration.parse(duration_string, template: '%h%%%m')
95
+ assert_equal seconds, 3720
96
+ end
79
97
  end
80
98
  end
81
-
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  class DynamicScopeTest < Test::Unit::TestCase
5
4
  include Tins::DynamicScope
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class ExtractLastArgumentOptionsTest < Test::Unit::TestCase
data/tests/find_test.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins/find'
3
2
  require 'fileutils'
4
3
  require 'tempfile'
5
4
 
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  class FromModuleTest < Test::Unit::TestCase
5
4
  module MyIncludedModule
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class GeneratorTest < Test::Unit::TestCase
data/tests/go_test.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins/go'
3
2
 
4
3
  module Tins
5
4
  class GoTest < Test::Unit::TestCase
@@ -0,0 +1,34 @@
1
+ require 'test_helper'
2
+ require 'tins/xt/hash_bfs'
3
+
4
+ module Tins
5
+ class HashBFSTest < Test::Unit::TestCase
6
+ def setup
7
+ @hash = { a: 'foo', b: [ { c: 'baz' }, { d: 'quux' }, [ 'blub' ] ] }
8
+ end
9
+
10
+ def test_without_nodes
11
+ results = []
12
+ @hash.bfs { |*a| results.push(a) }
13
+ assert_equal [[:a, "foo"], [:c, "baz"], [:d, "quux"], [0, "blub"]], results
14
+ end
15
+
16
+ def test_with_nodes
17
+ results = []
18
+ @hash.bfs(include_nodes: true) { |*a| results.push(a) }
19
+ assert_equal(
20
+ [[nil, {a:"foo", b:[{c:"baz"}, {d:"quux"}, ["blub"]]}], [:a, "foo"],
21
+ [:b, [{c:"baz"}, {d:"quux"}, ["blub"]]], [0, {c:"baz"}], [1, {d:"quux"}],
22
+ [2, ["blub"]], [:c, "baz"], [:d, "quux"], [0, "blub"]], results
23
+ )
24
+ assert_equal 9, results.size
25
+ end
26
+
27
+ def test_with_nodes_with_circle
28
+ results = []
29
+ @hash[:b].last << @hash
30
+ @hash.bfs(include_nodes: true) { |*a| results.push(a) }
31
+ assert_equal 9, results.size
32
+ end
33
+ end
34
+ end
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class HashSymbolizeKeysRecursiveTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class ImplementTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class LimitedTest < Test::Unit::TestCase
@@ -1,6 +1,5 @@
1
1
  require 'test_helper'
2
2
  require 'tempfile'
3
- require 'tins/lines_file'
4
3
 
5
4
  module Tins
6
5
  class TinsLinesFileTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class LRUCacheTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class MemoizeTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class MinimizeTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class ModuleGroupTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins/named_set'
3
2
 
4
3
  module Tins
5
4
  class NamedSetTest < Test::Unit::TestCase
data/tests/null_test.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class NullTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  require 'tins/xt/require_maybe'
data/tests/scope_test.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  class ScopeTest < Test::Unit::TestCase
5
4
  include Tins::Scope
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
  require 'tempfile'
3
- require 'tins'
3
+ require 'pathname'
4
4
 
5
5
  module Tins
6
6
  class TinsSecureWriteTest < Test::Unit::TestCase
@@ -15,6 +15,11 @@ module Tins
15
15
  assert_raise(ArgumentError) { A.secure_write }
16
16
  end
17
17
 
18
+ def test_secure_write_with_pathname
19
+ assert_equal 4, A.secure_write(fn = Pathname.new(Dir.tmpdir).join("A_file.#$$"), 'test')
20
+ assert_equal 'test', File.read(fn)
21
+ end
22
+
18
23
  module B
19
24
  extend Write
20
25
  end
@@ -1,4 +1,4 @@
1
- require 'tins'
1
+ require 'test_helper'
2
2
 
3
3
  class SexySingletonTest < Test::Unit::TestCase
4
4
  class Single
@@ -1,5 +1,5 @@
1
1
  require 'test_helper'
2
- require 'tins'
2
+ require 'tins/xt/string_version'
3
3
 
4
4
  module Tins
5
5
  class StringVersionTest < Test::Unit::TestCase
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class SubhashTest < Test::Unit::TestCase
data/tests/test_helper.rb CHANGED
@@ -5,7 +5,8 @@ if ENV['START_SIMPLECOV'].to_i == 1
5
5
  end
6
6
  end
7
7
  begin
8
- require 'byebug'
8
+ require 'debug'
9
9
  rescue LoadError
10
10
  end
11
11
  require 'test/unit'
12
+ require 'tins'
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class TimeDummyTest < Test::Unit::TestCase
@@ -1,5 +1,5 @@
1
1
  require 'test_helper'
2
- require 'tins'
2
+ require 'tins/xt/time_freezer'
3
3
 
4
4
  module Tins
5
5
  class TimeFreezerTest < Test::Unit::TestCase
data/tests/token_test.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class TokenTest < Test::Unit::TestCase
data/tests/unit_test.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'test_helper'
2
- require 'tins'
3
2
 
4
3
  module Tins
5
4
  class UnitTest < Test::Unit::TestCase
data/tins.gemspec CHANGED
@@ -1,30 +1,29 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: tins 1.33.0 ruby lib
2
+ # stub: tins 1.35.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "tins".freeze
6
- s.version = "1.33.0".freeze
6
+ s.version = "1.35.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-04-17"
11
+ s.date = "2024-10-10"
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
- 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/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_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/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_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]
15
- s.files = ["COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "examples/add_one.png".freeze, "examples/add_one.stm".freeze, "examples/bb3.png".freeze, "examples/bb3.stm".freeze, "examples/concatenate_compare.mtm".freeze, "examples/concatenate_compare.png".freeze, "examples/length_difference.mtm".freeze, "examples/length_difference.png".freeze, "examples/let.rb".freeze, "examples/mail.rb".freeze, "examples/minsky.rb".freeze, "examples/multiply.reg".freeze, "examples/null_pattern.rb".freeze, "examples/ones_difference-mtm.png".freeze, "examples/ones_difference-stm.png".freeze, "examples/ones_difference.mtm".freeze, "examples/ones_difference.stm".freeze, "examples/prefix-equals-suffix-reversed-with-infix.png".freeze, "examples/prefix-equals-suffix-reversed-with-infix.stm".freeze, "examples/recipe.rb".freeze, "examples/recipe2.rb".freeze, "examples/recipe_common.rb".freeze, "examples/subtract.reg".freeze, "examples/turing-graph.rb".freeze, "examples/turing.rb".freeze, "lib/dslkit.rb".freeze, "lib/dslkit/polite.rb".freeze, "lib/dslkit/rude.rb".freeze, "lib/spruz".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/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_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/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_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, "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/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_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, "tins.gemspec".freeze]
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]
15
+ s.files = ["CHANGES.md".freeze, "COPYING".freeze, "Gemfile".freeze, "README.md".freeze, "Rakefile".freeze, "examples/add_one.png".freeze, "examples/add_one.stm".freeze, "examples/bb3.png".freeze, "examples/bb3.stm".freeze, "examples/concatenate_compare.mtm".freeze, "examples/concatenate_compare.png".freeze, "examples/length_difference.mtm".freeze, "examples/length_difference.png".freeze, "examples/let.rb".freeze, "examples/mail.rb".freeze, "examples/minsky.rb".freeze, "examples/multiply.reg".freeze, "examples/null_pattern.rb".freeze, "examples/ones_difference-mtm.png".freeze, "examples/ones_difference-stm.png".freeze, "examples/ones_difference.mtm".freeze, "examples/ones_difference.stm".freeze, "examples/prefix-equals-suffix-reversed-with-infix.png".freeze, "examples/prefix-equals-suffix-reversed-with-infix.stm".freeze, "examples/recipe.rb".freeze, "examples/recipe2.rb".freeze, "examples/recipe_common.rb".freeze, "examples/subtract.reg".freeze, "examples/turing-graph.rb".freeze, "examples/turing.rb".freeze, "lib/dslkit.rb".freeze, "lib/dslkit/polite.rb".freeze, "lib/dslkit/rude.rb".freeze, "lib/spruz".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, "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, "tins.gemspec".freeze]
16
16
  s.homepage = "https://github.com/flori/tins".freeze
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.3".freeze
20
+ s.rubygems_version = "3.5.18".freeze
21
21
  s.summary = "Useful stuff.".freeze
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/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_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/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_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]
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
 
24
24
  s.specification_version = 4
25
25
 
26
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.15.0".freeze])
27
- s.add_development_dependency(%q<utils>.freeze, [">= 0".freeze])
26
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.18.0".freeze])
28
27
  s.add_development_dependency(%q<all_images>.freeze, [">= 0".freeze])
29
28
  s.add_development_dependency(%q<debug>.freeze, [">= 0".freeze])
30
29
  s.add_development_dependency(%q<term-ansicolor>.freeze, [">= 0".freeze])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tins
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.33.0
4
+ version: 1.35.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-17 00:00:00.000000000 Z
11
+ date: 2024-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.15.0
19
+ version: 1.18.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.15.0
27
- - !ruby/object:Gem::Dependency
28
- name: utils
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
26
+ version: 1.18.0
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: all_images
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -160,6 +146,7 @@ extra_rdoc_files:
160
146
  - lib/tins/date_time_dummy.rb
161
147
  - lib/tins/deep_const_get.rb
162
148
  - lib/tins/deep_dup.rb
149
+ - lib/tins/deprecate.rb
163
150
  - lib/tins/dslkit.rb
164
151
  - lib/tins/duration.rb
165
152
  - lib/tins/expose.rb
@@ -168,6 +155,7 @@ extra_rdoc_files:
168
155
  - lib/tins/find.rb
169
156
  - lib/tins/generator.rb
170
157
  - lib/tins/go.rb
158
+ - lib/tins/hash_bfs.rb
171
159
  - lib/tins/hash_symbolize_keys_recursive.rb
172
160
  - lib/tins/hash_union.rb
173
161
  - lib/tins/if_predicate.rb
@@ -222,11 +210,13 @@ extra_rdoc_files:
222
210
  - lib/tins/xt/date_time_dummy.rb
223
211
  - lib/tins/xt/deep_const_get.rb
224
212
  - lib/tins/xt/deep_dup.rb
213
+ - lib/tins/xt/deprecate.rb
225
214
  - lib/tins/xt/dslkit.rb
226
215
  - lib/tins/xt/expose.rb
227
216
  - lib/tins/xt/extract_last_argument_options.rb
228
217
  - lib/tins/xt/file_binary.rb
229
218
  - lib/tins/xt/full.rb
219
+ - lib/tins/xt/hash_bfs.rb
230
220
  - lib/tins/xt/hash_symbolize_keys_recursive.rb
231
221
  - lib/tins/xt/hash_union.rb
232
222
  - lib/tins/xt/if_predicate.rb
@@ -257,6 +247,7 @@ extra_rdoc_files:
257
247
  - lib/tins/xt/uniq_by.rb
258
248
  - lib/tins/xt/write.rb
259
249
  files:
250
+ - CHANGES.md
260
251
  - COPYING
261
252
  - Gemfile
262
253
  - README.md
@@ -304,6 +295,7 @@ files:
304
295
  - lib/tins/date_time_dummy.rb
305
296
  - lib/tins/deep_const_get.rb
306
297
  - lib/tins/deep_dup.rb
298
+ - lib/tins/deprecate.rb
307
299
  - lib/tins/dslkit.rb
308
300
  - lib/tins/duration.rb
309
301
  - lib/tins/expose.rb
@@ -312,6 +304,7 @@ files:
312
304
  - lib/tins/find.rb
313
305
  - lib/tins/generator.rb
314
306
  - lib/tins/go.rb
307
+ - lib/tins/hash_bfs.rb
315
308
  - lib/tins/hash_symbolize_keys_recursive.rb
316
309
  - lib/tins/hash_union.rb
317
310
  - lib/tins/if_predicate.rb
@@ -366,11 +359,13 @@ files:
366
359
  - lib/tins/xt/date_time_dummy.rb
367
360
  - lib/tins/xt/deep_const_get.rb
368
361
  - lib/tins/xt/deep_dup.rb
362
+ - lib/tins/xt/deprecate.rb
369
363
  - lib/tins/xt/dslkit.rb
370
364
  - lib/tins/xt/expose.rb
371
365
  - lib/tins/xt/extract_last_argument_options.rb
372
366
  - lib/tins/xt/file_binary.rb
373
367
  - lib/tins/xt/full.rb
368
+ - lib/tins/xt/hash_bfs.rb
374
369
  - lib/tins/xt/hash_symbolize_keys_recursive.rb
375
370
  - lib/tins/xt/hash_union.rb
376
371
  - lib/tins/xt/if_predicate.rb
@@ -413,6 +408,7 @@ files:
413
408
  - tests/deep_const_get_test.rb
414
409
  - tests/deep_dup_test.rb
415
410
  - tests/delegate_test.rb
411
+ - tests/deprecate_test.rb
416
412
  - tests/dslkit_test.rb
417
413
  - tests/duration_test.rb
418
414
  - tests/dynamic_scope_test.rb
@@ -423,6 +419,7 @@ files:
423
419
  - tests/from_module_test.rb
424
420
  - tests/generator_test.rb
425
421
  - tests/go_test.rb
422
+ - tests/hash_bfs_test.rb
426
423
  - tests/hash_symbolize_keys_recursive_test.rb
427
424
  - tests/hash_union_test.rb
428
425
  - tests/if_predicate_test.rb
@@ -485,7 +482,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
485
482
  - !ruby/object:Gem::Version
486
483
  version: '0'
487
484
  requirements: []
488
- rubygems_version: 3.5.3
485
+ rubygems_version: 3.5.18
489
486
  signing_key:
490
487
  specification_version: 4
491
488
  summary: Useful stuff.
@@ -503,6 +500,7 @@ test_files:
503
500
  - tests/deep_const_get_test.rb
504
501
  - tests/deep_dup_test.rb
505
502
  - tests/delegate_test.rb
503
+ - tests/deprecate_test.rb
506
504
  - tests/dslkit_test.rb
507
505
  - tests/duration_test.rb
508
506
  - tests/dynamic_scope_test.rb
@@ -513,6 +511,7 @@ test_files:
513
511
  - tests/from_module_test.rb
514
512
  - tests/generator_test.rb
515
513
  - tests/go_test.rb
514
+ - tests/hash_bfs_test.rb
516
515
  - tests/hash_symbolize_keys_recursive_test.rb
517
516
  - tests/hash_union_test.rb
518
517
  - tests/if_predicate_test.rb