Class: Sprintly::Item

Inherits:
Object
  • Object
show all
Defined in:
lib/sprintly-data-ruby/item.rb

Constant Summary collapse

WHITELISTED_ATTRIBUTES =
[
  "status", "description", "tags", "title",
  "progress", "number", "created_by",
  "score", "sort", "type", "assigned_to"
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw_item) ⇒ Item

Returns a new instance of Item.



23
24
25
26
27
28
29
30
31
32
# File 'lib/sprintly-data-ruby/item.rb', line 23

def initialize(raw_item)
  WHITELISTED_ATTRIBUTES.each do |attr|
    if raw_item.has_key?(attr)
      instance_variable_set("@#{attr}", raw_item[attr])
      singleton_class.class_eval do
        attr_reader "#{attr}"
      end
    end
  end
end

Class Method Details

.all_for_product(product_id) ⇒ Object



17
18
19
20
21
# File 'lib/sprintly-data-ruby/item.rb', line 17

def self.all_for_product(product_id)
  response = Sprintly::Connection.get("products/#{product_id}/items.json?status=someday,backlog,in-progress,completed,accepted")
  raw_items = JSON.parse(response.body)
  raw_items.map { |raw_item| new(raw_item) }
end

.for_product(product_id) ⇒ Object



11
12
13
14
15
# File 'lib/sprintly-data-ruby/item.rb', line 11

def self.for_product(product_id)
  response = Sprintly::Connection.get("products/#{product_id}/items.json")
  raw_items = JSON.parse(response.body)
  raw_items.map { |raw_item| new(raw_item) }
end