module ImageResizer::Configurable::ClassMethods
Public Instance Methods
config_methods()
click to toggle source
# File lib/image_resizer/configurable.rb, line 121 def config_methods @config_methods ||= configurable_ancestors.inject([]) do |conf_methods, klass| conf_methods |= klass.config_methods conf_methods end end
configurable_ancestors()
click to toggle source
# File lib/image_resizer/configurable.rb, line 140 def configurable_ancestors @configurable_ancestors ||= ancestors.select{|a| a.included_modules.include?(Configurable) } - [self] end
default_configuration()
click to toggle source
# File lib/image_resizer/configurable.rb, line 114 def default_configuration @default_configuration ||= configurable_ancestors.reverse.inject({}) do |default_config, klass| default_config.merge!(klass.default_configuration) default_config end end
nested_configurables()
click to toggle source
# File lib/image_resizer/configurable.rb, line 128 def nested_configurables @nested_configurables ||= [] end
register_configuration(name, config=nil, &config_in_block)
click to toggle source
# File lib/image_resizer/configurable.rb, line 132 def register_configuration(name, config=nil, &config_in_block) saved_configs[name] = config_in_block || config end
saved_configs()
click to toggle source
# File lib/image_resizer/configurable.rb, line 136 def saved_configs @saved_configs ||= {} end
Private Instance Methods
configurable_attr(attribute, default=nil, &blk)
click to toggle source
# File lib/image_resizer/configurable.rb, line 146 def configurable_attr attribute, default=nil, &blk default_configuration[attribute] = blk ? DeferredBlock.new(blk) : default # Define the reader define_method(attribute) do configuration.has_key?(attribute) ? configuration[attribute] : default_value(attribute) end # Define the writer define_method("#{attribute}=") do |value| instance_variable_set("@#{attribute}", value) set_config_value(attribute, value) end configuration_method attribute configuration_method "#{attribute}=" end
configuration_method(*method_names)
click to toggle source
# File lib/image_resizer/configurable.rb, line 164 def configuration_method(*method_names) config_methods.push(*method_names.map{|n| n.to_sym }).uniq! end
nested_configurable(*method_names)
click to toggle source
# File lib/image_resizer/configurable.rb, line 168 def nested_configurable(*method_names) nested_configurables.push(*method_names) end