Class: PseudoHash

Inherits:
Array
  • Object
show all
Defined in:
lib/arrayfields.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Array

fields, struct

Methods included from Fieldable

#fields, #fields=, #fieldset

Constructor Details

#initialize(keys = [], values = []) ⇒ PseudoHash

Returns a new instance of PseudoHash.



428
429
430
431
# File 'lib/arrayfields.rb', line 428

def initialize keys = [], values = []
  self.fields = keys
  self.replace values
end

Class Method Details

.[](*pairs) ⇒ Object

Raises:

  • (ArgumentError)


417
418
419
420
421
422
423
424
425
426
# File 'lib/arrayfields.rb', line 417

def [](*pairs)
  pairs.flatten!
  raise ArgumentError, "argument must be key/val pairs" unless 
    (pairs.size % 2 == 0 and pairs.size >= 2)
  keys, values = [], []
  while((k = pairs.shift) and (v = pairs.shift)) 
    keys << k and values << v
  end
  new keys, values
end

Instance Method Details

#to_yaml(opts = {}) ⇒ Object



432
433
434
435
436
437
438
# File 'lib/arrayfields.rb', line 432

def to_yaml opts = {}
   YAML::quick_emit object_id, opts do |out|
     out.map taguri, to_yaml_style do |map|
       each_pair{|f,v| map.add f,v}
     end
   end
end