persistent-dmnd 2.0.4 → 2.0.6

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.
@@ -41,31 +41,30 @@ module Persistent💎
41
41
  DEFAULT_OPTIONS = {
42
42
  on_unknown: proc { |arg|
43
43
  raise ArgumentError, "Could not 💎ify an object of class #{arg.class}. Maybe you need to implement :to_💎?"
44
- },
44
+ }
45
45
  }.freeze
46
46
 
47
47
  private_constant :DEFAULT_OPTIONS
48
48
 
49
49
  def self.[](arg, options = DEFAULT_OPTIONS)
50
50
  options = DEFAULT_OPTIONS.merge(options)
51
- case
52
- when arg.respond_to?(:to_💎)
51
+ if arg.respond_to?(:to_💎)
53
52
  arg.to_💎
54
- when arg.respond_to?(:to_dmnd)
53
+ elsif arg.respond_to?(:to_dmnd)
55
54
  arg.to_dmnd
56
- when arg.respond_to?(:to_hash)
55
+ elsif arg.respond_to?(:to_hash)
57
56
  h💎[arg.to_hash]
58
- when arg.is_a?(Hamster::Set) || arg.is_a?(Hamster::SortedSet)
57
+ elsif arg.is_a?(Hamster::Set) || arg.is_a?(Hamster::SortedSet)
59
58
  s💎[*arg.to_a]
60
- when arg.respond_to?(:to_ary)
59
+ elsif arg.respond_to?(:to_ary)
61
60
  a💎[*arg.to_ary]
62
- when defined?(Concurrent::Tuple) && arg.is_a?(Concurrent::Tuple)
61
+ elsif defined?(Concurrent::Tuple) && arg.is_a?(Concurrent::Tuple)
63
62
  a💎[*arg.to_a]
64
- when arg.respond_to?(:to_set)
63
+ elsif arg.respond_to?(:to_set)
65
64
  s💎[*arg.to_set.to_a]
66
- when defined?(Concurrent::Map) && arg.is_a?(Concurrent::Map)
65
+ elsif defined?(Concurrent::Map) && arg.is_a?(Concurrent::Map)
67
66
  h💎[Persistent💎::Ruby19And20Support.enumerable_to_h(arg.enum_for(:each_pair))]
68
- when arg.respond_to?(:each_pair)
67
+ elsif arg.respond_to?(:each_pair)
69
68
  h💎[Persistent💎::Ruby19And20Support.enumerable_to_h(arg.each_pair)]
70
69
  else
71
70
  options.fetch(:on_unknown).call(arg)
@@ -32,4 +32,4 @@
32
32
  require "persistent-💎"
33
33
 
34
34
  # Add our module to the main object, allowing our syntax to be used everywhere
35
- include Persistent💎
35
+ include Persistent💎 # standard:disable Style/MixinUsage
@@ -55,11 +55,11 @@ module Persistent💎
55
55
  # my_concurrent_hash = my_hash.to_concurrent_hash
56
56
  #
57
57
  def to_concurrent_hash
58
- ConcurrentRubySupport::ensure_concurrent_ruby_loaded
58
+ ConcurrentRubySupport.ensure_concurrent_ruby_loaded
59
59
  Concurrent::Hash[self]
60
60
  end
61
61
 
62
- alias :to_concurrent :to_concurrent_hash
62
+ alias_method :to_concurrent, :to_concurrent_hash
63
63
 
64
64
  # Return Concurrent::Map with contents of Persistent💎::Hash
65
65
  #
@@ -69,7 +69,7 @@ module Persistent💎
69
69
  # # => #<Concurrent::Map:0x0055ad9b283ea0 entries=1 default_proc=nil>
70
70
  #
71
71
  def to_concurrent_map
72
- ConcurrentRubySupport::ensure_concurrent_ruby_loaded
72
+ ConcurrentRubySupport.ensure_concurrent_ruby_loaded
73
73
  each_with_object(Concurrent::Map.new(initial_capacity: size)) do |(key, value), result|
74
74
  result[key] = value
75
75
  end
@@ -47,30 +47,30 @@ module Persistent💎
47
47
  class ::Set
48
48
  # Save existing Set methods
