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