Top Level Namespace

Defined Under Namespace

Classes: FancyStruct

Instance Method Summary collapse

Instance Method Details

#FancyStruct(*attribs, &blk) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/fancystruct.rb', line 31

def FancyStruct(*attribs, &blk)
  if attribs.size == 1 && attribs.first.is_a?(Hash)
    keys, values = attribs.first.to_a.transpose
    FancyStruct(*keys).new(*values)
  else
    c = Class.new(FancyStruct)
    c.attribs *attribs
    c.class_eval(&blk) if blk
    c
  end
end