tins 1.22.2 → 1.26.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: 3d98c574e4a2321165f854cddc2e3cacb54813a22945dac1b6c0cc10fff28d05
4
- data.tar.gz: 7ba8ad11309acef41f4564d544c866fb11660e75ddf440a3085ccb3988c438ac
3
+ metadata.gz: 5319c08263bc955268619eac368bc9150738e991f58f0763d8ee3a9719b51505
4
+ data.tar.gz: 2cf051455c8e8bc3d5ad92ea9837d9573604fa4a0ff6c2a27f8c8d5c0414e8c0
5
5
  SHA512:
6
- metadata.gz: 33d9e297e541044de4ffacdc94e4a8e63496b7ce7b712ed5bf759203a568d57637763c8abea8e491a45cccdce64380a8a9c37c727ce6e7c4e85ab3ab5aaf3fd9
7
- data.tar.gz: 9cf3542730ac0ad631337bc30b374e942f4c47b9676d08193263693edf4628a9fe9f14145b28c864188a812f0606c3d2a1046261cbd81e0398e6a2ffe3f0b242
6
+ metadata.gz: 7d5ae785be24e78435063c660460528863acc5c89ba3437988a28671f848044ceb2fdecd39375db079777fcbef9d50a0fb6f0c53ac7b256292b0c77f2cc3959a
7
+ data.tar.gz: cdd1b43e26d4959a14a7eb6421cdcf529ff221ecac53a645789f1729ca5e14e340317af7ca49ded78a030ad611c00514c0154605cbd3dc5b5ed1abc98ff9b072
@@ -6,6 +6,7 @@ rvm:
6
6
  - 2.4
7
7
  - 2.5
8
8
  - 2.6
9
+ - 2.7
9
10
  - ruby-head
10
11
  matrix:
11
12
  allow_failures:
data/Rakefile CHANGED
@@ -20,4 +20,5 @@ GemHadar do
20
20
  required_ruby_version '>= 2.0'
21
21
  development_dependency 'test-unit', '~>3.1'
22
22
  development_dependency 'simplecov'
23
+ dependency 'sync'
23
24
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.22.2
1
+ 1.26.0
@@ -88,12 +88,24 @@ module Tins
88
88
  end
89
89
 
90
90
  def interpret_sleep(sleep, attempts)
91
- if Numeric === sleep && sleep < 0 && attempts > 1
92
- sleep = -sleep
93
- duration_base = compute_duration_base sleep, attempts
94
- sleep = lambda { |i| duration_base ** i }
91
+ case sleep
92
+ when nil
93
+ when Numeric
94
+ if sleep < 0
95
+ if attempts > 2
96
+ sleep = -sleep
97
+ duration_base = compute_duration_base sleep, attempts
98
+ sleep = lambda { |i| duration_base ** i }
99
+ else
100
+ raise ArgumentError, "require > 2 attempts for negative sleep value"
101
+ end
102
+ end
103
+ sleep
104
+ when Proc
105
+ sleep
106
+ else
107
+ raise TypeError, "require Proc or Numeric sleep argument"
95
108
  end
96
- sleep
97
109
  end
98
110
  end
99
111
  end
@@ -99,7 +99,7 @@ module Tins
99
99
  next if p == "." or p == ".."
100
100
  next if !@show_hidden && p.start_with?('.')
101
101
  p = File.join(path, p)
102
- paths.unshift p.untaint
102
+ paths.unshift p
103
103
  end
104
104
  end
105
105
  end
@@ -107,7 +107,7 @@ module Tins
107
107
  end
108
108
 
109
109
  def prepare_path(path)
110
- path = path.dup.taint
110
+ path = path.dup
111
111
  path.extend PathExtension
112
112
  path.finder = self
113
113
  path
@@ -9,6 +9,7 @@ module Tins
9
9
  @maximum = Integer(maximum)
10
10
  raise ArgumentError, "maximum < 1" if @maximum < 1
11
11
  @count = 0
12
+ @tg = ThreadGroup.new
12
13
  end
13
14
 
14
15
  # The maximum number of worker threads.
@@ -21,6 +22,7 @@ module Tins
21
22
  if @count < @maximum
22
23
  @count += 1
23
24
  Thread.new do
25
+ @tg.add Thread.current
24
26
  yield
25
27
  @mutex.synchronize { @count -= 1 }
26
28
  @continue.signal
@@ -32,6 +34,16 @@ module Tins
32
34
  end
33
35
  end
34
36
  end
37
+
38
+ def wait
39
+ @tg.list.each(&:join)
40
+ end
41
+
42
+ def process
43
+ yield self
44
+ ensure
45
+ wait
46
+ end
35
47
  end
36
48
  end
37
49
 
@@ -1,6 +1,6 @@
1
1
  module Tins
2
2
  # Tins version
3
- VERSION = '1.22.2'
3
+ VERSION = '1.26.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:
@@ -9,13 +9,14 @@ module Tins
9
9
  5.times do
10
10
  limited.execute do
11
11
  count[Thread.current] = true
12
- sleep
12
+ sleep 1
13
13
  end
14
14
  end
15
15
  until count.size >= 5
16
16
  sleep 0.1
17
17
  end
18
18
  assert_equal 5, count.keys.uniq.size
19
+ assert_equal 5, limited.wait.size
19
20
  end
