module Served::Resource::Configurable::ClassMethods
Private Instance Methods
class_configurable(name, options = {}, &block)
click to toggle source
Declare a configurable attribute. This is used to declare the configuration methods used in Served::Resource::Base
# File lib/served/resource/configurable.rb, line 28 def class_configurable(name, options = {}, &block) instance_eval do instance_variable_set(:"@_c_#{name}", options[:default]) if options[:default] instance_variable_set(:"@_c_#{name}", block) if block_given? && !instance_variable_get(:"@#{name}") define_singleton_method(name) do |value = nil| instance_variable_set(:"@_c_#{name}", value) if value value ||= instance_variable_get(:"@_c_#{name}") return instance_eval(&value) if value.is_a? Proc value end define_method(name) do self.class.send(name) end end end