Class: Dragonfly::Configurable::ConfigurationProxy
- Inherits:
-
Object
- Object
- Dragonfly::Configurable::ConfigurationProxy
- Defined in:
- lib/dragonfly/configurable.rb
Instance Method Summary (collapse)
-
- (ConfigurationProxy) initialize(owner)
constructor
A new instance of ConfigurationProxy.
- - (Object) method_missing(method_name, *args, &block)
Constructor Details
- (ConfigurationProxy) initialize(owner)
Returns a new instance of ConfigurationProxy
176 177 178 |
# File 'lib/dragonfly/configurable.rb', line 176 def initialize(owner) @owner = owner end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
- (Object) method_missing(method_name, *args, &block)
180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
# File 'lib/dragonfly/configurable.rb', line 180 def method_missing(method_name, *args, &block) if owner.has_config_method?(method_name) attribute = method_name.to_s.tr('=','').to_sym if method_name.to_s =~ /=$/ && owner.has_config_method?(attribute) # a bit hacky - if it has both getter and setter, assume it's a configurable_attr owner.set_config_value(attribute, args.first) else owner.send(method_name, *args, &block) end elsif nested_configurable?(method_name) owner.send(method_name) else raise BadConfigAttribute, "You tried to configure using '#{method_name.inspect}', but the valid config attributes are #{owner.config_methods.map{|a| %('#{a.inspect}') }.sort.join(', ')}" end end |