Class: Hash
Class Method Summary collapse
Instance Method Summary collapse
- #<<(keyval) ⇒ Object
- #==(obj) ⇒ Object
- #===(obj) ⇒ Object
- #deep_clone ⇒ Object
- #push(pair) ⇒ Object
- #standard_equals ⇒ Object
- #standard_triple_equals ⇒ Object
- #to_stream ⇒ Object
Class Method Details
.to_stream(xs) ⇒ Object
180 181 182 183 |
# File 'lib/raskell/array.rb', line 180 def self.to_stream(xs) ## have to sort to ensure steream == works xs.to_a.sort {|x,y| x.first <=> y.first}.to_stream end |
Instance Method Details
#<<(keyval) ⇒ Object
164 165 166 167 168 |
# File 'lib/raskell/array.rb', line 164 def <<(keyval) raise("Can only push pairs into a dictionary") unless (keyval.kind_of?(Array) || keyval.kind_of?(Stream)) self[keyval.first]=keyval.last self end |
#==(obj) ⇒ Object
186 187 188 |
# File 'lib/raskell/array.rb', line 186 def ==(obj) obj.kind_of?(Stream) ? self.sort.to_stream == obj : standard_equals(obj) end |
#===(obj) ⇒ Object
191 192 193 |
# File 'lib/raskell/array.rb', line 191 def ===(obj) obj.kind_of?(Stream) ? self.to_stream === obj : standard_triple_equals(obj) end |
#deep_clone ⇒ Object
195 196 197 |
# File 'lib/raskell/array.rb', line 195 def deep_clone Hash.new(self.map{|k,v| [k.deep_clone, v.deep_clone]}) end |
#push(pair) ⇒ Object
170 171 172 173 |
# File 'lib/raskell/array.rb', line 170 def push(pair) self <<(pair) self end |
#standard_equals ⇒ Object
185 |
# File 'lib/raskell/array.rb', line 185 alias_method :standard_equals, :== |
#standard_triple_equals ⇒ Object
190 |
# File 'lib/raskell/array.rb', line 190 alias_method :standard_triple_equals, :=== |
#to_stream ⇒ Object
175 176 177 178 |
# File 'lib/raskell/array.rb', line 175 def to_stream ## have to sort to ensure stream == works self.class.to_stream(self) end |