pokemon_tcg_sdk 2.2.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.editorconfig +3 -0
- data/.gitignore +0 -1
- data/.travis.yml +13 -2
- data/README.md +60 -25
- data/Rakefile +10 -0
- data/lib/pokemon_tcg_sdk.rb +9 -2
- data/lib/pokemon_tcg_sdk/ability.rb +9 -5
- data/lib/pokemon_tcg_sdk/ancient_trait.rb +8 -5
- data/lib/pokemon_tcg_sdk/attack.rb +11 -5
- data/lib/pokemon_tcg_sdk/card.rb +35 -11
- data/lib/pokemon_tcg_sdk/card_images.rb +13 -0
- data/lib/pokemon_tcg_sdk/configuration.rb +2 -2
- data/lib/pokemon_tcg_sdk/legalities.rb +14 -0
- data/lib/pokemon_tcg_sdk/query_builder.rb +6 -10
- data/lib/pokemon_tcg_sdk/rarity.rb +12 -0
- data/lib/pokemon_tcg_sdk/resistance.rb +14 -0
- data/lib/pokemon_tcg_sdk/rest_client.rb +19 -7
- data/lib/pokemon_tcg_sdk/set.rb +18 -7
- data/lib/pokemon_tcg_sdk/set_images.rb +13 -0
- data/lib/pokemon_tcg_sdk/subtype.rb +1 -1
- data/lib/pokemon_tcg_sdk/supertype.rb +1 -1
- data/lib/pokemon_tcg_sdk/tcgplayer.rb +44 -0
- data/lib/pokemon_tcg_sdk/type.rb +1 -1
- data/lib/pokemon_tcg_sdk/version.rb +1 -1
- data/lib/pokemon_tcg_sdk/weakness.rb +13 -0
- data/pokemon_tcg_sdk.gemspec +11 -13
- metadata +33 -61
- data/lib/pokemon_tcg_sdk/representers/ability_representer.rb +0 -11
- data/lib/pokemon_tcg_sdk/representers/ancient_trait_representer.rb +0 -10
- data/lib/pokemon_tcg_sdk/representers/attack_representer.rb +0 -13
- data/lib/pokemon_tcg_sdk/representers/card_representer.rb +0 -38
- data/lib/pokemon_tcg_sdk/representers/set_representer.rb +0 -14
- data/lib/pokemon_tcg_sdk/representers/type_value_representer.rb +0 -10
- data/lib/pokemon_tcg_sdk/type_value.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b9a3a1b3fc604371b4975e4dbda528bf2b6366a44e1a9930fb5e11f1712ced60
|
4
|
+
data.tar.gz: 986fc54f2c071fe2baebafb6406a239373cc43f270477550d93a0cc7c68a3412
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28f202b365875f9ab598e22ef1c079d4b767d7c22ffb362a11f456db2b80c25beb078398fbf81074b348075fa64f5f8f1c7d8552fe570aa5c1c9cb81a4da8fe7
|
7
|
+
data.tar.gz: 26d5f55ca9caad1b80733266abf265cbb49a69b94c290b4c3e6c9603e606fdfcfd35e6a66a85e29d5a17edb3e8ac14e2337116ec6e8286ff6c1f847773ac4794
|
data/.editorconfig
ADDED
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,4 +1,15 @@
|
|
1
|
+
env:
|
2
|
+
global:
|
3
|
+
- CC_TEST_REPORTER_ID=c14dfc2c8a10a029ac3706d2c2c86f63f663a1445df6213e013a42cbc9a55e74
|
1
4
|
language: ruby
|
2
5
|
rvm:
|
3
|
-
- 2.
|
4
|
-
before_install: gem install bundler -v 1.
|
6
|
+
- 2.7.0
|
7
|
+
before_install: gem install bundler -v 2.1.4
|
8
|
+
before_script:
|
9
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
10
|
+
- chmod +x ./cc-test-reporter
|
11
|
+
- ./cc-test-reporter before-build
|
12
|
+
script:
|
13
|
+
- rake test
|
14
|
+
after_script:
|
15
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
data/README.md
CHANGED
@@ -4,7 +4,9 @@
|
|
4
4
|
[](https://travis-ci.org/PokemonTCG/pokemon-tcg-sdk-ruby)
|
5
5
|
[](https://gemnasium.com/github.com/PokemonTCG/pokemon-tcg-sdk-ruby)
|
6
6
|
[](https://codeclimate.com/github/PokemonTCG/pokemon-tcg-sdk-ruby)
|
7
|
-
[](https://codeclimate.com/github/PokemonTCG/pokemon-tcg-sdk-ruby/test_coverage)
|
8
|
+
|
9
|
+
### Now supporting Version 2 of the Pokémon TCG API!
|
8
10
|
|
9
11
|
This is the Pokémon TCG SDK Ruby implementation. It is a wrapper around the Pokémon TCG API of [pokemontcg.io](http://pokemontcg.io/).
|
10
12
|
|
@@ -24,10 +26,10 @@ Or install it yourself as:
|
|
24
26
|
|
25
27
|
## Usage
|
26
28
|
|
27
|
-
To
|
29
|
+
To configure your API Key:
|
28
30
|
|
29
31
|
Pokemon.configure do |config|
|
30
|
-
config.
|
32
|
+
config.api_key = "xxxxxxxxx"
|
31
33
|
end
|
32
34
|
|
33
35
|
### Classes
|
@@ -40,7 +42,13 @@ To change the API version (currently defaults to version 1)
|
|
40
42
|
Ability
|
41
43
|
AncientTrait
|
42
44
|
Attack
|
43
|
-
|
45
|
+
Resistance
|
46
|
+
Weakness
|
47
|
+
Legalities
|
48
|
+
Rarity
|
49
|
+
SetImages
|
50
|
+
CardImages
|
51
|
+
Tcgplayer
|
44
52
|
|
45
53
|
### Properties Per Class
|
46
54
|
|
@@ -48,39 +56,47 @@ To change the API version (currently defaults to version 1)
|
|
48
56
|
|
49
57
|
id
|
50
58
|
name
|
51
|
-
national_pokedex_number
|
52
|
-
image_url
|
53
|
-
subtype
|
54
59
|
supertype
|
55
|
-
|
56
|
-
|
60
|
+
subtypes
|
61
|
+
level
|
57
62
|
hp
|
58
|
-
number
|
59
|
-
artist
|
60
|
-
rarity
|
61
|
-
series
|
62
|
-
set
|
63
|
-
set_code
|
64
|
-
retreat_cost
|
65
|
-
text
|
66
63
|
types
|
67
|
-
|
64
|
+
evolves_from
|
65
|
+
evolves_to
|
66
|
+
rules
|
67
|
+
ancient_trait
|
68
|
+
abilities
|
68
69
|
weaknesses
|
69
70
|
resistances
|
71
|
+
retreat_cost
|
72
|
+
converted_retreat_cost
|
73
|
+
set
|
74
|
+
number
|
75
|
+
artist
|
76
|
+
rarity
|
77
|
+
national_pokedex_numbers
|
78
|
+
legalities
|
79
|
+
tcgplayer
|
80
|
+
images
|
70
81
|
|
71
82
|
#### Set
|
72
83
|
|
73
|
-
|
84
|
+
id
|
74
85
|
name
|
75
86
|
series
|
76
|
-
|
77
|
-
|
87
|
+
printedTotal
|
88
|
+
total
|
89
|
+
legalities
|
90
|
+
ptcgo_code
|
78
91
|
release_date
|
92
|
+
updated_at
|
93
|
+
images
|
79
94
|
|
80
95
|
#### Ability
|
81
96
|
|
82
97
|
name
|
83
98
|
text
|
99
|
+
type
|
84
100
|
|
85
101
|
#### AncientTrait
|
86
102
|
|
@@ -95,11 +111,26 @@ To change the API version (currently defaults to version 1)
|
|
95
111
|
damage
|
96
112
|
converted_energy_cost
|
97
113
|
|
98
|
-
####
|
114
|
+
#### Weakness
|
115
|
+
|
116
|
+
type
|
117
|
+
value
|
118
|
+
|
119
|
+
#### Resistance
|
99
120
|
|
100
121
|
type
|
101
122
|
value
|
102
123
|
|
124
|
+
#### CardImages
|
125
|
+
|
126
|
+
small
|
127
|
+
large
|
128
|
+
|
129
|
+
#### SetImages
|
130
|
+
|
131
|
+
logo
|
132
|
+
symbol
|
133
|
+
|
103
134
|
### Functions Available
|
104
135
|
|
105
136
|
#### Find a card by id
|
@@ -108,7 +139,7 @@ To change the API version (currently defaults to version 1)
|
|
108
139
|
|
109
140
|
#### Filter Cards via query parameters
|
110
141
|
|
111
|
-
cards = Pokemon::Card.where(
|
142
|
+
cards = Pokemon::Card.where(q: 'set.name:generations subtypes:mega')
|
112
143
|
|
113
144
|
#### Find all cards (will take awhile)
|
114
145
|
|
@@ -116,7 +147,7 @@ To change the API version (currently defaults to version 1)
|
|
116
147
|
|
117
148
|
#### Get all cards, but only a specific page of data
|
118
149
|
|
119
|
-
cards = Pokemon::Card.where(page: 5
|
150
|
+
cards = Pokemon::Card.where(page: 5, pageSize: 100)
|
120
151
|
|
121
152
|
#### Find a set by code
|
122
153
|
|
@@ -124,7 +155,7 @@ To change the API version (currently defaults to version 1)
|
|
124
155
|
|
125
156
|
#### Filter sets via query parameters
|
126
157
|
|
127
|
-
sets = Pokemon::Set.where(
|
158
|
+
sets = Pokemon::Set.where(q: 'legalities.standard:legal')
|
128
159
|
|
129
160
|
#### Get all Sets
|
130
161
|
|
@@ -142,6 +173,10 @@ To change the API version (currently defaults to version 1)
|
|
142
173
|
|
143
174
|
supertypes = Pokemon::Supertype.all
|
144
175
|
|
176
|
+
#### Get all Rarities
|
177
|
+
|
178
|
+
supertypes = Pokemon::Rarity.all
|
179
|
+
|
145
180
|
## Contributing
|
146
181
|
|
147
182
|
1. Fork it ( https://github.com/[my-github-username]/pokemon-tcg-sdk-ruby/fork )
|
data/Rakefile
CHANGED
@@ -5,7 +5,17 @@ require_relative 'lib/pokemon_tcg_sdk'
|
|
5
5
|
task :default => :test
|
6
6
|
|
7
7
|
Rake::TestTask.new do |t|
|
8
|
+
t.libs << "lib"
|
8
9
|
t.libs << "test"
|
9
10
|
t.test_files = FileList['test/*_test.rb']
|
10
11
|
t.verbose = true
|
12
|
+
end
|
13
|
+
|
14
|
+
Pokemon.configure do |config|
|
15
|
+
config.api_key = ENV['POKEMON_API_KEY']
|
16
|
+
end
|
17
|
+
|
18
|
+
task :card do
|
19
|
+
card = Pokemon::Card.find('xy1-1')
|
20
|
+
puts card.tcgplayer.updated_at
|
11
21
|
end
|
data/lib/pokemon_tcg_sdk.rb
CHANGED
@@ -5,14 +5,21 @@ require "pokemon_tcg_sdk/query_builder"
|
|
5
5
|
require "pokemon_tcg_sdk/rest_client"
|
6
6
|
require "pokemon_tcg_sdk/ability"
|
7
7
|
require "pokemon_tcg_sdk/attack"
|
8
|
-
require "pokemon_tcg_sdk/type_value"
|
9
8
|
require "pokemon_tcg_sdk/type"
|
10
9
|
require "pokemon_tcg_sdk/subtype"
|
11
10
|
require "pokemon_tcg_sdk/supertype"
|
12
11
|
require "pokemon_tcg_sdk/set"
|
12
|
+
require "pokemon_tcg_sdk/weakness"
|
13
|
+
require "pokemon_tcg_sdk/resistance"
|
14
|
+
require "pokemon_tcg_sdk/legalities"
|
15
|
+
require "pokemon_tcg_sdk/card_images"
|
16
|
+
require "pokemon_tcg_sdk/set_images"
|
17
|
+
require "pokemon_tcg_sdk/tcgplayer"
|
18
|
+
require "pokemon_tcg_sdk/ancient_trait"
|
19
|
+
require "pokemon_tcg_sdk/rarity"
|
13
20
|
|
14
21
|
module Pokemon
|
15
|
-
API_URL = 'https://
|
22
|
+
API_URL = 'https://beta.pokemontcg.io'
|
16
23
|
|
17
24
|
class << self
|
18
25
|
attr_writer :configuration
|
@@ -1,10 +1,14 @@
|
|
1
|
-
require_relative 'representers/ability_representer'
|
2
|
-
|
3
1
|
module Pokemon
|
4
2
|
class Ability
|
5
|
-
include Roar::JSON
|
6
|
-
include AbilityRepresenter
|
7
|
-
|
8
3
|
attr_accessor :name, :text, :type
|
4
|
+
|
5
|
+
def self.from_json(json)
|
6
|
+
ability = Ability.new
|
7
|
+
ability.name = json['name']
|
8
|
+
ability.text = json['text']
|
9
|
+
ability.type = json['type']
|
10
|
+
|
11
|
+
ability
|
12
|
+
end
|
9
13
|
end
|
10
14
|
end
|
@@ -1,10 +1,13 @@
|
|
1
|
-
require_relative 'representers/ancient_trait_representer'
|
2
|
-
|
3
1
|
module Pokemon
|
4
2
|
class AncientTrait
|
5
|
-
include Roar::JSON
|
6
|
-
include AncientTraitRepresenter
|
7
|
-
|
8
3
|
attr_accessor :name, :text
|
4
|
+
|
5
|
+
def self.from_json(json)
|
6
|
+
trait = AncientTrait.new
|
7
|
+
trait.name = json['name']
|
8
|
+
trait.text = json['text']
|
9
|
+
|
10
|
+
trait
|
11
|
+
end
|
9
12
|
end
|
10
13
|
end
|
@@ -1,10 +1,16 @@
|
|
1
|
-
require_relative 'representers/attack_representer'
|
2
|
-
|
3
1
|
module Pokemon
|
4
2
|
class Attack
|
5
|
-
include Roar::JSON
|
6
|
-
include AttackRepresenter
|
7
|
-
|
8
3
|
attr_accessor :cost, :name, :text, :damage, :converted_energy_cost
|
4
|
+
|
5
|
+
def self.from_json(json)
|
6
|
+
attack = Attack.new
|
7
|
+
attack.cost = json['cost']
|
8
|
+
attack.name = json['name']
|
9
|
+
attack.text = json['text']
|
10
|
+
attack.damage = json['damage']
|
11
|
+
attack.converted_energy_cost = json['convertedEnergyCost']
|
12
|
+
|
13
|
+
attack
|
14
|
+
end
|
9
15
|
end
|
10
16
|
end
|
data/lib/pokemon_tcg_sdk/card.rb
CHANGED
@@ -1,15 +1,39 @@
|
|
1
|
-
require_relative 'representers/card_representer'
|
2
|
-
|
3
1
|
module Pokemon
|
4
2
|
class Card
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
3
|
+
attr_accessor :id, :name, :supertype, :subtypes, :level, :hp, :types, :evolves_from, :evolves_to, :rules, :ancient_trait,
|
4
|
+
:abilities, :attacks, :weaknesses, :resistances, :retreat_cost, :converted_retreat_cost, :set, :number, :artist, :rarity, :national_pokedex_numbers,
|
5
|
+
:legalities, :tcgplayer, :images
|
6
|
+
|
7
|
+
def self.from_json(json)
|
8
|
+
card = Card.new
|
9
|
+
card.id = json['id']
|
10
|
+
card.name = json['name']
|
11
|
+
card.supertype = json['supertype']
|
12
|
+
card.subtypes = json['subtypes']
|
13
|
+
card.level = json['level']
|
14
|
+
card.hp = json['hp']
|
15
|
+
card.types = json['types']
|
16
|
+
card.evolves_from = json['evolvesFrom']
|
17
|
+
card.evolves_to = json['evolvesTo']
|
18
|
+
card.rules = json['rules']
|
19
|
+
card.ancient_trait = AncientTrait.from_json(json['ancientTrait']) if !json['ancientTrait'].nil?
|
20
|
+
card.abilities = json['abilities'].map {|ability_json| Ability.from_json(ability_json)} if !json['abilities'].nil?
|
21
|
+
card.attacks = json['attacks'].map {|attack_json| Attack.from_json(attack_json)} if !json['attacks'].nil?
|
22
|
+
card.weaknesses = json['weaknesses'].map {|weakness_json| Weakness.from_json(weakness_json)} if !json['weaknesses'].nil?
|
23
|
+
card.resistances = json['resistances'].map {|resistance_json| Resistance.from_json(resistance_json)} if !json['resistances'].nil?
|
24
|
+
card.retreat_cost = json['retreatCost']
|
25
|
+
card.converted_retreat_cost = json['convertedRetreatCost']
|
26
|
+
card.set = Set.from_json(json['set']) if !json['set'].nil?
|
27
|
+
card.number = json['number']
|
28
|
+
card.artist = json['artist']
|
29
|
+
card.rarity = json['rarity']
|
30
|
+
card.national_pokedex_numbers = json['nationalPokedexNumbers']
|
31
|
+
card.legalities = Legalities.from_json(json['legalities']) if !json['legalities'].nil?
|
32
|
+
card.tcgplayer = Tcgplayer.from_json(json['tcgplayer']) if !json['tcgplayer'].nil?
|
33
|
+
card.images = CardImages.from_json(json['images']) if !json['images'].nil?
|
34
|
+
card
|
35
|
+
end
|
36
|
+
|
13
37
|
# Get the resource string
|
14
38
|
#
|
15
39
|
# @return [String] The API resource string
|
@@ -35,7 +59,7 @@ module Pokemon
|
|
35
59
|
# Adds a parameter to the hash of query parameters
|
36
60
|
#
|
37
61
|
# @param args [Hash] the query parameter
|
38
|
-
# @return [
|
62
|
+
# @return [Array<Card>] Array of Card objects
|
39
63
|
def self.where(args)
|
40
64
|
QueryBuilder.new(Card).where(args)
|
41
65
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Pokemon
|
2
|
+
class Legalities
|
3
|
+
attr_accessor :expanded, :standard, :unlimited
|
4
|
+
|
5
|
+
def self.from_json(json)
|
6
|
+
legality = Legalities.new
|
7
|
+
legality.expanded = json['expanded']
|
8
|
+
legality.standard = json['standard']
|
9
|
+
legality.unlimited = json['unlimited']
|
10
|
+
|
11
|
+
legality
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'rest_client'
|
2
|
+
require 'json'
|
2
3
|
|
3
4
|
module Pokemon
|
4
5
|
class QueryBuilder
|
@@ -16,7 +17,7 @@ module Pokemon
|
|
16
17
|
# @return [QueryBuilder] the QueryBuilder
|
17
18
|
def where(args)
|
18
19
|
@query.merge!(args)
|
19
|
-
self
|
20
|
+
self.all
|
20
21
|
end
|
21
22
|
|
22
23
|
# Find a single resource by the resource id
|
@@ -25,12 +26,7 @@ module Pokemon
|
|
25
26
|
# @return [Object] the Type object response
|
26
27
|
def find(id)
|
27
28
|
response = RestClient.get("#{@type.Resource}/#{id}")
|
28
|
-
|
29
|
-
if response.body[singular_resource].nil?
|
30
|
-
raise ArgumentError, 'Resource not found'
|
31
|
-
end
|
32
|
-
|
33
|
-
type.new.from_json(response.body[singular_resource].to_json)
|
29
|
+
@type.from_json response['data']
|
34
30
|
end
|
35
31
|
|
36
32
|
# Get all resources from a query by paging through data
|
@@ -48,9 +44,9 @@ module Pokemon
|
|
48
44
|
|
49
45
|
while true
|
50
46
|
response = RestClient.get(@type.Resource, @query)
|
51
|
-
data = response
|
52
|
-
if !data.
|
53
|
-
data.each {|item| list << @type.
|
47
|
+
data = response['data']
|
48
|
+
if !data.nil? && data.any?
|
49
|
+
data.each {|item| list << @type.from_json(item)}
|
54
50
|
|
55
51
|
if !fetch_all
|
56
52
|
break
|
@@ -11,18 +11,30 @@ module Pokemon
|
|
11
11
|
else
|
12
12
|
query = "#{endpoint}?#{params_to_query(params)}"
|
13
13
|
end
|
14
|
-
|
15
|
-
client.get(query)
|
14
|
+
|
15
|
+
response = client.get(query)
|
16
|
+
|
17
|
+
case response.status
|
18
|
+
when 200
|
19
|
+
JSON.parse(response.body)
|
20
|
+
when 429
|
21
|
+
raise 'You have hit your rate limit.'
|
22
|
+
when 404
|
23
|
+
raise ArgumentError, 'Resource not found'
|
24
|
+
when 403
|
25
|
+
raise 'You are not authorized to access this endpoint. Please make sure you have a valid API Key. Go to https://dev.pokemontcg.io for more info.'
|
26
|
+
else
|
27
|
+
raise 'Something went wrong...please try again later.'
|
28
|
+
end
|
16
29
|
end
|
17
30
|
|
18
31
|
protected
|
19
32
|
|
20
33
|
def self.client
|
21
|
-
@client = Faraday.new
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
end
|
34
|
+
@client = Faraday.new(
|
35
|
+
url: "#{API_URL}/v2",
|
36
|
+
headers: {'Content-Type' => 'application/json', 'X-Api-Key' => Pokemon.configuration.api_key}
|
37
|
+
)
|
26
38
|
end
|
27
39
|
|
28
40
|
def self.params_to_query(params)
|
data/lib/pokemon_tcg_sdk/set.rb
CHANGED
@@ -1,12 +1,23 @@
|
|
1
|
-
require_relative 'representers/set_representer'
|
2
|
-
|
3
1
|
module Pokemon
|
4
2
|
class Set
|
5
|
-
|
6
|
-
|
3
|
+
attr_accessor :id, :name, :series, :printed_total, :total, :legalities, :ptcgo_code, :release_date, :updated_at, :images
|
4
|
+
|
5
|
+
def self.from_json(json)
|
6
|
+
set = Set.new
|
7
|
+
set.id = json['id']
|
8
|
+
set.name = json['name']
|
9
|
+
set.series = json['series']
|
10
|
+
set.printed_total = json['printedTotal']
|
11
|
+
set.total = json['total']
|
12
|
+
set.legalities = Legalities.from_json(json['legalities']) if !json['legalities'].nil?
|
13
|
+
set.ptcgo_code = json['ptcgoCode']
|
14
|
+
set.release_date = json['releaseDate']
|
15
|
+
set.updated_at = json['updatedAt']
|
16
|
+
set.images = SetImages.from_json(json['images']) if !json['images'].nil?
|
17
|
+
|
18
|
+
set
|
19
|
+
end
|
7
20
|
|
8
|
-
attr_accessor :code, :name, :series, :total_cards, :standard_legal, :release_date
|
9
|
-
|
10
21
|
# Get the resource string
|
11
22
|
#
|
12
23
|
# @return [String] The API resource string
|
@@ -32,7 +43,7 @@ module Pokemon
|
|
32
43
|
# Adds a parameter to the hash of query parameters
|
33
44
|
#
|
34
45
|
# @param args [Hash] the query parameter
|
35
|
-
# @return [
|
46
|
+
# @return [Array<Set>] Array of Set objects
|
36
47
|
def self.where(args)
|
37
48
|
QueryBuilder.new(Set).where(args)
|
38
49
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Pokemon
|
2
|
+
class Tcgplayer
|
3
|
+
attr_accessor :url, :prices, :updated_at
|
4
|
+
|
5
|
+
def self.from_json(json)
|
6
|
+
tcgplayer = Tcgplayer.new
|
7
|
+
tcgplayer.url = json['url']
|
8
|
+
tcgplayer.updated_at = json['updatedAt']
|
9
|
+
tcgplayer.prices = TcgPlayerPrices.from_json(json['prices']) if !json['prices'].nil?
|
10
|
+
|
11
|
+
tcgplayer
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class TcgPlayerPrices
|
16
|
+
attr_accessor :normal, :holofoil, :reverse_holofoil, :first_edition_holofoil, :first_edition_normal
|
17
|
+
|
18
|
+
def self.from_json(json)
|
19
|
+
price = TcgPlayerPrices.new
|
20
|
+
price.normal = TcgPlayerPriceValues.from_json(json['normal']) if json.key? 'normal'
|
21
|
+
price.holofoil = TcgPlayerPriceValues.from_json(json['holofoil']) if !json['holofoil'].nil?
|
22
|
+
price.reverse_holofoil = TcgPlayerPriceValues.from_json(json['reverseHolofoil']) if !json['reverseHolofoil'].nil?
|
23
|
+
price.first_edition_holofoil = TcgPlayerPriceValues.from_json(json['1stEditionHolofoil']) if !json['1stEditionHolofoil'].nil?
|
24
|
+
price.first_edition_normal = TcgPlayerPriceValues.from_json(json['1stEditionNormal']) if !json['1stEditionNormal'].nil?
|
25
|
+
|
26
|
+
price
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class TcgPlayerPriceValues
|
31
|
+
attr_accessor :low, :mid, :high, :market, :direct
|
32
|
+
|
33
|
+
def self.from_json(json)
|
34
|
+
values = TcgPlayerPriceValues.new
|
35
|
+
values.low = json['low']
|
36
|
+
values.mid = json['mid']
|
37
|
+
values.high = json['high']
|
38
|
+
values.market = json['market']
|
39
|
+
values.direct = json['direct']
|
40
|
+
|
41
|
+
values
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/pokemon_tcg_sdk/type.rb
CHANGED
data/pokemon_tcg_sdk.gemspec
CHANGED
@@ -17,18 +17,16 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_development_dependency "bundler", "~> 1.
|
21
|
-
spec.add_development_dependency "rake", "~>
|
22
|
-
spec.add_development_dependency "minitest", "~> 5.
|
23
|
-
spec.add_development_dependency "vcr", "~>
|
24
|
-
spec.add_development_dependency "webmock", "~>
|
25
|
-
spec.add_development_dependency "simplecov", "~> 0.
|
26
|
-
spec.add_development_dependency "coveralls", "~> 0.8"
|
27
|
-
spec.add_development_dependency "codeclimate-test-reporter", "~> 0.6"
|
20
|
+
spec.add_development_dependency "bundler", "~> 2.1.4"
|
21
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
22
|
+
spec.add_development_dependency "minitest", "~> 5.14.2"
|
23
|
+
spec.add_development_dependency "vcr", "~> 6.0"
|
24
|
+
spec.add_development_dependency "webmock", "~> 3.9"
|
25
|
+
spec.add_development_dependency "simplecov", "~> 0.19"
|
28
26
|
|
29
|
-
spec.add_dependency "roar", "~> 1.
|
30
|
-
spec.add_dependency "json", "~> 2.
|
31
|
-
spec.add_dependency "multi_json", "~> 1.
|
32
|
-
spec.add_dependency "multi_xml", "~> 0.
|
33
|
-
spec.add_dependency "faraday_middleware", "~> 0
|
27
|
+
spec.add_dependency "roar", "~> 1.1"
|
28
|
+
spec.add_dependency "json", "~> 2.3"
|
29
|
+
spec.add_dependency "multi_json", "~> 1.15"
|
30
|
+
spec.add_dependency "multi_xml", "~> 0.6"
|
31
|
+
spec.add_dependency "faraday_middleware", "~> 1.0"
|
34
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pokemon_tcg_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Backes
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,182 +16,154 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.1.4
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.1.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '13.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '13.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 5.14.2
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 5.14.2
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: vcr
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '6.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '6.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: webmock
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '3.9'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '3.9'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: simplecov
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0.
|
89
|
+
version: '0.19'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0.
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: coveralls
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0.8'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0.8'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: codeclimate-test-reporter
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0.6'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0.6'
|
96
|
+
version: '0.19'
|
125
97
|
- !ruby/object:Gem::Dependency
|
126
98
|
name: roar
|
127
99
|
requirement: !ruby/object:Gem::Requirement
|
128
100
|
requirements:
|
129
101
|
- - "~>"
|
130
102
|
- !ruby/object:Gem::Version
|
131
|
-
version: '1.
|
103
|
+
version: '1.1'
|
132
104
|
type: :runtime
|
133
105
|
prerelease: false
|
134
106
|
version_requirements: !ruby/object:Gem::Requirement
|
135
107
|
requirements:
|
136
108
|
- - "~>"
|
137
109
|
- !ruby/object:Gem::Version
|
138
|
-
version: '1.
|
110
|
+
version: '1.1'
|
139
111
|
- !ruby/object:Gem::Dependency
|
140
112
|
name: json
|
141
113
|
requirement: !ruby/object:Gem::Requirement
|
142
114
|
requirements:
|
143
115
|
- - "~>"
|
144
116
|
- !ruby/object:Gem::Version
|
145
|
-
version: '2.
|
117
|
+
version: '2.3'
|
146
118
|
type: :runtime
|
147
119
|
prerelease: false
|
148
120
|
version_requirements: !ruby/object:Gem::Requirement
|
149
121
|
requirements:
|
150
122
|
- - "~>"
|
151
123
|
- !ruby/object:Gem::Version
|
152
|
-
version: '2.
|
124
|
+
version: '2.3'
|
153
125
|
- !ruby/object:Gem::Dependency
|
154
126
|
name: multi_json
|
155
127
|
requirement: !ruby/object:Gem::Requirement
|
156
128
|
requirements:
|
157
129
|
- - "~>"
|
158
130
|
- !ruby/object:Gem::Version
|
159
|
-
version: '1.
|
131
|
+
version: '1.15'
|
160
132
|
type: :runtime
|
161
133
|
prerelease: false
|
162
134
|
version_requirements: !ruby/object:Gem::Requirement
|
163
135
|
requirements:
|
164
136
|
- - "~>"
|
165
137
|
- !ruby/object:Gem::Version
|
166
|
-
version: '1.
|
138
|
+
version: '1.15'
|
167
139
|
- !ruby/object:Gem::Dependency
|
168
140
|
name: multi_xml
|
169
141
|
requirement: !ruby/object:Gem::Requirement
|
170
142
|
requirements:
|
171
143
|
- - "~>"
|
172
144
|
- !ruby/object:Gem::Version
|
173
|
-
version: '0.
|
145
|
+
version: '0.6'
|
174
146
|
type: :runtime
|
175
147
|
prerelease: false
|
176
148
|
version_requirements: !ruby/object:Gem::Requirement
|
177
149
|
requirements:
|
178
150
|
- - "~>"
|
179
151
|
- !ruby/object:Gem::Version
|
180
|
-
version: '0.
|
152
|
+
version: '0.6'
|
181
153
|
- !ruby/object:Gem::Dependency
|
182
154
|
name: faraday_middleware
|
183
155
|
requirement: !ruby/object:Gem::Requirement
|
184
156
|
requirements:
|
185
157
|
- - "~>"
|
186
158
|
- !ruby/object:Gem::Version
|
187
|
-
version: '0
|
159
|
+
version: '1.0'
|
188
160
|
type: :runtime
|
189
161
|
prerelease: false
|
190
162
|
version_requirements: !ruby/object:Gem::Requirement
|
191
163
|
requirements:
|
192
164
|
- - "~>"
|
193
165
|
- !ruby/object:Gem::Version
|
194
|
-
version: '0
|
166
|
+
version: '1.0'
|
195
167
|
description: Pokémon TCG SDK is a wrapper around the Pokémon TCG API located at pokemontcg.io
|
196
168
|
email:
|
197
169
|
- backes.andrew@gmail.com
|
@@ -199,6 +171,7 @@ executables: []
|
|
199
171
|
extensions: []
|
200
172
|
extra_rdoc_files: []
|
201
173
|
files:
|
174
|
+
- ".editorconfig"
|
202
175
|
- ".gitignore"
|
203
176
|
- ".travis.yml"
|
204
177
|
- CODE_OF_CONDUCT.md
|
@@ -211,21 +184,21 @@ files:
|
|
211
184
|
- lib/pokemon_tcg_sdk/ancient_trait.rb
|
212
185
|
- lib/pokemon_tcg_sdk/attack.rb
|
213
186
|
- lib/pokemon_tcg_sdk/card.rb
|
187
|
+
- lib/pokemon_tcg_sdk/card_images.rb
|
214
188
|
- lib/pokemon_tcg_sdk/configuration.rb
|
189
|
+
- lib/pokemon_tcg_sdk/legalities.rb
|
215
190
|
- lib/pokemon_tcg_sdk/query_builder.rb
|
216
|
-
- lib/pokemon_tcg_sdk/
|
217
|
-
- lib/pokemon_tcg_sdk/
|
218
|
-
- lib/pokemon_tcg_sdk/representers/attack_representer.rb
|
219
|
-
- lib/pokemon_tcg_sdk/representers/card_representer.rb
|
220
|
-
- lib/pokemon_tcg_sdk/representers/set_representer.rb
|
221
|
-
- lib/pokemon_tcg_sdk/representers/type_value_representer.rb
|
191
|
+
- lib/pokemon_tcg_sdk/rarity.rb
|
192
|
+
- lib/pokemon_tcg_sdk/resistance.rb
|
222
193
|
- lib/pokemon_tcg_sdk/rest_client.rb
|
223
194
|
- lib/pokemon_tcg_sdk/set.rb
|
195
|
+
- lib/pokemon_tcg_sdk/set_images.rb
|
224
196
|
- lib/pokemon_tcg_sdk/subtype.rb
|
225
197
|
- lib/pokemon_tcg_sdk/supertype.rb
|
198
|
+
- lib/pokemon_tcg_sdk/tcgplayer.rb
|
226
199
|
- lib/pokemon_tcg_sdk/type.rb
|
227
|
-
- lib/pokemon_tcg_sdk/type_value.rb
|
228
200
|
- lib/pokemon_tcg_sdk/version.rb
|
201
|
+
- lib/pokemon_tcg_sdk/weakness.rb
|
229
202
|
- pokemon_tcg_sdk.gemspec
|
230
203
|
homepage: https://pokemontcg.io
|
231
204
|
licenses:
|
@@ -246,8 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
246
219
|
- !ruby/object:Gem::Version
|
247
220
|
version: '0'
|
248
221
|
requirements: []
|
249
|
-
|
250
|
-
rubygems_version: 2.5.1
|
222
|
+
rubygems_version: 3.1.4
|
251
223
|
signing_key:
|
252
224
|
specification_version: 4
|
253
225
|
summary: Pokémon TCG SDK for pokemontcg.io
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'roar/json'
|
2
|
-
require_relative 'attack_representer'
|
3
|
-
require_relative 'type_value_representer'
|
4
|
-
require_relative 'ability_representer'
|
5
|
-
require_relative 'ancient_trait_representer'
|
6
|
-
require_relative '../attack'
|
7
|
-
require_relative '../type_value'
|
8
|
-
require_relative '../ability'
|
9
|
-
require_relative '../ancient_trait'
|
10
|
-
|
11
|
-
module Pokemon
|
12
|
-
module CardRepresenter
|
13
|
-
include Roar::JSON
|
14
|
-
|
15
|
-
property :id
|
16
|
-
property :name
|
17
|
-
property :image_url, as: :imageUrl
|
18
|
-
property :subtype
|
19
|
-
property :supertype
|
20
|
-
property :ability, extend: AbilityRepresenter, class: Ability
|
21
|
-
property :ancient_trait, as: :ancientTrait, extend: AncientTraitRepresenter, class: AncientTrait
|
22
|
-
property :hp
|
23
|
-
property :number
|
24
|
-
property :artist
|
25
|
-
property :rarity
|
26
|
-
property :series
|
27
|
-
property :set
|
28
|
-
property :set_code, as: :setCode
|
29
|
-
property :national_pokedex_number, as: :nationalPokedexNumber
|
30
|
-
|
31
|
-
collection :retreat_cost, as: :retreatCost
|
32
|
-
collection :text
|
33
|
-
collection :types
|
34
|
-
collection :attacks, extend: AttackRepresenter, class: Attack
|
35
|
-
collection :weaknesses, extend: TypeValueRepresenter, class: TypeValue
|
36
|
-
collection :resistances, extend: TypeValueRepresenter, class: TypeValue
|
37
|
-
end
|
38
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'roar/json'
|
2
|
-
|
3
|
-
module Pokemon
|
4
|
-
module SetRepresenter
|
5
|
-
include Roar::JSON
|
6
|
-
|
7
|
-
property :code
|
8
|
-
property :name
|
9
|
-
property :series
|
10
|
-
property :total_cards, as: :totalCards
|
11
|
-
property :standard_legal, as: :standardLegal
|
12
|
-
property :release_date, as: :releaseDate
|
13
|
-
end
|
14
|
-
end
|