Sha256: 1bc41572b729c05d9735d66c68061b40447b3a70ce95ec0762aeebfadba3a304
Contents?: true
Size: 627 Bytes
Versions: 1
Compression:
Stored size: 627 Bytes
Contents
module CaptainPlanet module Configurable def self.included(base) base.send :extend, ClassMethods base.send :include, InstanceMethods end module InstanceMethods end module ClassMethods def attr_configurable(*attrs, &block) attrs.each do |attr| class_variable_set("@@__default_#{attr}", block) class_eval %( def #{attr}(val=nil) return @#{attr} || (@@__default_#{attr}.call if @@__default_#{attr}.respond_to?(:call)) unless val @#{attr} = val end) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
captain_planet-0.2.0 | lib/captain_planet/configurable.rb |