tins 1.22.2 → 1.26.0

Sign up to get free protection for your applications and to get access to all the features.
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: