Sha256: 10d658a278219ffd142adda69eaf48d508584949c0262dcf3afd69e5c36bbfbd
Contents?: true
Size: 913 Bytes
Versions: 1
Compression:
Stored size: 913 Bytes
Contents
class AngryMob class Node < Struct.new(:name,:attributes,:resource_locator) include Log def initialize(name, attributes) self.name = name self.attributes = AngryHash[attributes] end def merge_defaults!(attrs) puts "merging defaults" attributes.reverse_deep_merge!(attrs) end def setup_finished! self.resource_locator ||= AngryMob::Target::DefaultResourceLocator.new end def consolidate! node = self __consolidate_hash(attributes,{}) end def __consolidate_hash(hash,seen) return if seen.key?(hash) seen[hash] = true hash.each do |key,value| case value when Hash __consolidate_hash(value,seen) when Proc hash[key] = value[self] end end end def method_missing(method,*args,&block) attributes.__send__(method,*args) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
angry_mob-0.1.0 | lib/angry_mob/node.rb |