class Bricolage::KeyValuePairsParam
Public Class Methods
new(name, arg_spec, description, optional: true, default: nil, value_handler: nil)
click to toggle source
Calls superclass method
Bricolage::Param::new
# File lib/bricolage/parameters.rb, line 639 def initialize(name, arg_spec, description, optional: true, default: nil, value_handler: nil) super name, arg_spec, description, optional: optional, publish: false @default_value = default @value_handler = value_handler end
Public Instance Methods
default_value(ctx, vars)
click to toggle source
# File lib/bricolage/parameters.rb, line 668 def default_value(ctx, vars) @default_value end
materialize(pairs, ctx, vars)
click to toggle source
# File lib/bricolage/parameters.rb, line 672 def materialize(pairs, ctx, vars) if @value_handler @value_handler.call(pairs, ctx, vars) else unless pairs.kind_of?(Hash) raise "[BUG] bad value type #{pairs.class} for KeyValuePairsParam\#materialize (#{name})" end h = {} pairs.each do |name, value| h[name] = expand(value.to_s, vars) end h end end
parse_option_value(value, h)
click to toggle source
# File lib/bricolage/parameters.rb, line 645 def parse_option_value(value, h) var, spec = value.split(':', 2) if not var or var.empty? raise ParameterError, "missing variable name: #{value.inspect}" end (h ||= {})[var] = spec h # accumulator end
parse_value(h)
click to toggle source
# File lib/bricolage/parameters.rb, line 654 def parse_value(h) case h when Hash h.empty? ? nil : h when String # FIXME: should be removed after changing all load options raise ParameterError, "bad type for parameter #{name}: #{h.class}" unless @value_handler h.strip.empty? ? nil : h when nil, false # disables option explicitly {} else raise ParameterError, "bad type for parameter #{name}: #{h.class}" end end
variables(h)
click to toggle source
# File lib/bricolage/parameters.rb, line 687 def variables(h) [] end