class Frodo::Configuration::Option
Attributes
configuration[R]
default[R]
default_provided?[R]
name[R]
options[R]
Public Class Methods
define(*args)
click to toggle source
# File lib/frodo/config.rb, line 45 def self.define(*args) new(*args).define end
new(configuration, name, options = {})
click to toggle source
# File lib/frodo/config.rb, line 49 def initialize(configuration, name, options = {}) @configuration = configuration @name = name @options = options @default = options.fetch(:default, nil) end
Public Instance Methods
define()
click to toggle source
# File lib/frodo/config.rb, line 56 def define write_attribute define_method if default_provided? self end
Private Instance Methods
define_method()
click to toggle source
# File lib/frodo/config.rb, line 71 def define_method our_default = default our_name = name configuration.send :define_method, our_name do instance_variable_get(:"@#{our_name}") || instance_variable_set( :"@#{our_name}", our_default.respond_to?(:call) ? our_default.call : our_default ) end end
write_attribute()
click to toggle source
# File lib/frodo/config.rb, line 67 def write_attribute configuration.send :attr_accessor, name end