Sha256: 2a93b9aee57c44c8bd5ba8275fb296f8aadb5db0832aa3ee76435e8aa920eaf9
Contents?: true
Size: 446 Bytes
Versions: 1
Compression:
Stored size: 446 Bytes
Contents
module Innate module Traited TRAITS = Hash.new{|h,k| h[k] = {}} def self.included(into) into.extend(self) end def trait(hash = nil) hash ? TRAITS[self].update(hash) : TRAITS[self] end def ancestral_trait ancs = respond_to?(:ancestors) ? ancestors : self.class.ancestors ancs.reverse.inject({}){|s,v| v.respond_to?(:trait) ? s.update(v.trait) : s }.merge(trait) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
manveru-innate-2009.02.06 | lib/innate/traited.rb |