module Calibrate::Configurable
Handles setting options on objects it's mixed into
Settings can have default values or be required (as opposed to defaulting to nil). Settings and their defaults are inherited (and can be overridden) by subclasses.
Calibrate
also includes a yard-extension that will document settings of a Configurable
@example (see ClassMethods
)
Constants
- RequiredField
Public Class Methods
unset_defaults_guard()
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 44 def self.unset_defaults_guard end
Public Instance Methods
check_required()
click to toggle source
Checks that all required fields have be set, otherwise raises an error @raise RuntimeError if any required fields are unset
# File lib/calibrate/configurable/instance-methods.rb, line 53 def check_required unset_defaults_guard missing = self.class.missing_required_fields_on(self) unless missing.empty? raise RequiredFieldUnset, "Required field#{missing.length > 1 ? "s" : ""} #{missing.map{|field| field.to_s.inspect}.join(", ")} unset on #{self.inspect}" end self end
copy_settings()
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 12 def copy_settings SettingsCopier.new(self) end
copy_settings_to(other)
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 16 def copy_settings_to(other) copy_settings.to(other) self end
fail_unless_set(name)
click to toggle source
Requires that a named field be set
# File lib/calibrate/configurable/instance-methods.rb, line 77 def fail_unless_set(name) if field_unset?(name) raise "Assertion failed: Field #{name} unset" end true end
Also aliased as: fail_if_unset
field_unset?(name)
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 72 def field_unset?(name) self.class.field_metadata(name).unset_on?(self) end
from_hash(hash)
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 33 def from_hash(hash) self.class.from_hash(self, hash) end
initialize_copy(original)
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 8 def initialize_copy(original) original.copy_settings_to(self) end
proxy_settings()
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 21 def proxy_settings SettingsProxier.new(self) end
proxy_settings_to(other)
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 25 def proxy_settings_to(other) proxy_settings.to(other) end
proxy_value()
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 62 def proxy_value ProxyDecorator.new(self) end
setup_defaults()
click to toggle source
Call during initialize to set default values on settings - if you're using Configurable
outside of Calibrate
, be sure this gets called.
# File lib/calibrate/configurable/instance-methods.rb, line 43 def setup_defaults def self.unset_defaults_guard end self.class.set_defaults_on(self) self end
to_hash()
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 29 def to_hash self.class.to_hash(self) end
unset?(value)
click to toggle source
XXX deprecate
# File lib/calibrate/configurable/instance-methods.rb, line 67 def unset?(value) warn "#unset? is deprecated - use field_unset? instead" value.nil? end
unset_defaults_guard()
click to toggle source
# File lib/calibrate/configurable/instance-methods.rb, line 37 def unset_defaults_guard raise "Tried to check required settings before running setup_defaults" end