49
49
 
50
- alias persistent_dmnd_workaround_original_equal ==
51
- alias persistent_dmnd_workaround_original_superset? superset?
52
- alias persistent_dmnd_workaround_original_proper_superset? proper_superset?
53
- alias persistent_dmnd_workaround_original_subset? subset?
54
- alias persistent_dmnd_workaround_original_proper_subset? proper_subset?
55
- alias persistent_dmnd_workaround_original_intersect? intersect?
56
- alias persistent_dmnd_workaround_original_disjoint? disjoint?
57
- alias persistent_dmnd_workaround_original_flatten_merge flatten_merge
58
- alias persistent_dmnd_workaround_original_flatten flatten
59
- alias persistent_dmnd_workaround_original_flatten! flatten!
60
- alias persistend_dmnd_workaround_original_spaceship <=>
50
+ alias_method :persistent_dmnd_workaround_original_equal, :==
51
+ alias_method :persistent_dmnd_workaround_original_superset?, :superset?
52
+ alias_method :persistent_dmnd_workaround_original_proper_superset?, :proper_superset?
53
+ alias_method :persistent_dmnd_workaround_original_subset?, :subset?
54
+ alias_method :persistent_dmnd_workaround_original_proper_subset?, :proper_subset?
55
+ alias_method :persistent_dmnd_workaround_original_intersect?, :intersect?
56
+ alias_method :persistent_dmnd_workaround_original_disjoint?, :disjoint?
57
+ alias_method :persistent_dmnd_workaround_original_flatten_merge, :flatten_merge
58
+ alias_method :persistent_dmnd_workaround_original_flatten, :flatten
59
+ alias_method :persistent_dmnd_workaround_original_flatten!, :flatten!
60
+ alias_method :persistent_dmnd_workaround_original_spaceship, :<=>
61
61
 
62
62
  # Redefine all set methods that use instanceof RubySet to restore previous behavior
63
63
 
64
64
  if JRUBY_VERSION.start_with?("9.4.")
65
- def <=>(set)
66
- original = persistend_dmnd_workaround_original_spaceship(set)
65
+ def <=>(other)
66
+ original = persistent_dmnd_workaround_original_spaceship(other)
67
67
  return original if original
68
68
 
69
- return unless set.is_a?(::Set)
70
- case size <=> set.size
71
- when -1 then -1 if proper_subset?(set)
72
- when +1 then +1 if proper_superset?(set)
73
- else 0 if self.==(set)
69
+ return unless other.is_a?(::Set)
70
+ case size <=> other.size
71
+ when -1 then -1 if proper_subset?(other)
72
+ when +1 then +1 if proper_superset?(other)
73
+ else 0 if self.==(other)
74
74
  end
75
75
  end
76
76
  end
@@ -123,11 +123,14 @@ module Persistent💎
123
123
  persistent_dmnd_workaround_original_disjoint?(set)
124
124
  rescue ArgumentError => e
125
125
  raise unless e.message == "value must be a set" && set.is_a?(::Set)
126
- !(if size < set.size
127
- any? { |o| set.include?(o) }
128
- else
129
- set.any? { |o| include?(o) }
130
- end)
126
+
127
+ !(
128
+ if size < set.size
129
+ any? { |o| set.include?(o) }
130
+ else
131
+ set.any? { |o| include?(o) }
132
+ end
133
+ )
131
134
  end
132
135
 
133
136
  def flatten_merge(set, seen = ::Set.new)
@@ -153,15 +156,15 @@ module Persistent💎
153
156
  end
154
157
 
155
158
  def flatten!
156
- replace(flatten()) if any? { |o| o.is_a?(::Set) }
159
+ replace(flatten) if any? { |o| o.is_a?(::Set) }
157
160
  end
158
161
 
159
162
  # Reset aliases to point to redefined methods (otherwise they would keep on pointing to the old variants)
160
163
 
161
- alias >= superset?
162
- alias > proper_superset?
163
- alias <= subset?
164
- alias < proper_subset?
164
+ alias_method :>=, :superset?
165
+ alias_method :>, :proper_superset?
166
+ alias_method :<=, :subset?
167
+ alias_method :<, :proper_subset?
165
168
  end