20
21
  end
21
22
  end
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: tins 1.22.2 ruby lib
2
+ # stub: tins 1.26.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "tins".freeze
6
- s.version = "1.22.2"
6
+ s.version = "1.26.0"
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 = "2019-11-13"
11
+ s.date = "2020-10-09"
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/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/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/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]
@@ -17,25 +17,23 @@ 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.0.6".freeze
20
+ s.rubygems_version = "3.1.4".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/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/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/if_predicate_test.rb".freeze, "tests/string_camelize_test.rb".freeze, "tests/case_predicate_test.rb".freeze, "tests/sexy_singleton_test.rb".freeze, "tests/hash_union_test.rb".freeze, "tests/date_dummy_test.rb".freeze, "tests/string_byte_order_mark_test.rb".freeze, "tests/deep_dup_test.rb".freeze, "tests/generator_test.rb".freeze, "tests/ask_and_send_test.rb".freeze, "tests/hash_symbolize_keys_recursive_test.rb".freeze, "tests/memoize_test.rb".freeze, "tests/find_test.rb".freeze, "tests/extract_last_argument_options_test.rb".freeze, "tests/null_test.rb".freeze, "tests/temp_io_test.rb".freeze, "tests/proc_prelude_test.rb".freeze, "tests/token_test.rb".freeze, "tests/bijection_test.rb".freeze, "tests/p_test.rb".freeze, "tests/dynamic_scope_test.rb".freeze, "tests/lines_file_test.rb".freeze, "tests/count_by_test.rb".freeze, "tests/responding_test.rb".freeze, "tests/time_freezer_test.rb".freeze, "tests/attempt_test.rb".freeze, "tests/concern_test.rb".freeze, "tests/implement_test.rb".freeze, "tests/dslkit_test.rb".freeze, "tests/range_plus_test.rb".freeze, "tests/deep_const_get_test.rb".freeze, "tests/named_set_test.rb".freeze, "tests/proc_compose_test.rb".freeze, "tests/minimize_test.rb".freeze, "tests/subhash_test.rb".freeze, "tests/delegate_test.rb".freeze, "tests/time_dummy_test.rb".freeze, "tests/limited_test.rb".freeze, "tests/duration_test.rb".freeze, "tests/method_description_test.rb".freeze, "tests/to_test.rb".freeze, "tests/file_binary_test.rb".freeze, "tests/partial_application_test.rb".freeze, "tests/date_time_dummy_test.rb".freeze, "tests/expose_test.rb".freeze, "tests/rotate_test.rb".freeze, "tests/module_group_test.rb".freeze, "tests/unit_test.rb".freeze, "tests/string_underscore_test.rb".freeze, "tests/named_test.rb".freeze, "tests/from_module_test.rb".freeze, "tests/string_version_test.rb".freeze, "tests/require_maybe_test.rb".freeze, "tests/uniq_by_test.rb".freeze, "tests/secure_write_test.rb".freeze, "tests/blank_full_test.rb".freeze, "tests/scope_test.rb".freeze, "tests/annotate_test.rb".freeze, "tests/go_test.rb".freeze]
23
23
 
24
24
  if s.respond_to? :specification_version then
25
25
  s.specification_version = 4
26
+ end
26
27
 
27
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.9.1"])
29
- s.add_development_dependency(%q<test-unit>.freeze, ["~> 3.1"])
30
- s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
31
- else
32
- s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.9.1"])
33
- s.add_dependency(%q<test-unit>.freeze, ["~> 3.1"])
34
- s.add_dependency(%q<simplecov>.freeze, [">= 0"])
35
- end
28
+ if s.respond_to? :add_runtime_dependency then
29
+ s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 1.11.0"])
30
+ s.add_development_dependency(%q<test-unit>.freeze, ["~> 3.1"])
31
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
32
+ s.add_runtime_dependency(%q<sync>.freeze, [">= 0"])
36
33
  else
37
- s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.9.1"])
34
+ s.add_dependency(%q<gem_hadar>.freeze, ["~> 1.11.0"])
38
35
  s.add_dependency(%q<test-unit>.freeze, ["~> 3.1"])
39
36
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
37
+ s.add_dependency(%q<sync>.freeze, [">= 0"])
40
38
  end
41
39
  end
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.22.2
4
+ version: 1.26.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-13 00:00:00.000000000 Z
11
+ date: 2020-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem_hadar
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.9.1
19
+ version: 1.11.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.9.1
26
+ version: 1.11.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: test-unit
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: sync
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: All the stuff that isn't good/big enough for a real library.
56
70
  email: flori@ping.de
57
71
  executables: []
@@ -381,7 +395,7 @@ homepage: https://github.com/flori/tins
381
395
  licenses:
382
396
  - MIT
383
397
  metadata: {}
384
- post_install_message:
398
+ post_install_message:
385
399
  rdoc_options:
386
400
  - "--title"
387
401
  - Tins - Useful stuff.
@@ -400,8 +414,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
400
414
  - !ruby/object:Gem::Version
401
415
  version: '0'
402
416
  requirements: []
403
- rubygems_version: 3.0.6
404
- signing_key:
417
+ rubygems_version: 3.1.4
418
+ signing_key:
405
419
  specification_version: 4
406
420
  summary: Useful stuff.
407
421
  test_files: