persistent-dmnd 2.0.5 → 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.5"
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,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: persistent-dmnd
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivo Anjo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-12 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
14
  name: rake
@@ -53,21 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.1'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rufo
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.13'
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
70
- name: pry
56
+ name: standard
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
@@ -81,7 +67,7 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
- name: pry-byebug
70
+ name: pry
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - ">="
@@ -95,7 +81,7 @@ dependencies:
95
81
  - !ruby/object:Gem::Version
96
82
  version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
- name: sorbet
84
+ name: pry-byebug
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - ">="
@@ -108,20 +94,6 @@ dependencies:
108
94
  - - ">="
109
95
  - !ruby/object:Gem::Version
110
96
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: spoom
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '1.1'
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
97
  - !ruby/object:Gem::Dependency
126
98
  name: hamster
127
99
  requirement: !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
@@ -171,14 +143,6 @@ 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
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- ruby-3.0.2
data/sorbet/config DELETED
@@ -1,2 +0,0 @@
1
- --dir
2
- .