Class: PseudoHash

Inherits:
Array
  • Object
show all
Defined in:
lib/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.



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

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

Class Method Details

.[](*pairs) ⇒ Object

Raises:

  • (ArgumentError)


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

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



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

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