Module: TraitInit::InstaceMethods

Defined in:
lib/traits.rb,
lib/traits-0.9.1.rb

Overview

–{{{

Instance Method Summary collapse

Instance Method Details

#trait_init(*argv) ⇒ Object Also known as: traitinit



674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
# File 'lib/traits.rb', line 674

def trait_init *argv
#--{{{
  args, opts = argv.partition{|arg| not Hash === arg}
  args.flatten!
  opts = opts.inject({}){|h,h2| h.update h2}
  msgs = r_traits
  args.each{|arg| send msgs.shift, v}
  opts.each do |k,v| 
    k = "#{ k }"
    if respond_to? k
      send k, v
    else
      raise ArgumentError, "invalid trait -- #{ self.class }##{ k }"
    end
  end
#--}}}
end