class Bgg::Collection::Item

Attributes

collection_id[R]
comment[R]
id[R]
image[R]
name[R]
play_count[R]
thumbnail[R]
type[R]
year_published[R]

Public Class Methods

new(item) click to toggle source
# File lib/bgg/collection_item.rb, line 7
def initialize(item)
  # Integers
  @id = item['objectid'].to_i
  @collection_id = item['collid'].to_i
  @play_count = item['numplays'][0].to_i

  @comment = item.fetch('comment', [])[0]
  @image = item['image'][0]
  @name = item['name'][0]['content']
  @thumbnail = item['thumbnail'][0]
  @type = item['subtype']

  # booleans
  @owned = item['status'][0]['own'] == '1'
  @for_trade = item['status'][0]['fortrade'] == '1'
  @preordered = item['status'][0]['preordered'] == '1'
  @want_to_buy = item['status'][0]['wanttobuy'] == '1'
  @want_to_play = item['status'][0]['wanttoplay'] == '1'
  @wanted = item['status'][0]['want'] == '1'

  # special handling
  @year_published = item.fetch('yearpublished', ['0'])[0].to_i
end

Public Instance Methods

for_trade?() click to toggle source
# File lib/bgg/collection_item.rb, line 39
def for_trade?
  @for_trade
end
game() click to toggle source
# File lib/bgg/collection_item.rb, line 63
def game
  Bgg::Game.find_by_id(self.id)
end
owned?() click to toggle source
# File lib/bgg/collection_item.rb, line 43
def owned?
  @owned
end
played?() click to toggle source
# File lib/bgg/collection_item.rb, line 31
def played?
  @play_count > 0
end
preordered?() click to toggle source
# File lib/bgg/collection_item.rb, line 55
def preordered?
  @preordered
end
published?() click to toggle source
# File lib/bgg/collection_item.rb, line 59
def published?
  @year_published != 0
end
want_to_buy?() click to toggle source
# File lib/bgg/collection_item.rb, line 51
def want_to_buy?
  @want_to_buy
end
want_to_play?() click to toggle source
# File lib/bgg/collection_item.rb, line 47
def want_to_play?
  @want_to_play
end
wanted?() click to toggle source
# File lib/bgg/collection_item.rb, line 35
def wanted?
  @wanted
end