Class: Set
- Inherits:
-
Object
- Object
- Set
- Defined in:
- lib/persistent_dmnd/jruby_9_2_set_workaround.rb
Instance Method Summary collapse
- #<=>(set) ⇒ Object
- #==(other) ⇒ Object
- #disjoint?(set) ⇒ Boolean
- #flatten ⇒ Object
- #flatten! ⇒ Object
- #flatten_merge(set, seen = ::Set.new) ⇒ Object
- #intersect?(set) ⇒ Boolean
- #persistend_dmnd_workaround_original_spaceship ⇒ Object
- #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_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
#<=>(set) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 65 def <=>(set) original = persistend_dmnd_workaround_original_spaceship(set) return original if original return unless set.is_a?(::Set) case size <=> set.size when -1 then -1 if proper_subset?(set) when +1 then +1 if proper_superset?(set) else 0 if self.==(set) end end |
#==(other) ⇒ Object
78 79 80 81 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 78 def ==(other) persistent_dmnd_workaround_original_equal(other) || (other.is_a?(::Set) && size == other.size && other.all? { |o| include?(o) }) end |
#disjoint?(set) ⇒ Boolean
122 123 124 125 126 127 128 129 130 131 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 122 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
111 112 113 114 115 116 117 118 119 120 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 111 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 |
#persistend_dmnd_workaround_original_spaceship ⇒ Object
60 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 60 alias persistend_dmnd_workaround_original_spaceship <=> |
#persistent_dmnd_workaround_original_disjoint? ⇒ Object
56 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 56 alias persistent_dmnd_workaround_original_disjoint? disjoint? |
#persistent_dmnd_workaround_original_equal ⇒ Object
Save existing Set methods
50 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 50 alias persistent_dmnd_workaround_original_equal == |
#persistent_dmnd_workaround_original_flatten ⇒ Object
58 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 58 alias persistent_dmnd_workaround_original_flatten flatten |
#persistent_dmnd_workaround_original_flatten! ⇒ Object
59 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 59 alias persistent_dmnd_workaround_original_flatten! flatten! |
#persistent_dmnd_workaround_original_flatten_merge ⇒ Object
57 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 57 alias persistent_dmnd_workaround_original_flatten_merge flatten_merge |
#persistent_dmnd_workaround_original_intersect? ⇒ Object
55 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 55 alias persistent_dmnd_workaround_original_intersect? intersect? |
#persistent_dmnd_workaround_original_proper_subset? ⇒ Object
54 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 54 alias persistent_dmnd_workaround_original_proper_subset? proper_subset? |
#persistent_dmnd_workaround_original_proper_superset? ⇒ Object
52 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 52 alias persistent_dmnd_workaround_original_proper_superset? proper_superset? |
#persistent_dmnd_workaround_original_subset? ⇒ Object
53 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 53 alias persistent_dmnd_workaround_original_subset? subset? |
#persistent_dmnd_workaround_original_superset? ⇒ Object
51 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 51 alias persistent_dmnd_workaround_original_superset? superset? |
#proper_subset?(set) ⇒ Boolean Also known as: <
104 105 106 107 108 109 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 104 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: >
90 91 92 93 94 95 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 90 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: <=
97 98 99 100 101 102 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 97 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: >=
83 84 85 86 87 88 |
# File 'lib/persistent_dmnd/jruby_9_2_set_workaround.rb', line 83 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 |