Class: RoxClient::Project
- Inherits:
-
Object
- Object
- RoxClient::Project
- Defined in:
- lib/rox-client-ruby/project.rb
Instance Attribute Summary collapse
-
#api_id ⇒ Object
TODO: remove project name once API v0 is dead.
-
#category ⇒ Object
TODO: remove project name once API v0 is dead.
-
#name ⇒ Object
TODO: remove project name once API v0 is dead.
-
#tags ⇒ Object
TODO: remove project name once API v0 is dead.
-
#tickets ⇒ Object
TODO: remove project name once API v0 is dead.
-
#version ⇒ Object
TODO: remove project name once API v0 is dead.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Project
constructor
A new instance of Project.
- #update(options = {}) ⇒ Object
- #validate! ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Project
Returns a new instance of Project.
7 8 9 |
# File 'lib/rox-client-ruby/project.rb', line 7 def initialize = {} update end |
Instance Attribute Details
#api_id ⇒ Object
TODO: remove project name once API v0 is dead
5 6 7 |
# File 'lib/rox-client-ruby/project.rb', line 5 def api_id @api_id end |
#category ⇒ Object
TODO: remove project name once API v0 is dead
5 6 7 |
# File 'lib/rox-client-ruby/project.rb', line 5 def category @category end |
#name ⇒ Object
TODO: remove project name once API v0 is dead
5 6 7 |
# File 'lib/rox-client-ruby/project.rb', line 5 def name @name end |
#tags ⇒ Object
TODO: remove project name once API v0 is dead
5 6 7 |
# File 'lib/rox-client-ruby/project.rb', line 5 def @tags end |
#tickets ⇒ Object
TODO: remove project name once API v0 is dead
5 6 7 |
# File 'lib/rox-client-ruby/project.rb', line 5 def tickets @tickets end |
#version ⇒ Object
TODO: remove project name once API v0 is dead
5 6 7 |
# File 'lib/rox-client-ruby/project.rb', line 5 def version @version end |
Instance Method Details
#update(options = {}) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/rox-client-ruby/project.rb', line 11 def update = {} %w(name version api_id category).each do |k| instance_variable_set "@#{k}", [k.to_sym] ? [k.to_sym].to_s : nil if .key? k.to_sym end @tags = wrap([:tags]).compact if .key? :tags @tickets = wrap([:tickets]).compact if .key? :tickets end |
#validate! ⇒ Object
19 20 21 22 23 |
# File 'lib/rox-client-ruby/project.rb', line 19 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 |