Class: Set
- Inherits:
-
Object
- Object
- Set
- Defined in:
- lib/persistent_dmnd/jruby_9_2_set_workaround.rb
Instance Method Summary collapse
- #<=>(other) ⇒ Object
- #==(other) ⇒ Object
- #disjoint?(set) ⇒ Boolean
- #flatten ⇒ Object
- #flatten! ⇒ Object
- #flatten_merge(set, seen = ::Set.new) ⇒ Object
- #intersect?(set) ⇒ Boolean
- #persistent_dmnd_workaround_original_disjoint? ⇒ Object
-
#persistent_dmnd_workaround_original_equal ⇒ Object
Save existing Set methods.
- #persistent_dmnd_workaround_original_flatten ⇒ Object
- #persistent_dmnd_workaround_original_flatten! ⇒ Object
- #persistent_dmnd_workaround_original_flatten_merge ⇒ Object
- #persistent_dmnd_workaround_original_intersect? ⇒ Object
- #persistent_dmnd_workaround_original_proper_subset? ⇒ Object
- #persistent_dmnd_workaround_original_proper_superset? ⇒ Object
- #persistent_dmnd_workaround_original_spaceship ⇒ Object
- #persistent_dmnd_workaround_original_subset? ⇒ Object
- #persistent_dmnd_workaround_original_superset? ⇒ Object
- #proper_subset?(set) ⇒ Boolean (also: #<)
- #proper_superset?(set) ⇒ Boolean (also: #>)
- #subset?(set) ⇒ Boolean (also: #<=)
- #superset?(set) ⇒ Boolean (also: #>=)
Instance Method Details
#<=>(other) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 62 def <=>(other) original = persistent_dmnd_workaround_original_spaceship(other) return original if original return unless other.is_a?(::Set) case size <=> other.size when -1 then -1 if proper_subset?(other) when +1 then +1 if proper_superset?(other) else 0 if self.==(other) end end |
#==(other) ⇒ Object
75 76 77 78 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 75 def ==(other) persistent_dmnd_workaround_original_equal(other) || (other.is_a?(::Set) && size == other.size && other.all? { |o| include?(o) }) end |
#disjoint?(set) ⇒ Boolean
119 120 121 122 123 124 125 126 127 128 129 130 131 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 119 def disjoint?(set) persistent_dmnd_workaround_original_disjoint?(set) rescue ArgumentError => e raise unless e. == "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 |
#flatten ⇒ Object
151 152 153 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 151 def flatten self.class.new.flatten_merge(self) end |
#flatten! ⇒ Object
155 156 157 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 155 def flatten! replace(flatten) if any? { |o| o.is_a?(::Set) } end |
#flatten_merge(set, seen = ::Set.new) ⇒ Object
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 133 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 |
#intersect?(set) ⇒ Boolean
108 109 110 111 112 113 114 115 116 117 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 108 def intersect?(set) persistent_dmnd_workaround_original_intersect?(set) rescue ArgumentError => e raise unless e. == "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 |
#persistent_dmnd_workaround_original_disjoint? ⇒ Object
53 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 53 alias_method :persistent_dmnd_workaround_original_disjoint?, :disjoint? |
#persistent_dmnd_workaround_original_equal ⇒ Object
Save existing Set methods
47 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 47 alias_method :persistent_dmnd_workaround_original_equal, :== |
#persistent_dmnd_workaround_original_flatten ⇒ Object
55 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 55 alias_method :persistent_dmnd_workaround_original_flatten, :flatten |
#persistent_dmnd_workaround_original_flatten! ⇒ Object
56 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 56 alias_method :persistent_dmnd_workaround_original_flatten!, :flatten! |
#persistent_dmnd_workaround_original_flatten_merge ⇒ Object
54 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 54 alias_method :persistent_dmnd_workaround_original_flatten_merge, :flatten_merge |
#persistent_dmnd_workaround_original_intersect? ⇒ Object
52 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 52 alias_method :persistent_dmnd_workaround_original_intersect?, :intersect? |
#persistent_dmnd_workaround_original_proper_subset? ⇒ Object
51 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 51 alias_method :persistent_dmnd_workaround_original_proper_subset?, :proper_subset? |
#persistent_dmnd_workaround_original_proper_superset? ⇒ Object
49 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 49 alias_method :persistent_dmnd_workaround_original_proper_superset?, :proper_superset? |
#persistent_dmnd_workaround_original_spaceship ⇒ Object
57 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 57 alias_method :persistent_dmnd_workaround_original_spaceship, :<=> |
#persistent_dmnd_workaround_original_subset? ⇒ Object
50 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 50 alias_method :persistent_dmnd_workaround_original_subset?, :subset? |
#persistent_dmnd_workaround_original_superset? ⇒ Object
48 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 48 alias_method :persistent_dmnd_workaround_original_superset?, :superset? |
#proper_subset?(set) ⇒ Boolean Also known as: <
101 102 103 104 105 106 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 101 def proper_subset?(set) persistent_dmnd_workaround_original_proper_subset?(set) rescue ArgumentError => e raise unless e. == "value must be a set" && set.is_a?(::Set) size < set.size && all? { |o| set.include?(o) } end |
#proper_superset?(set) ⇒ Boolean Also known as: >
87 88 89 90 91 92 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 87 def proper_superset?(set) persistent_dmnd_workaround_original_proper_superset?(set) rescue ArgumentError => e raise unless e. == "value must be a set" && set.is_a?(::Set) size > set.size && set.all? { |o| include?(o) } end |
#subset?(set) ⇒ Boolean Also known as: <=
94 95 96 97 98 99 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 94 def subset?(set) persistent_dmnd_workaround_original_subset?(set) rescue ArgumentError => e raise unless e. == "value must be a set" && set.is_a?(::Set) size <= set.size && all? { |o| set.include?(o) } end |
#superset?(set) ⇒ Boolean Also known as: >=
80 81 82 83 84 85 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 80 def superset?(set) persistent_dmnd_workaround_original_superset?(set) rescue ArgumentError => e raise unless e. == "value must be a set" && set.is_a?(::Set) size >= set.size && set.all? { |o| include?(o) } end |