class Lita::Handlers::JenkinsClient::BuildParam

Attributes

choices[R]
default[R]
description[R]
name[R]
type[R]
value[R]

Public Class Methods

new(type: , name: , description: , default: '', choices: []) click to toggle source
# File lib/lita/handlers/jenkins_client/build_param.rb, line 12
def initialize(type: , name: , description: , default: '', choices: [])
  @type, @name, @description, @default, @choices = type, name, description, default, choices
  if type == 'choice'
    @default = choices[0] 
  end

  if wrong_type? 
    raise ArgumentError, self.class.print_supported_types
  end

  self.value = @default 
end
print_supported_types() click to toggle source
supported_types() click to toggle source
# File lib/lita/handlers/jenkins_client/build_param.rb, line 4
def self.supported_types
  ['boolean', 'string', 'choice'].freeze
end

Public Instance Methods

to_h() click to toggle source
# File lib/lita/handlers/jenkins_client/build_param.rb, line 56
def to_h
  {@name => @value}
end
value=(v) click to toggle source
# File lib/lita/handlers/jenkins_client/build_param.rb, line 25
def value=(v)
  if v.nil?
    @value = nil
  end

  unless v.is_a? (String)
    return
  end

  case @type
  when 'string'
    @value = v
  when 'boolean'
    if v == 'true'
      @value = true
    elsif v == 'false'
      @value = false
    else
      raise ArgumentError, "#{@name} should be true or false"
    end
  when 'choice'
    if @choices.include? (v)
      @value = v
    else
      raise ArgumentError, "#{@name} should be one of #{@choices.inspect}"
    end
  else
    raise ArgumentError, self.class.print_supported_types 
  end
end

Private Instance Methods

wrong_type?() click to toggle source
# File lib/lita/handlers/jenkins_client/build_param.rb, line 61
def wrong_type?
  not self.class.supported_types.include? @type
end