class Set
Public Instance Methods
==(other)
click to toggle source
Redefine all set methods that use instanceof RubySet to restore previous behavior
# File lib/persistent_dmnd/jruby_9_2_set_workaround.rb, line 63 def ==(other) persistent_dmnd_workaround_original_equal(other) || (other.is_a?(::Set) && size == other.size && other.all? { |o| include?(o) }) end
Also aliased as: persistent_dmnd_workaround_original_equal
>=(set)
Reset aliases to point to redefined methods (otherwise they would keep on pointing to the old variants)
Alias for: superset?
disjoint?(set)
click to toggle source
# File lib/persistent_dmnd/jruby_9_2_set_workaround.rb, line 107 def disjoint?(set) persistent_dmnd_workaround_original_disjoint?(set) rescue ArgumentError => e raise unless e.message == "value must be a set" && set.is_a?(::Set) !( if size < set.size any? { |o| set.include?(o) } else set.any? { |o| include?(o) } end ) end
Also aliased as: persistent_dmnd_workaround_original_disjoint?
flatten()
click to toggle source
# File lib/persistent_dmnd/jruby_9_2_set_workaround.rb, line 138 def flatten self.class.new.flatten_merge(self) end
Also aliased as: persistent_dmnd_workaround_original_flatten
flatten!()
click to toggle source
# File lib/persistent_dmnd/jruby_9_2_set_workaround.rb, line 142 def flatten! replace(flatten()) if any? { |o| o.is_a?(::Set) } end
Also aliased as: persistent_dmnd_workaround_original_flatten!
flatten_merge(set, seen = ::Set.new)
click to toggle source
# File lib/persistent_dmnd/jruby_9_2_set_workaround.rb, line 120 def flatten_merge(set, seen = ::Set.new) set.each do |o| if o.is_a?(::Set) if seen.include?(o_id = o.object_id) raise ArgumentError, "tried to flatten recursive Set" end seen.add(o_id) flatten_merge(o, seen) seen.delete(o_id) else add(o) end end self end
Also aliased as: persistent_dmnd_workaround_original_flatten_merge
intersect?(set)
click to toggle source
# File lib/persistent_dmnd/jruby_9_2_set_workaround.rb, line 96 def intersect?(set) persistent_dmnd_workaround_original_intersect?(set) rescue ArgumentError => e raise unless e.message == "value must be a set" && set.is_a?(::Set) if size < set.size any? { |o| set.include?(o) } else set.any? { |o| include?(o) } end end
Also aliased as: persistent_dmnd_workaround_original_intersect?
proper_subset?(set)
click to toggle source
# File lib/persistent_dmnd/jruby_9_2_set_workaround.rb, line 89 def proper_subset?(set) persistent_dmnd_workaround_original_proper_subset?(set) rescue ArgumentError => e raise unless e.message == "value must be a set" && set.is_a?(::Set) size < set.size && all? { |o| set.include?(o) } end
Also aliased as: persistent_dmnd_workaround_original_proper_subset?, <
proper_superset?(set)
click to toggle source
# File lib/persistent_dmnd/jruby_9_2_set_workaround.rb, line 75 def proper_superset?(set) persistent_dmnd_workaround_original_proper_superset?(set) rescue ArgumentError => e raise unless e.message == "value must be a set" && set.is_a?(::Set) size > set.size && set.all? { |o| include?(o) } end
Also aliased as: persistent_dmnd_workaround_original_proper_superset?, >
subset?(set)
click to toggle source
# File lib/persistent_dmnd/jruby_9_2_set_workaround.rb, line 82 def subset?(set) persistent_dmnd_workaround_original_subset?(set) rescue ArgumentError => e raise unless e.message == "value must be a set" && set.is_a?(::Set) size <= set.size && all? { |o| set.include?(o) } end
Also aliased as: persistent_dmnd_workaround_original_subset?, <=
superset?(set)
click to toggle source
# File lib/persistent_dmnd/jruby_9_2_set_workaround.rb, line 68 def superset?(set) persistent_dmnd_workaround_original_superset?(set) rescue ArgumentError => e raise unless e.message == "value must be a set" && set.is_a?(::Set) size >= set.size && set.all? { |o| include?(o) } end
Also aliased as: persistent_dmnd_workaround_original_superset?, >=