Hearthstone::Api
This is My favorite social card game 'Hearthstone' API client by pure Ruby with simple interface. It covers all official endpoints. (Detail: API Official Reference Page)
Installation
Add this line to your application's Gemfile:
gem 'hearthstone-api'
And then execute:
$ bundle
Or install it yourself as:
$ gem install hearthstone-api
Usage
Before coding, you have to get client_id(= YOUR_CLIENT_ID
) and client_secret(= YOUR_CLIENT_SECRET
) in Official Page.
# initialize client
client = Hearthstone::Api.new(
{
client_id: <YOUR_CLIENT_ID>, # Required
client_secret: <YOUR_CLIENT_SECRET>, # Required
locale: "ja_JP", # Optionally, default: "en_US"
}
)
# Card search
cards = client.search
# Fetch one card
card = client.fetch('52119-arch-villain-rafaam')
# Fetch deck
deck = client.deck("AAECAQcG+wyd8AKS+AKggAOblAPanQMMS6IE/web8wLR9QKD+wKe+wKz/AL1gAOXlAOalAOSnwMA")
# All metadata
metadata = client.metadata
# Specific metadata
sets = client.fetch_metadata("sets")
setGroups = client.fetch_metadata("setGroups")
types = client.fetch_metadata("types")
rarities = client.fetch_metadata("rarities")
classes = client.fetch_metadata("classes")
minionTypes = client.fetch_metadata("minionTypes")
keywords = client.fetch_metadata("keywords")
filterableFields = client.fetch_metadata("filterableFields")
numericFields = client.fetch_metadata("numericFields")
Search Options
You can search by specifying conditions.
option | type | description |
---|---|---|
set | string | The slug of the set the card belongs to. If you do not supply a value, cards from all sets will be returned. |
class | string | The slug of the card's class. |
manaCost | numbers | The mana cost required to play the card. You can include multiple values in a comma-separated list of numeric values. |
attack | numbers | The attack power of the minion or weapon. You can include multiple values in a comma-separated list of numeric values. |
health | numbers | The health of a minion. You can include multiple values in a comma-separated list of numeric values. |
collectible | numbers | Whether a card is collectible. A value of 1 indicates that collectible cards should be returned; 0 indicates uncollectible cards. To return all cards, use a value of '0,1'. |
rarity | string | The rarity of a card. This value must match the rarity slugs found in metadata. |
type | string | The type of card (for example, minion, spell, and so on). This value must match the type slugs found in metadata. |
minionType | string | The type of minion card (for example, beast, murloc, dragon, and so on). This value must match the minion type slugs found in metadata. |
keyword | string | A required keyword on the card (for example, battlecry, deathrattle, and so on). This value must match the keyword slugs found in metadata. |
textFilter | string | A text string used to filter cards. You must include a locale along with the textFilter parameter. |
page | number | A page number. |
pageSize | number | The number of results to choose per page. A value will be selected automatically if you do not supply a pageSize or if the pageSize is higher than the maximum allowed. |
sort | string | The field used to sort the results. Valid values include manaCost, attack, health, and name. Results are sorted by manaCost by default. Cards will also be sorted by class automatically in most cases. |
order | string | The order in which to sort the results. Valid values are asc or desc. The default value is asc. |
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/DaiAoki/hearthstone-api. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the Hearthstone::Api project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.