pokeapi 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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