class Bricolage::Param
Attributes
arg_spec[R]
description[R]
name[R]
Public Class Methods
new(name, arg_spec, description, optional: false, publish: false)
click to toggle source
# File lib/bricolage/parameters.rb, line 261 def initialize(name, arg_spec, description, optional: false, publish: false) @name = name @arg_spec = arg_spec @description = description @optional = optional @publish = publish end
Public Instance Methods
have_arg?()
click to toggle source
# File lib/bricolage/parameters.rb, line 278 def have_arg? !!@arg_spec end
inspect()
click to toggle source
# File lib/bricolage/parameters.rb, line 295 def inspect attrs = [ (@optional ? 'optional' : 'required'), (@publish ? 'publish' : nil) ].compact.join(',') "\#<#{self.class} #{name} #{attrs}>" end
option_name()
click to toggle source
# File lib/bricolage/parameters.rb, line 272 def option_name name end
optional?()
click to toggle source
# File lib/bricolage/parameters.rb, line 282 def optional? @optional end
parse_option_value(arg, acc)
click to toggle source
Value Handling
# File lib/bricolage/parameters.rb, line 307 def parse_option_value(arg, acc) return nil if arg.nil? arg end
parse_value(value)
click to toggle source
# File lib/bricolage/parameters.rb, line 312 def parse_value(value) value end
publish?()
click to toggle source
“published” parameter defines SQL variable.
# File lib/bricolage/parameters.rb, line 291 def publish? @publish end
required?()
click to toggle source
# File lib/bricolage/parameters.rb, line 286 def required? not optional? end
Private Instance Methods
expand(str, vars)
click to toggle source
abstract def default_value(ctx, vars) abstract def materialize(value, ctx, vars) abstract def variables(value)
# File lib/bricolage/parameters.rb, line 322 def expand(str, vars) Variable.expand_string(str.to_s) {|var| vars[var] or raise ParameterError, "undefined variable in parameter #{name}: #{var}" } end
wrap_variable_value(val)
click to toggle source
# File lib/bricolage/parameters.rb, line 328 def wrap_variable_value(val) [ResolvedVariable.new(name.gsub('-', '_'), val)] end