class Tumugi::Parameter::Parameter

Attributes

name[RW]

Public Class Methods

new(name, opts={}) click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 9
def initialize(name, opts={})
  @name = name
  @opts = opts
  validate
end

Public Instance Methods

auto_bind?() click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 22
def auto_bind?
  option_as_bool(:auto_bind)
end
default_value() click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 34
def default_value
  @opts[:default].nil? ? nil : @opts[:default]
end
get() click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 15
def get
  if auto_bind?
    value = search_from_workflow_parameters
  end
  value.nil? ? default_value : value
end
merge_default_value(value) click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 38
def merge_default_value(value)
  self.class.new(@name, @opts.merge(required: false, default: value))
end
required?() click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 26
def required?
  option_as_bool(:required)
end
secret?() click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 42
def secret?
  option_as_bool(:secret)
end
type() click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 30
def type
  @opts[:type] || :string
end

Private Instance Methods

option_as_bool(key) click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 60
def option_as_bool(key)
  @opts[key].nil? ? false : @opts[key]
end
search_from_workflow_parameters() click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 48
def search_from_workflow_parameters
  key = @name.to_s
  value = Tumugi.workflow.params[key]
  value ? Converter.convert(type, value) : nil
end
validate() click to toggle source
# File lib/tumugi/parameter/parameter.rb, line 54
def validate
  if required? && !default_value.nil?
    raise Tumugi::ParameterError.new("When you set required: true, you cannot set default value")
  end
end