persistent-dmnd 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.gitlab-ci.yml +54 -18
  3. data/.ruby-version +1 -1
  4. data/CODE_OF_CONDUCT.adoc +1 -1
  5. data/LICENSE +1 -1
  6. data/README.adoc +1 -1
  7. data/gems.rb +2 -2
  8. data/lib/persistent-dmnd.rb +3 -3
  9. data/lib/persistent-/360/237/222/216.rb +8 -8
  10. data/lib/persistent_dmnd/array.rb +8 -8
  11. data/lib/persistent_dmnd/concurrent_ruby_support.rb +5 -5
  12. data/lib/persistent_dmnd/dmndifier.rb +4 -4
  13. data/lib/persistent_dmnd/everywhere.rb +4 -5
  14. data/lib/persistent_dmnd/hash.rb +8 -8
  15. data/lib/persistent_dmnd/is_persistent.rb +2 -2
  16. data/lib/persistent_dmnd/jruby_9_2_set_workaround.rb +8 -10
  17. data/lib/persistent_dmnd/jruby_workaround.rb +11 -11
  18. data/lib/persistent_dmnd/ruby_1_9_and_2_0_support.rb +3 -3
  19. data/lib/persistent_dmnd/self_conversion.rb +3 -3
  20. data/lib/persistent_dmnd/set.rb +9 -9
  21. data/lib/persistent_dmnd/version.rb +3 -3
  22. data/persistent-dmnd.gemspec +28 -25
  23. data/sorbet/rbi/gems/concurrent-ruby.rbi +97 -24
  24. data/sorbet/rbi/gems/hamster.rbi +1 -0
  25. data/sorbet/rbi/hidden-definitions/errors.txt +1768 -689
  26. data/sorbet/rbi/hidden-definitions/hidden.rbi +2624 -1321
  27. data/sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi +645 -0
  28. data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +1891 -0
  29. data/sorbet/rbi/todo.rbi +3 -3
  30. metadata +12 -28
  31. data/sorbet/rbi/sorbet-typed/lib/bundler/all/bundler.rbi +0 -8684
  32. data/sorbet/rbi/sorbet-typed/lib/ruby/all/gem.rbi +0 -4222
  33. data/sorbet/rbi/sorbet-typed/lib/ruby/all/open3.rbi +0 -111
  34. data/sorbet/rbi/sorbet-typed/lib/ruby/all/resolv.rbi +0 -543
@@ -2,13 +2,13 @@
2
2
  # typed: strong
3
3
 
4
4
  # Persistent-💎: Ruby gem for easily creating immutable data structures
5
- # Copyright (c) 2017 Ivo Anjo <ivo.anjo@ist.utl.pt>
5
+ # Copyright (c) 2017-2021 Ivo Anjo <ivo@ivoanjo.me>
6
6
  #
7
7
  # This file is part of Persistent-💎.
8
8
  #
9
9
  # MIT License
10
10
  #
11
- # Copyright (c) 2017 Ivo Anjo
11
+ # Copyright (c) 2017-2021 Ivo Anjo
12
12
  #
13
13
  # Permission is hereby granted, free of charge, to any person obtaining a copy
14
14
  # of this software and associated documentation files (the "Software"), to deal
@@ -31,5 +31,5 @@
31
31
  # frozen_string_literal: true
32
32
 
33
33
  module Persistent💎
34
- VERSION = '2.0.2'
34
+ VERSION = "2.0.3"
35
35
  end
@@ -1,13 +1,13 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  # Persistent-💎: Ruby gem for easily creating immutable data structures
4
- # Copyright (c) 2017 Ivo Anjo <ivo.anjo@ist.utl.pt>
4
+ # Copyright (c) 2017-2021 Ivo Anjo <ivo@ivoanjo.me>
5
5
  #
6
6
  # This file is part of Persistent-💎.
7
7
  #
8
8
  # MIT License
9
9
  #
10
- # Copyright (c) 2017 Ivo Anjo
10
+ # Copyright (c) 2017-2021 Ivo Anjo
11
11
  #
12
12
  # Permission is hereby granted, free of charge, to any person obtaining a copy
