Class: PseudoHash

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

Instance Attribute Summary

Attributes included from Fieldable

#fieldset

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Array

fields, struct

Methods included from Fieldable

#fields, #fields=

Constructor Details

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

Returns a new instance of PseudoHash.



422
423
424
425
# File 'lib/main/arrayfields.rb', line 422

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

Class Method Details

.[](*pairs) ⇒ Object

Raises:

  • (ArgumentError)


411
412
413
414
415
416
417
418
419
420
# File 'lib/main/arrayfields.rb', line 411

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



426
427
428
429
430
431
432
# File 'lib/main/arrayfields.rb', line 426

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