module Greybox::Configurable::ClassMethods
Attributes
required_properties[RW]
Private Class Methods
properties()
click to toggle source
# File lib/greybox/configurable.rb, line 47 def properties instance_methods(false).reject { |m| m.to_s.end_with? "=" } end
to_s()
click to toggle source
# File lib/greybox/configurable.rb, line 42 def to_s "Properties(#{properties.join(", ")})" end
Also aliased as: inspect
Public Instance Methods
def_property(name, args = {})
click to toggle source
# File lib/greybox/configurable.rb, line 7 def def_property(name, args = {}) setter = "#{name}=".to_sym getter = name (@defaults ||= {})[name] = args[:default] if args.has_key? :default (@required_properties ||= Set.new) << name if args[:required] # Stolen from RubyTapas episodes 27 and 28 mod = if const_defined?(:Properties, false) const_get(:Properties) else const_set(:Properties, new_blank_properties_module) end mod.module_eval %Q{ def #{setter}(value) @properties ||= {} @properties[:#{name}] = value end def #{getter} get_prop(:#{name}) end } include mod end
defaults()
click to toggle source
# File lib/greybox/configurable.rb, line 34 def defaults @defaults || {} end
Private Instance Methods
new_blank_properties_module()
click to toggle source
# File lib/greybox/configurable.rb, line 39 def new_blank_properties_module Module.new do class << self def to_s "Properties(#{properties.join(", ")})" end alias_method :inspect, :to_s def properties instance_methods(false).reject { |m| m.to_s.end_with? "=" } end end end end