13
13
  # of this software and associated documentation files (the "Software"), to deal
@@ -29,37 +29,40 @@
29
29
 
30
30
  # frozen_string_literal: true
31
31
 
32
- lib = File.expand_path('../lib', __FILE__)
32
+ lib = File.expand_path("../lib", __FILE__)
33
33
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
34
- require 'persistent_dmnd/version'
34
+ require "persistent_dmnd/version"
35
35
 
36
36
  Gem::Specification.new do |spec|
37
- spec.name = 'persistent-dmnd'
38
- spec.version = Persistent💎::VERSION
39
- spec.authors = 'Ivo Anjo'
40
- spec.email = 'ivo@ivoanjo.me'
37
+ spec.name = "persistent-dmnd"
38
+ spec.version = Persistent💎::VERSION
39
+ spec.authors = "Ivo Anjo"
40
+ spec.email = "ivo@ivoanjo.me"
41
41
 
42
- spec.summary = 'Persistent-💎: Because Immutable Data Is Forever'
43
- spec.description = 'A tiny ruby gem that gives you a beautiful short-hand syntax for creating immutable arrays, hashes and sets'
44
- spec.homepage = 'https://gitlab.com/ivoanjo/persistent-dmnd/'
45
- spec.license = 'MIT'
42
+ spec.summary = "Persistent-💎: Because Immutable Data Is Forever"
43
+ spec.description = "A tiny ruby gem that gives you a beautiful short-hand syntax for creating immutable arrays, hashes and sets"
44
+ spec.homepage = "https://gitlab.com/ivoanjo/persistent-dmnd/"
45
+ spec.license = "MIT"
46
46
 
47
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
47
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
48
48
  f.match(%r{^(test|spec|features)/})
49
49
  end
50
- spec.require_paths = ['lib']
50
+ spec.require_paths = ["lib"]
51
51
 
52
- spec.required_ruby_version = '>= 1.9.3'
52
+ spec.required_ruby_version = ">= 1.9.3"
53
53
 
54
- spec.add_development_dependency 'bundler', '~> 1.16' if RUBY_VERSION < '2.7'
55
- spec.add_development_dependency 'rake', '~> 12.2' # Note: Rake 12.2 is the last that supports Ruby 1.9
56
- spec.add_development_dependency 'rspec', '~> 3.8'
57
- spec.add_development_dependency 'concurrent-ruby', '~> 1.1'
58
- spec.add_development_dependency 'rufo', '~> 0.7' if RUBY_VERSION >= '2.4.5'
59
- spec.add_development_dependency 'pry' if RUBY_VERSION >= '2.0.0'
60
- spec.add_development_dependency 'pry-byebug' if RUBY_ENGINE == 'ruby' && RUBY_VERSION >= '2.4'
61
- spec.add_development_dependency 'pry-debugger-jruby' if RUBY_ENGINE == 'jruby' && !JRUBY_VERSION.start_with?('1.7.')
62
- spec.add_development_dependency 'sorbet' if RUBY_VERSION < '2.7'
54
+ spec.add_development_dependency "bundler", "~> 1.16" if RUBY_VERSION < "2.6"
55
+ spec.add_development_dependency "rake", "~> 12.2" # Note: Rake 12.2 is the last that supports Ruby 1.9
56
+ spec.add_development_dependency "rspec", "~> 3.8"
57
+ spec.add_development_dependency "concurrent-ruby", "~> 1.1"
58
+ spec.add_development_dependency "rufo", "~> 0.13" if RUBY_VERSION >= "2.6.0"
59
+ spec.add_development_dependency "pry" if RUBY_VERSION >= "2.0.0"
60
+ spec.add_development_dependency "pry-byebug" if RUBY_ENGINE == "ruby" && RUBY_VERSION >= "2.4"
61
+ spec.add_development_dependency "pry-debugger-jruby" if RUBY_ENGINE == "jruby" && !JRUBY_VERSION.start_with?("1.7.")
62
+ unless RUBY_ENGINE == "truffleruby"
63
+ spec.add_development_dependency "sorbet"
64
+ spec.add_development_dependency "spoom", "~> 1.1" if RUBY_VERSION >= "2.3.7"
65
+ end
63
66
 
