class RoxClient::RSpec::Project

Attributes

api_id[RW]

TODO: remove project name once API v0 is dead

category[RW]

TODO: remove project name once API v0 is dead

name[RW]

TODO: remove project name once API v0 is dead

tags[RW]

TODO: remove project name once API v0 is dead

tickets[RW]

TODO: remove project name once API v0 is dead

version[RW]

TODO: remove project name once API v0 is dead

Public Class Methods

new(options = {}) click to toggle source
# File lib/rox-client-rspec/project.rb, line 8
def initialize options = {}
  update options
end

Public Instance Methods

update(options = {}) click to toggle source
# File lib/rox-client-rspec/project.rb, line 12
def update options = {}
  %w(name 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/rox-client-rspec/project.rb, line 20
def validate!
  required = { "name" => @name, "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/rox-client-rspec/project.rb, line 28
def wrap a
  a.kind_of?(Array) ? a : [ a ]
end