Class: QHash
Overview
Copyright © 2010-2011 Jesse Sielaff
Instance Method Summary collapse
- #all?(&block) ⇒ Boolean
- #any?(&block) ⇒ Boolean
- #clear ⇒ Object
- #count_by(&block) ⇒ Object
- #cycle(&block) ⇒ Object
- #cycle_n(number, &block) ⇒ Object
- #delete(object) ⇒ Object
- #delete_if(&block) ⇒ Object
- #drop(number) ⇒ Object
- #drop_while(&block) ⇒ Object
- #each(&block) ⇒ Object
- #each_cons(&block) ⇒ Object
- #each_key(&block) ⇒ Object
- #each_slice(&block) ⇒ Object
- #each_value(&block) ⇒ Object
- #each_with_index(&block) ⇒ Object
- #each_with_object(object, &block) ⇒ Object
- #empty? ⇒ Boolean
- #find(&block) ⇒ Object
- #flatten ⇒ Object
- #get(object) ⇒ Object
- #group_by(&block) ⇒ Object
- #hash? ⇒ Boolean
- #inject(object, &block) ⇒ Object
- #invert ⇒ Object
- #key(object) ⇒ Object
- #key?(object) ⇒ Boolean
- #keys ⇒ Object
- #length ⇒ Object
- #many?(&block) ⇒ Boolean
- #map(&block) ⇒ Object
- #max ⇒ Object
- #max_by(&object) ⇒ Object
- #merge(hash) ⇒ Object
- #merge!(hash) ⇒ Object
- #min ⇒ Object
- #min_by(&object) ⇒ Object
- #minmax ⇒ Object
- #minmax_by(&object) ⇒ Object
- #partition(&block) ⇒ Object
- #reject(&block) ⇒ Object
- #reject!(&block) ⇒ Object
- #replace(hash) ⇒ Object
- #select(&block) ⇒ Object
- #select!(&block) ⇒ Object
- #set(object_1, object_2) ⇒ Object
- #shift ⇒ Object
- #take(number) ⇒ Object
- #take_while(&block) ⇒ Object
- #value?(object) ⇒ Boolean
- #values ⇒ Object
- #values_at(*every_object) ⇒ Object
Instance Method Details
#all?(&block) ⇒ Boolean
15 16 17 18 19 20 21 |
# File 'lib/q-language/methods/hash.rb', line 15 def all? (&block) value.all? do |obj| result = yield obj break result if env::break? result end end |
#any?(&block) ⇒ Boolean
7 8 9 10 11 12 13 |
# File 'lib/q-language/methods/hash.rb', line 7 def any? (&block) value.any? do |obj| result = yield obj break result if env::break? result end end |
#clear ⇒ Object
23 24 25 |
# File 'lib/q-language/methods/hash.rb', line 23 def clear value.clear end |
#count_by(&block) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/q-language/methods/hash.rb', line 27 def count_by (&block) value.count do |obj| result = yield obj break result if env::break? result end end |
#cycle(&block) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/q-language/methods/hash.rb', line 35 def cycle (&block) value.cycle do |obj| result = yield obj break result if env::break? result end end |
#cycle_n(number, &block) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/q-language/methods/hash.rb', line 43 def cycle_n (number, &block) value.cycle(number) do |obj| result = yield obj break result if env::break? result end end |
#delete(object) ⇒ Object
51 52 53 |
# File 'lib/q-language/methods/hash.rb', line 51 def delete (object) value.delete(object) end |
#delete_if(&block) ⇒ Object
55 56 57 58 59 60 61 |
# File 'lib/q-language/methods/hash.rb', line 55 def delete_if (&block) value.delete_if do |obj| result = yield obj break result if env::break? result end end |
#drop(number) ⇒ Object
63 64 65 66 |
# File 'lib/q-language/methods/hash.rb', line 63 def drop (number) return value.dup if number < 0 value.drop(number) end |
#drop_while(&block) ⇒ Object
68 69 70 71 72 73 74 |
# File 'lib/q-language/methods/hash.rb', line 68 def drop_while (&block) value.drop_while do |obj| result = yield obj break result if env::break? result end end |
#each(&block) ⇒ Object
76 77 78 79 80 81 82 |
# File 'lib/q-language/methods/hash.rb', line 76 def each (&block) value.each do |obj| result = yield obj break result if env::break? result end end |
#each_cons(&block) ⇒ Object
84 85 86 87 88 89 90 91 |
# File 'lib/q-language/methods/hash.rb', line 84 def each_cons (&block) return nil unless number > 0 value.each_cons do |obj| result = yield obj break result if env::break? end end |
#each_key(&block) ⇒ Object
93 94 95 96 97 98 99 |
# File 'lib/q-language/methods/hash.rb', line 93 def each_key (&block) value.each_key do |obj| result = yield obj break result if env::break? result end end |
#each_slice(&block) ⇒ Object
101 102 103 104 105 106 107 108 109 |
# File 'lib/q-language/methods/hash.rb', line 101 def each_slice (&block) return nil unless number > 0 value.each_slice do |obj| result = yield obj break result if env::break? result end end |
#each_value(&block) ⇒ Object
111 112 113 114 115 116 117 |
# File 'lib/q-language/methods/hash.rb', line 111 def each_value (&block) value.each_value do |obj| result = yield obj break result if env::break? result end end |
#each_with_index(&block) ⇒ Object
119 120 121 122 123 124 |
# File 'lib/q-language/methods/hash.rb', line 119 def each_with_index (&block) value.each_with_index do |(k,v), i| result = yield [k,v,i] break result if env::break? end end |
#each_with_object(object, &block) ⇒ Object
126 127 128 129 130 131 132 133 |
# File 'lib/q-language/methods/hash.rb', line 126 def each_with_object (object, &block) value.each_with_object(object) do |(k,v), o| result = yield [k,v,o] break result if env::break? end object end |
#empty? ⇒ Boolean
135 136 137 |
# File 'lib/q-language/methods/hash.rb', line 135 def empty? value.empty? end |
#find(&block) ⇒ Object
139 140 141 142 143 144 145 |
# File 'lib/q-language/methods/hash.rb', line 139 def find (&block) value.find do |obj| result = yield obj break result if env::break? result end end |
#flatten ⇒ Object
147 148 149 |
# File 'lib/q-language/methods/hash.rb', line 147 def flatten value.flatten end |
#get(object) ⇒ Object
151 152 153 |
# File 'lib/q-language/methods/hash.rb', line 151 def get (object) value[object] end |
#group_by(&block) ⇒ Object
155 156 157 158 159 160 161 |
# File 'lib/q-language/methods/hash.rb', line 155 def group_by (&block) value.group_by do |obj| result = yield obj break result if env::break? result end end |
#hash? ⇒ Boolean
163 164 165 |
# File 'lib/q-language/methods/hash.rb', line 163 def hash? value end |
#inject(object, &block) ⇒ Object
167 168 169 170 171 172 173 |
# File 'lib/q-language/methods/hash.rb', line 167 def inject (object, &block) value.inject(object) do |o,(k,v)| result = yield [o,k,v] break result if env::break? result end end |
#invert ⇒ Object
175 176 177 |
# File 'lib/q-language/methods/hash.rb', line 175 def invert value.invert end |
#key(object) ⇒ Object
179 180 181 |
# File 'lib/q-language/methods/hash.rb', line 179 def key (object) value.key(object) end |
#key?(object) ⇒ Boolean
183 184 185 |
# File 'lib/q-language/methods/hash.rb', line 183 def key? (object) value.has_key?(object) end |
#keys ⇒ Object
187 188 189 |
# File 'lib/q-language/methods/hash.rb', line 187 def keys value.keys end |
#length ⇒ Object
191 192 193 |
# File 'lib/q-language/methods/hash.rb', line 191 def length value.length end |
#many?(&block) ⇒ Boolean
195 196 197 198 199 200 201 |
# File 'lib/q-language/methods/hash.rb', line 195 def many? (&block) value.count do |obj| result = yield obj return result if env::break? result end > 1 end |
#map(&block) ⇒ Object
203 204 205 206 207 208 209 |
# File 'lib/q-language/methods/hash.rb', line 203 def map (&block) value.collect do |obj| result = yield obj break result if env::break? result end end |
#max ⇒ Object
211 212 213 214 215 216 |
# File 'lib/q-language/methods/hash.rb', line 211 def max value.max rescue ArgumentError # Hash values cannot be compared nil end |
#max_by(&object) ⇒ Object
218 219 220 221 222 223 224 225 226 227 |
# File 'lib/q-language/methods/hash.rb', line 218 def max_by (&object) value.max_by do |obj| result = yield obj return result if env::break? result end rescue ArgumentError # Hash values cannot be compared nil end |
#merge(hash) ⇒ Object
229 230 231 |
# File 'lib/q-language/methods/hash.rb', line 229 def merge (hash) value.merge(hash) end |
#merge!(hash) ⇒ Object
233 234 235 |
# File 'lib/q-language/methods/hash.rb', line 233 def merge! (hash) value.merge!(hash) end |
#min ⇒ Object
237 238 239 240 241 242 |
# File 'lib/q-language/methods/hash.rb', line 237 def min value.min rescue ArgumentError # Hash values cannot be compared nil end |
#min_by(&object) ⇒ Object
244 245 246 247 248 249 250 251 252 253 |
# File 'lib/q-language/methods/hash.rb', line 244 def min_by (&object) value.min_by do |obj| result = yield obj return result if env::break? result end rescue ArgumentError # Hash values cannot be compared nil end |
#minmax ⇒ Object
255 256 257 258 259 260 |
# File 'lib/q-language/methods/hash.rb', line 255 def minmax value.minmax rescue ArgumentError # Hash values cannot be compared nil end |
#minmax_by(&object) ⇒ Object
262 263 264 265 266 267 268 269 270 271 |
# File 'lib/q-language/methods/hash.rb', line 262 def minmax_by (&object) value.minmax_by do |obj| result = yield obj return result if env::break? result end rescue ArgumentError # Hash values cannot be compared nil end |
#partition(&block) ⇒ Object
273 274 275 276 277 278 279 |
# File 'lib/q-language/methods/hash.rb', line 273 def partition (&block) value.partition do |obj| result = yield obj return result if env::break? result end end |
#reject(&block) ⇒ Object
281 282 283 284 285 286 287 |
# File 'lib/q-language/methods/hash.rb', line 281 def reject (&block) value.reject do |obj| result = yield obj break result if env::break? result end end |
#reject!(&block) ⇒ Object
289 290 291 292 293 294 295 |
# File 'lib/q-language/methods/hash.rb', line 289 def reject! (&block) value.reject! do |obj| result = yield obj break result if env::break? result end end |
#replace(hash) ⇒ Object
297 298 299 |
# File 'lib/q-language/methods/hash.rb', line 297 def replace (hash) value.replace(hash) end |
#select(&block) ⇒ Object
301 302 303 304 305 306 307 |
# File 'lib/q-language/methods/hash.rb', line 301 def select (&block) value.select do |obj| result = yield obj break result if env::break? result end end |
#select!(&block) ⇒ Object
309 310 311 312 313 314 315 |
# File 'lib/q-language/methods/hash.rb', line 309 def select! (&block) value.select! do |obj| result = yield obj break result if env::break? result end end |
#set(object_1, object_2) ⇒ Object
317 318 319 320 321 |
# File 'lib/q-language/methods/hash.rb', line 317 def set (object_1, object_2) unless value.length >= env::max_hash_length && !value.has_key?(object_1) value[object_1] = object_2 end end |
#shift ⇒ Object
323 324 325 |
# File 'lib/q-language/methods/hash.rb', line 323 def shift value.shift end |
#take(number) ⇒ Object
327 328 329 330 |
# File 'lib/q-language/methods/hash.rb', line 327 def take (number) return value.dup if number < 0 value.take(number) end |
#take_while(&block) ⇒ Object
332 333 334 335 336 337 338 |
# File 'lib/q-language/methods/hash.rb', line 332 def take_while (&block) value.take_while do |obj| result = yield obj break result if env::break? result end end |
#value?(object) ⇒ Boolean
340 341 342 |
# File 'lib/q-language/methods/hash.rb', line 340 def value? (object) value.has_value?(object) end |
#values ⇒ Object
344 345 346 |
# File 'lib/q-language/methods/hash.rb', line 344 def values value.values end |
#values_at(*every_object) ⇒ Object
348 349 350 |
# File 'lib/q-language/methods/hash.rb', line 348 def values_at (*every_object) value.values_at(*every_object) end |