166
169
  end
167
170
  end
@@ -51,7 +51,7 @@ module Persistent💎
51
51
 
52
52
  def singleton_method_added(name)
53
53
  super
54
- maybe_fix_broken_encoding(name, self.singleton_class)
54
+ maybe_fix_broken_encoding(name, singleton_class)
55
55
  end
56
56
 
57
57
  private
@@ -83,8 +83,8 @@ module Persistent💎
83
83
 
84
84
  if JRUBY_VERSION.start_with?("1.7.")
85
85
  unless name_string.match(/\?.+/) ||
86
- ["a?", "h?", "s?", "each?"].include?(name_string) ||
87
- ["_?", "_a?", "_h?", "_s?"].any? { |suffix| name_string.end_with?(suffix) }
86
+ ["a?", "h?", "s?", "each?"].include?(name_string) ||
87
+ ["_?", "_a?", "_h?", "_s?"].any? { |suffix| name_string.end_with?(suffix) }
88
88
  return
89
89
  end
90
90
  else
@@ -69,10 +69,10 @@ module Persistent💎
69
69
  # see also https://rubyreferences.github.io/rubychanges/3.0.html#standard-library for details
70
70
  def <=>(other)
71
71
  case size <=> other.size
72
- when (-1)
73
- (-1) if self < other
74
- when (+1)
75
- (+1) if self > other
72
+ when -1
73
+ -1 if self < other
74
+ when +1
75
+ +1 if self > other
76
76
  else
77
77
  0 if self == other
78
78
  end
@@ -96,10 +96,12 @@ module Persistent💎
96
96
 
97
97
  alias_method :to_sDmnd, :to_s💎
98
98
 
99
+ alias_method :===, :include?
100
+
99
101
  private
100
102
 
101
103
  def set_eq?(other)
102
- self.size == other.size && other.all? { |item| include?(item) }
104
+ size == other.size && other.all? { |item| include?(item) }
103
105
  end
104
106
  end
105
107
  end
@@ -31,5 +31,5 @@
31
31
  # frozen_string_literal: true
32
32
 
33
33
  module Persistent💎
34
- VERSION = "2.0.4"
34
+ VERSION = "2.0.6"
35
35
  end
@@ -55,14 +55,10 @@ Gem::Specification.new do |spec|
55
55
  spec.add_development_dependency "rake", "~> 12.2" # Note: Rake 12.2 is the last that supports Ruby 1.9
56
56
  spec.add_development_dependency "rspec", "~> 3.8"
57
57
  spec.add_development_dependency "concurrent-ruby", "~> 1.1"
58
- spec.add_development_dependency "rufo", "~> 0.13" if RUBY_VERSION >= "2.6.0"
58
+ spec.add_development_dependency "standard" if RUBY_VERSION >= "2.6.0"
59
59
  spec.add_development_dependency "pry" if RUBY_VERSION >= "2.0.0"
60
60
  spec.add_development_dependency "pry-byebug" if RUBY_ENGINE == "ruby" && RUBY_VERSION >= "2.4"
61
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
66
62
 
67
63
  spec.add_dependency "hamster", "~> 3.0"
68
64
  end
metadata CHANGED
@@ -1,22 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: persistent-dmnd
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 2.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivo Anjo
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-02 00:00:00.000000000 Z
11
+ date: 2024-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: rake
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - "~>"
17
18
  - !ruby/object:Gem::Version
18
19
  version: '12.2'
19
- name: rake
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
@@ -25,12 +25,12 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '12.2'
27
27
  - !ruby/object:Gem::Dependency
28
+ name: rspec
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - "~>"
31
32
  - !ruby/object:Gem::Version
32
33
  version: '3.8'
33
- name: rspec
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
@@ -39,12 +39,12 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.8'
41
41
  - !ruby/object:Gem::Dependency
42
+ name: concurrent-ruby
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - "~>"
45
46
  - !ruby/object:Gem::Version
46
47
  version: '1.1'
47
- name: concurrent-ruby
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
@@ -53,26 +53,12 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.1'
55
55
  - !ruby/object:Gem::Dependency
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '0.13'
61
- name: rufo
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.13'
69
- - !ruby/object:Gem::Dependency
56
+ name: standard
70
57
  requirement: !ruby/object:Gem::Requirement