64
- spec.add_dependency 'hamster', '~> 3.0'
67
+ spec.add_dependency "hamster", "~> 3.0"
65
68
  end
@@ -7,7 +7,8 @@
7
7
  #
8
8
  # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/concurrent-ruby/all/concurrent-ruby.rbi
9
9
  #
10
- # concurrent-ruby-1.1.5
10
+ # concurrent-ruby-1.1.9
11
+
11
12
  module Concurrent
12
13
  def abort_transaction; end
13
14
  def atomically; end
@@ -44,6 +45,7 @@ module Concurrent
44
45
  def self.processor_counter; end
45
46
  def self.use_simple_logger(level = nil, output = nil); end
46
47
  def self.use_stdlib_logger(level = nil, output = nil); end
48
+ extend Concurrent::Concern::Deprecation
47
49
  extend Concurrent::Concern::Logging
48
50
  extend Concurrent::Utility::EngineDetector
49
51
  extend Concurrent::Utility::NativeExtensionLoader
@@ -139,6 +141,7 @@ module Concurrent::Synchronization::ConditionSignalling
139
141
  end
140
142
  class Concurrent::Synchronization::MutexLockableObject < Concurrent::Synchronization::AbstractLockableObject
141
143
  def initialize(*defaults); end
144
+ def initialize_copy(other); end
142
145
  def ns_wait(timeout = nil); end
143
146
  def self.new(*args, &block); end
144
147
  def synchronize; end
@@ -146,6 +149,7 @@ class Concurrent::Synchronization::MutexLockableObject < Concurrent::Synchroniza
146
149
  end
147
150
  class Concurrent::Synchronization::MonitorLockableObject < Concurrent::Synchronization::AbstractLockableObject
148
151
  def initialize(*defaults); end
152
+ def initialize_copy(other); end
149
153
  def ns_wait(timeout = nil); end
150
154
  def self.new(*args, &block); end
151
155
  def synchronize; end
@@ -153,6 +157,7 @@ class Concurrent::Synchronization::MonitorLockableObject < Concurrent::Synchroni
153
157
  end
154
158
  class Concurrent::Synchronization::RbxLockableObject < Concurrent::Synchronization::AbstractLockableObject
155
159
  def initialize(*defaults); end
160
+ def initialize_copy(other); end
156
161
  def ns_broadcast; end
157
162
  def ns_signal; end
158
163
  def ns_wait(timeout = nil); end
@@ -353,10 +358,12 @@ class Concurrent::AbstractThreadLocalVar
353
358
  end
354
359
  class Concurrent::RubyThreadLocalVar < Concurrent::AbstractThreadLocalVar
355
360
  def allocate_storage; end
356
- def default_for(thread); end
361
+ def get_default; end
357
362
  def get_threadlocal_array(thread = nil); end
358
- def self.thread_finalizer(array); end
359
- def self.threadlocal_finalizer(index); end
363
+ def next_index; end
364
+ def self.semi_sync(&block); end
365
+ def self.thread_finalizer(id); end
366
+ def self.thread_local_finalizer(index); end
360
367
  def set_threadlocal_array(array, thread = nil); end
361
368
  def value; end
362
369
  def value=(value); end
@@ -438,6 +445,12 @@ module Concurrent::Concern::Logging
438
445
  def log(level, progname, message = nil, &block); end
439
446
  include Logger::Severity
440
447
  end
448
+ module Concurrent::Concern::Deprecation
449
+ def deprecated(message, strip = nil); end
450
+ def deprecated_method(old_name, new_name); end
451
+ extend Concurrent::Concern::Deprecation
452
+ include Concurrent::Concern::Logging
453
+ end
441
454
  module Concurrent::ExecutorService
442
455
  def <<(task); end
443
456
  def can_overflow?; end
@@ -445,28 +458,14 @@ module Concurrent::ExecutorService
445
458
  def serialized?; end
446
459
  include Concurrent::Concern::Logging
447
460
  end
