module DAF::Configurable::ClassMethods
Class methods used by configurable classes
Public Instance Methods
options()
click to toggle source
Returns valid oset of options @return [Hash<String,Class>] Available set of options, with expected class for each.
# File lib/daf/configurable.rb, line 102 def options class_variable_get('@@options') end
outputs()
click to toggle source
Returns set of outputs that are set @return [Hash<String,Class>]] Outputs that are set on trigger, with types of each as values
# File lib/daf/configurable.rb, line 109 def outputs class_variable_get('@@outputs') end
required_options()
click to toggle source
Returns required set of options @return [Array<Option>] Required options for this class
# File lib/daf/configurable.rb, line 95 def required_options class_variable_get('@@required_options') end
Protected Instance Methods
attr_option(name, type, required = :optional, &verifier)
click to toggle source
Notes that this class has the specified option
@param [String, Symbol] name Name of this option @param [Class] type Type required for this option - will be verified @param [optional, :optional, :required] required Is this option required to be set, or merely optional
# File lib/daf/configurable.rb, line 81 def attr_option(name, type, required = :optional, &verifier) name = name.to_s setup_options setup_option(name, type, required, verifier) end
attr_output(name, type)
click to toggle source
# File lib/daf/configurable.rb, line 87 def attr_output(name, type) name = name.to_s setup_outputs setup_output(name, type) end
Private Instance Methods
setup_option(name, type, required, verifier)
click to toggle source
# File lib/daf/configurable.rb, line 49 def setup_option(name, type, required, verifier) define_method("#{name}") do instance_variable_set('@' + name, Option.new(name, type, verifier)) unless instance_variable_get('@' + name) instance_variable_get('@' + name) end class_variable_get('@@required_options') << name if required == :required class_variable_get('@@options')[name] = type end
setup_options()
click to toggle source
# File lib/daf/configurable.rb, line 41 def setup_options class_variable_get('@@options') class_variable_get('@@required_options') rescue class_variable_set('@@options', {}) class_variable_set('@@required_options', []) end
setup_output(name, type)
click to toggle source
# File lib/daf/configurable.rb, line 68 def setup_output(name, type) define_method("#{name}") do instance_variable_get("@#{name}") end class_variable_get('@@outputs')[name] = type end
setup_outputs()
click to toggle source
# File lib/daf/configurable.rb, line 62 def setup_outputs class_variable_get('@@outputs') rescue class_variable_set('@@outputs', {}) end