class Motion::Configuration
Constants
- WARDEN_ENV
TODO: Is this always the correct key?
Attributes
options[RW]
Public Class Methods
default()
click to toggle source
# File lib/motion/configuration.rb, line 10 def default @default ||= new end
new() { |self| ... }
click to toggle source
# File lib/motion/configuration.rb, line 44 def initialize yield self if block_given? # Ensure a value is selected for all options self.class.options.each(&method(:public_send)) # Prevent further changes @finalized = true end
Private Class Methods
define_option_reader(option, &default)
click to toggle source
# File lib/motion/configuration.rb, line 25 def define_option_reader(option, &default) define_method(option) do if instance_variable_defined?(:"@#{option}") instance_variable_get(:"@#{option}") else instance_variable_set(:"@#{option}", instance_exec(&default)) end end end
define_option_writer(option)
click to toggle source
# File lib/motion/configuration.rb, line 35 def define_option_writer(option) define_method(:"#{option}=") do |value| raise AlreadyConfiguredError if @finalized instance_variable_set(:"@#{option}", value) end end
option(option, &default)
click to toggle source
# File lib/motion/configuration.rb, line 18 def option(option, &default) define_option_reader(option, &default) define_option_writer(option) self.options = [*options, option].freeze end