448
- class Concurrent::AtExitImplementation < Concurrent::Synchronization::LockableObject
449
- def add(handler_id = nil, &handler); end
450
- def delete(handler_id); end
451
- def enabled=(value); end
452
- def enabled?; end
453
- def handler?(handler_id); end
454
- def handlers; end
455
- def initialize(*args); end
456
- def install; end
457
- def ns_initialize(enabled = nil); end
458
- def run; end
459
- def runner; end
460
- include Logger::Severity
461
- end
462
461
  class Concurrent::AbstractExecutorService < Concurrent::Synchronization::LockableObject
463
462
  def auto_terminate=(value); end
464
463
  def auto_terminate?; end
465
464
  def fallback_policy; end
466
465
  def handle_fallback(*args); end
467
- def initialize(*args, &block); end
466
+ def initialize(opts = nil, &block); end
468
467
  def kill; end
469
- def ns_auto_terminate=(value); end
468
+ def name; end
470
469
  def ns_auto_terminate?; end
471
470
  def ns_execute(*args, &task); end
472
471
  def ns_kill_execution; end
@@ -475,8 +474,9 @@ class Concurrent::AbstractExecutorService < Concurrent::Synchronization::Lockabl
475
474
  def shutdown; end
476
475
  def shutdown?; end
477
476
  def shuttingdown?; end
478
- def terminate_at_exit; end
477
+ def to_s; end
479
478
  def wait_for_termination(timeout = nil); end
479
+ include Concurrent::Concern::Deprecation
480
480
  include Concurrent::ExecutorService
481
481
  end
482
482
  module Concurrent::SerialExecutorService
@@ -547,6 +547,7 @@ class Concurrent::RubyThreadPoolExecutor < Concurrent::RubyExecutorService
547
547
  def remaining_capacity; end
548
548
  def remove_busy_worker(worker); end
549
549
  def scheduled_task_count; end
550
+ def synchronous; end
550
551
  def worker_died(worker); end
551
552
  def worker_not_old_enough(worker); end
552
553
  def worker_task_completed; end
@@ -554,7 +555,7 @@ end
554
555
  class Concurrent::RubyThreadPoolExecutor::Worker
555
556
  def <<(message); end
556
557
  def create_worker(queue, pool, idletime); end
557
- def initialize(pool); end
558
+ def initialize(pool, id); end
558
559
  def kill; end
559
560
  def run_task(pool, task, args); end
560
561
  def stop; end
@@ -579,7 +580,7 @@ end
579
580
  class Concurrent::SimpleExecutorService < Concurrent::RubyExecutorService
580
581
  def <<(task); end
581
582
  def kill; end
582
- def ns_initialize; end
583
+ def ns_initialize(*args); end
583
584
  def post(*args, &task); end
584
585
  def running?; end
585
586
  def self.<<(task); end
@@ -847,12 +848,78 @@ end
847
848
  module Concurrent::ThreadSafe
848
849
  end
849
850
  module Concurrent::ThreadSafe::Util
851
+ def self.make_synchronized_on_cruby(klass); end
852
+ def self.make_synchronized_on_rbx(klass); end
853
+ def self.make_synchronized_on_truffleruby(klass); end
850
854
  end
851
855
  class Concurrent::Array < Array
852
856
  end
853
857
  class Concurrent::Hash < Hash
854
858
  end
