lib/mtg_sdk/set.rb
require_relative 'representers/set_representer'
require_relative 'card'
require_relative 'rest_client'
module MTG
class Set
include Roar::JSON
include SetRepresenter
include RestClient
attr_accessor :code, :name, :type, :border, :mkm_id, :mkm_name,
:release_date, :gatherer_code, :magic_cards_info_code, :booster,
:old_code, :block, :online_only
# Get the resource string
#
# @return [string] The API resource string
def self.Resource
"sets"
end
# Find a single set by the set code
#
# @param code [String] the Set code
# @return [Set] a Set object
def self.find(code)
QueryBuilder.new(Set).find(code)
end
# Get all sets from a query
#
# @return [Array<Set>] Array of Set objects
def self.all
QueryBuilder.new(Set).all
end
# Adds a parameter to the hash of query parameters
#
# @param args [Hash] the query parameter
# @return [QueryBuilder] the QueryBuilder
def self.where(args)
QueryBuilder.new(Set).where(args)
end
# Generate a booster pack for a specific set
# @param code [String] the Set code
# @return [Array<Card>] Array of Card objects
def self.generate_booster(code)
cards = []
response = RestClient.get("sets/#{code}/booster")
data = response.body['cards']
data.each do |card|
cards << Card.new.from_json(card.to_json)
end
cards
end
end
end