71
58
  requirements:
72
59
  - - ">="
73
60
  - !ruby/object:Gem::Version
74
61
  version: '0'
75
- name: pry
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
@@ -81,12 +67,12 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
70
+ name: pry
84
71
  requirement: !ruby/object:Gem::Requirement
85
72
  requirements:
86
73
  - - ">="
87
74
  - !ruby/object:Gem::Version
88
75
  version: '0'
89
- name: pry-debugger-jruby
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
@@ -95,12 +81,12 @@ dependencies:
95
81
  - !ruby/object:Gem::Version
96
82
  version: '0'
97
83
  - !ruby/object:Gem::Dependency
84
+ name: pry-byebug
98
85
  requirement: !ruby/object:Gem::Requirement
99
86
  requirements:
100
87
  - - ">="
101
88
  - !ruby/object:Gem::Version
102
89
  version: '0'
103
- name: sorbet
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
@@ -109,26 +95,12 @@ dependencies:
109
95
  - !ruby/object:Gem::Version
110
96
  version: '0'
111
97
  - !ruby/object:Gem::Dependency
112
- requirement: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - "~>"
115
- - !ruby/object:Gem::Version
116
- version: '1.1'
117
- name: spoom
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '1.1'
125
- - !ruby/object:Gem::Dependency
98
+ name: hamster
126
99
  requirement: !ruby/object:Gem::Requirement
127
100
  requirements:
128
101
  - - "~>"
129
102
  - !ruby/object:Gem::Version
130
103
  version: '3.0'
131
- name: hamster
132
104
  type: :runtime
133
105
  prerelease: false
134
106
  version_requirements: !ruby/object:Gem::Requirement
@@ -146,7 +118,7 @@ files:
146
118
  - ".gitignore"
147
119
  - ".gitlab-ci.yml"
148
120
  - ".rspec"
149
- - ".ruby-version"
121
+ - ".standard.yml"
150
122
  - CODE_OF_CONDUCT.adoc
151
123
  - LICENSE
152
124
  - README.adoc
@@ -157,7 +129,7 @@ files:
157
129
  - bin/rspec
158
130
  - gems.rb
159
131
  - lib/persistent-dmnd.rb
160
- - lib/persistent-💎.rb
132
+ - "lib/persistent-\U0001F48E.rb"
161
133
  - lib/persistent_dmnd/array.rb
162
134
  - lib/persistent_dmnd/concurrent_ruby_support.rb
163
135
  - lib/persistent_dmnd/dmndifier.rb
@@ -171,19 +143,11 @@ files:
171
143
  - lib/persistent_dmnd/set.rb
172
144
  - lib/persistent_dmnd/version.rb
173
145
  - persistent-dmnd.gemspec
174
- - sorbet/config
175
- - sorbet/rbi/gems/concurrent-ruby.rbi
176
- - sorbet/rbi/gems/hamster.rbi
177
- - sorbet/rbi/hidden-definitions/errors.txt
178
- - sorbet/rbi/hidden-definitions/hidden.rbi
179
- - sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi
180
- - sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi
181
- - sorbet/rbi/todo.rbi
182
146
  homepage: https://gitlab.com/ivoanjo/persistent-dmnd/
183
147
  licenses:
184
148
  - MIT
185
149
  metadata: {}
186
- post_install_message:
150
+ post_install_message:
187
151
  rdoc_options: []
188
152
  require_paths:
189
153
  - lib
@@ -198,8 +162,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
162
  - !ruby/object:Gem::Version
199
163
  version: '0'
200
164
  requirements: []
201
- rubygems_version: 3.3.25
202
- signing_key:
165
+ rubygems_version: 3.1.4
166
+ signing_key:
203
167
  specification_version: 4
204
- summary: 'Persistent-💎: Because Immutable Data Is Forever'
168
+ summary: "Persistent-\U0001F48E: Because Immutable Data Is Forever"
205
169
  test_files: []
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- ruby-3.0.2
data/sorbet/config DELETED
@@ -1,2 +0,0 @@
1
- --dir
2
- .