pokeapi 0.1.1 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e2dbd18db0c4cd72a952802659ed6ec3f0f68fd
4
- data.tar.gz: 33d2aac81d880c8d8dde2d5f89deb409e5a4f9c7
3
+ metadata.gz: 40816f1238320795f9a1fd2d3fd04cabfb90dab8
4
+ data.tar.gz: 7ab4819c43275bdc5938052f46340f292ee021f0
5
5
  SHA512:
6
- metadata.gz: 5385481672a79046f1d5909d1401b8fa40370ba0834a990b837ec09b981a12fe9c5555119fb514f1e6117b81a8020cc2417c9c025ab922491dafc8efa0873173
7
- data.tar.gz: cee1a9870567e2f62a5cdf1a782232fc76bdc6eddd1618fa1b66a382b936bd32162e41c53363b48322abf936d06ebdca77158f17dd8a576fa7640b9af08b0917
6
+ metadata.gz: 329e351b4541d4b15e0454c43d345a27013853a851ec9d3965d268b24d4c5d46bd02a0a49a8172d3160a7c1b9e5ad5cb06f26756c90ee8a47e1d17c1dc52a78f
7
+ data.tar.gz: 3a266eda7b2a66be70803af8995109bb92b169ab2f3e11e1f00976189803a7c8fe027a0efcb6a326e7d96d1e7b79b3d392082f1cdc21eb658f5f9a182b3044e6
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.3.1
data/lib/pokeapi.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "hashie"
2
2
  require "pokeapi/version"
3
+ require "pokeapi/parser/pokemon"
3
4
  require "pokeapi/base"
4
5
  require "pokeapi/ability"
5
6
  require "pokeapi/move"
@@ -1,7 +1,8 @@
1
1
  module PokeAPI
2
2
  class Ability < Base
3
+ property :name
3
4
  property :is_hidden
4
5
  property :slot
5
- property :ability
6
+ property :url
6
7
  end
7
8
  end
data/lib/pokeapi/move.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module PokeAPI
2
2
  class Move < Base
3
- property :move
4
- property :version_group_details
3
+ property :name
4
+ property :url
5
5
  end
6
6
  end
@@ -0,0 +1,73 @@
1
+ module PokeAPI
2
+ module Parser
3
+ class Pokemon
4
+ def self.parse(data)
5
+ new(data).parse
6
+ end
7
+
8
+ def initialize(data)
9
+ @data = data.clone
10
+ @abilities = @data.delete :abilities
11
+ @moves = @data.delete :moves
12
+ @types = @data.delete :types
13
+ @stats = @data.delete :stats
14
+ @thumbnail = @data.delete(:sprites).delete(:front_default)
15
+ end
16
+
17
+ def parse
18
+ {
19
+ id: @data[:id],
20
+ name: @data[:name],
21
+ abilities: abilities,
22
+ moves: moves,
23
+ types: types,
24
+ stats: stats,
25
+ thumbnail: @thumbnail,
26
+ }
27
+ end
28
+
29
+ private
30
+
31
+ def abilities
32
+ @abilities.map do |ability|
33
+ {
34
+ name: ability[:ability][:name],
35
+ url: ability[:ability][:url],
36
+ is_hidden: ability[:is_hidden],
37
+ slot: ability[:slot],
38
+ }
39
+ end.sort_by { |ability| ability[:slot] }
40
+ end
41
+
42
+ def moves
43
+ @moves.map do |move|
44
+ {
45
+ name: move[:move][:name],
46
+ url: move[:move][:url],
47
+ }
48
+ end
49
+ end
50
+
51
+ def types
52
+ @types.map do |type|
53
+ {
54
+ name: type[:type][:name],
55
+ slot: type[:slot],
56
+ url: type[:type][:url],
57
+ }
58
+ end.sort_by { |type| type[:slot] }
59
+ end
60
+
61
+ def stats
62
+ @stats.map do |stat|
63
+ {
64
+ name: stat[:stat][:name],
65
+ url: stat[:stat][:url],
66
+ base_stat: stat[:base_stat],
67
+ effort: stat[:effort],
68
+ }
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -3,15 +3,10 @@ module PokeAPI
3
3
  property :id
4
4
  property :name
5
5
  property :abilities, coerce: Array[Ability]
6
- property :held_items, coerce: Array[Hash]
7
6
  property :moves, coerce: Array[Move]
8
7
  property :types, coerce: Array[Type]
9
8
  property :stats, coerce: Array[Stat]
10
- property :sprites
11
-
12
- def sprite
13
- sprites[:front_default]
14
- end
9
+ property :thumbnail
15
10
 
16
11
  class << self
17
12
  def find(id)
@@ -9,7 +9,8 @@ module PokeAPI
9
9
 
10
10
  class << self
11
11
  def pokemon(id)
12
- get("#{POKEMON_ENDPOINT}#{id}")
12
+ data = get("#{POKEMON_ENDPOINT}#{id}")
13
+ Parser::Pokemon.parse(data)
13
14
  end
14
15
 
15
16
  def get(path)
data/lib/pokeapi/stat.rb CHANGED
@@ -1,10 +1,8 @@
1
1
  module PokeAPI
2
2
  class Stat < Base
3
+ property :name
4
+ property :url
3
5
  property :base_stat
4
- property :stat
5
-
6
- def name
7
- stat[:name]
8
- end
6
+ property :effort
9
7
  end
10
8
  end
data/lib/pokeapi/type.rb CHANGED
@@ -1,10 +1,7 @@
1
1
  module PokeAPI
2
2
  class Type < Base
3
+ property :name
4
+ property :url
3
5
  property :slot
4
- property :type
5
-
6
- def name
7
- type[:name]
8
- end
9
6
  end
10
7
  end
@@ -1,3 +1,3 @@
1
1
  module PokeAPI
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pokeapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edgar Ortega
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-05-26 00:00:00.000000000 Z
11
+ date: 2016-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -89,6 +89,7 @@ extra_rdoc_files: []
89
89
  files:
90
90
  - ".gitignore"
91
91
  - ".rspec"
92
+ - ".ruby-version"
92
93
  - ".travis.yml"
93
94
  - CODE_OF_CONDUCT.md
94
95
  - Gemfile
@@ -101,6 +102,7 @@ files:
101
102
  - lib/pokeapi/ability.rb
102
103
  - lib/pokeapi/base.rb
103
104
  - lib/pokeapi/move.rb
105
+ - lib/pokeapi/parser/pokemon.rb
104
106
  - lib/pokeapi/pokemon.rb
105
107
  - lib/pokeapi/requester.rb
106
108
  - lib/pokeapi/stat.rb