855
- class Concurrent::Set < Set
859
+ class Concurrent::CRubySet < Set
860
+ def &(*args); end
861
+ def +(*args); end
862
+ def -(*args); end
863
+ def <(*args); end
864
+ def <<(*args); end
865
+ def <=(*args); end
866
+ def ==(*args); end
867
+ def ===(*args); end
868
+ def >(*args); end
869
+ def >=(*args); end
870
+ def ^(*args); end
871
+ def add(*args); end
872
+ def add?(*args); end
873
+ def classify(*args); end
874
+ def clear(*args); end
875
+ def collect!(*args); end
876
+ def compare_by_identity(*args); end
877
+ def compare_by_identity?(*args); end
878
+ def delete(*args); end
879
+ def delete?(*args); end
880
+ def delete_if(*args); end
881
+ def difference(*args); end
882
+ def disjoint?(*args); end
883
+ def divide(*args); end
884
+ def each(*args); end
885
+ def empty?(*args); end
886
+ def eql?(*args); end
887
+ def filter!(*args); end
888
+ def flatten!(*args); end
889
+ def flatten(*args); end
890
+ def flatten_merge(*args); end
891
+ def freeze(*args); end
892
+ def hash(*args); end
893
+ def include?(*args); end
894
+ def initialize(*args, &block); end
895
+ def initialize_copy(other); end
896
+ def inspect(*args); end
897
+ def intersect?(*args); end
898
+ def intersection(*args); end
899
+ def keep_if(*args); end
900
+ def length(*args); end
901
+ def map!(*args); end
902
+ def member?(*args); end
903
+ def merge(*args); end
904
+ def pretty_print(*args); end
905
+ def pretty_print_cycle(*args); end
906
+ def proper_subset?(*args); end
907
+ def proper_superset?(*args); end
908
+ def reject!(*args); end
909
+ def replace(*args); end
910
+ def reset(*args); end
911
+ def select!(*args); end
912
+ def size(*args); end
913
+ def subset?(*args); end
914
+ def subtract(*args); end
915
+ def superset?(*args); end
916
+ def to_a(*args); end
917
+ def to_s(*args); end
918
+ def to_set(*args); end
919
+ def union(*args); end
920
+ def |(*args); end
921
+ end
922
+ class Concurrent::Set < Concurrent::CRubySet
856
923
  end
857
924
  class Concurrent::Collection::NonConcurrentMapBackend
858
925
  def [](key); end
@@ -895,6 +962,7 @@ class Concurrent::Collection::MriMapBackend < Concurrent::Collection::NonConcurr
895
962
  end
896
963
  class Concurrent::Map < Concurrent::Collection::MriMapBackend
897
964
  def [](key); end
965
+ def []=(key, value); end
898
966
  def each; end
899
967
  def each_key; end
900
968
  def each_pair; end
@@ -946,6 +1014,7 @@ class Concurrent::Async::AsyncDelegator < Concurrent::Synchronization::LockableO
946
1014
  def initialize(delegate); end
947
1015
  def method_missing(method, *args, &block); end
948
1016
  def perform; end
1017
+ def reset_if_forked; end
949
1018
  def respond_to_missing?(method, include_private = nil); end
950
1019
  end
951
1020
  class Concurrent::Async::AwaitDelegator
@@ -1025,6 +1094,7 @@ module Concurrent::Synchronization::AbstractStruct
1025
1094
  def ns_each_pair; end
1026
1095
  def ns_equality(other); end
1027
1096
  def ns_get(member); end
1097
+ def ns_initialize_copy; end
1028
1098
  def ns_inspect; end
1029
1099
  def ns_merge(other, &block); end
1030
1100
  def ns_select; end
@@ -1040,6 +1110,7 @@ module Concurrent::ImmutableStruct
1040
1110
  def [](member); end
1041
1111
  def each(&block); end
1042
1112
  def each_pair(&block); end
1113
+ def initialize_copy(original); end
1043
1114
  def inspect; end
1044
1115
  def merge(other, &block); end
1045
1116
  def select(&block); end
@@ -1058,6 +1129,7 @@ module Concurrent::MutableStruct
1058
1129
  def []=(member, value); end
1059
1130
  def each(&block); end
1060
1131
  def each_pair(&block); end
1132
+ def initialize_copy(original); end
1061
1133
  def inspect; end
1062
1134
  def merge(other, &block); end
1063
1135
  def select(&block); end
@@ -1128,6 +1200,7 @@ module Concurrent::SettableStruct
1128
1200
  def []=(member, value); end
1129
1201
  def each(&block); end
1130
1202
  def each_pair(&block); end
1203
+ def initialize_copy(original); end
1131
1204
  def inspect; end
1132
1205
  def merge(other, &block); end
1133
1206
  def select(&block); end
@@ -8,6 +8,7 @@
8
8
  # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/hamster/all/hamster.rbi
9
9
  #
10
10
  # hamster-3.0.0
11
+
11
12
  module Hamster
12
13
  def self.enumerate(enum); end
13
14
  def self.from(obj); end