Class: Sprintly::Product

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

Constant Summary collapse

WHITELISTED_ATTRIBUTES =
[
  "archived", "name", "admin",
  "created_at", "webhook", "email", "id"
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(raw_product) ⇒ Product

Returns a new instance of Product.



16
17
18
19
20
21
22
23
24
25
# File 'lib/sprintly-data-ruby/product.rb', line 16

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

Class Method Details

.allObject



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

def self.all
  response = Sprintly::Connection.get("products.json")
  raw_products = JSON.parse(response.body)
  raw_products.map { |raw_product| new(raw_product) }
end

Instance Method Details

#get_items_by_status(status) ⇒ Object



27
28
29
30
# File 'lib/sprintly-data-ruby/product.rb', line 27

def get_items_by_status(status)
  items = Sprintly::Item.for_product(self.id)
  items.select { |item| item.status == status }
end