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