class ProbeDockProbe::Project

Attributes

api_id[RW]
category[RW]
tags[RW]
tickets[RW]
version[RW]

Public Class Methods

new(options = {}) click to toggle source
# File lib/probe_dock_ruby/project.rb, line 6
def initialize options = {}
  update options
end

Public Instance Methods

update(options = {}) click to toggle source
# File lib/probe_dock_ruby/project.rb, line 10
def update options = {}
  %w(version api_id category).each do |k|
    instance_variable_set "@#{k}", options[k.to_sym] ? options[k.to_sym].to_s : nil if options.key? k.to_sym
  end
  @tags = wrap(options[:tags]).compact if options.key? :tags
  @tickets = wrap(options[:tickets]).compact if options.key? :tickets
end
validate!() click to toggle source
# File lib/probe_dock_ruby/project.rb, line 18
def validate!
  required = { "version" => @version, "API identifier" => @api_id }
  missing = required.inject([]){ |memo,(k,v)| v.to_s.strip.length <= 0 ? memo << k : memo }
  raise PayloadError.new("Missing project options: #{missing.join ', '}") if missing.any?
end

Private Instance Methods

wrap(a) click to toggle source
# File lib/probe_dock_ruby/project.rb, line 26
def wrap a
  a.kind_of?(Array) ? a : [ a ]
end