persistent-dmnd 2.0.5 → 2.0.6

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