Sha256: 0795edf887bc73161e8c7eaafb8fe3fbaf37c4906a2bc46b1af2a990ec2c8af0
Contents?: true
Size: 911 Bytes
Versions: 3
Compression:
Stored size: 911 Bytes
Contents
#coding: utf-8 module Wombat class PropertyContainer < Hash def add_property property self[property.name] = property end def get_property name self[name] end def method_missing method, *args, &block self[method.to_s] = Property.new( name: method.to_s, selector: args.first, format: args[1], namespaces: args[2], callback: block) end def all_properties values.flat_map { |v| v.kind_of?(PropertyContainer) \ ? v.values \ : v.kind_of?(Property) \ ? v \ : nil }.compact end def flatten Hash.new.tap do |h| keys.map do |k| if self[k].kind_of?(PropertyContainer) h[k] = self[k].flatten elsif self[k].kind_of?(Property) h[k] = self[k].result end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
wombat-0.1.5 | lib/wombat/property_container.rb |
wombat-0.1.4 | lib/wombat/property_container.rb |
wombat-0.1.3 | lib/wombat/property_container.rb |