pokemon_zukan 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -1,7 +1,7 @@
1
1
  = pokemon_zukan
2
2
 
3
3
  ポケモン図鑑のgemです。
4
- ポケモンXYの全国図鑑に対応しています。
4
+ ポケモンXYの全国図鑑に対応しています
5
5
 
6
6
  == Install
7
7
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.0
1
+ 0.5.0
data/lib/pokemon_zukan.rb CHANGED
@@ -1,6 +1,24 @@
1
1
  # coding: utf-8
2
2
  require 'json'
3
3
 
4
+ class Numeric
5
+ def to_pokemon
6
+ PokemonZukan::find self
7
+ end
8
+ end
9
+
10
+ class String
11
+ def to_pokemon
12
+ PokemonZukan::find_by_name self
13
+ end
14
+ end
15
+
16
+ class Array
17
+ def to_pokemon
18
+ self.map{|value| value.to_pokemon}
19
+ end
20
+ end
21
+
4
22
  class PokemonZukan
5
23
 
6
24
  DATA_DIR = File.dirname(__FILE__) + '/../data'
@@ -8,13 +26,13 @@ class PokemonZukan
8
26
  attr_reader :no, :name, :type, :classification, :tribeValue, :height, :weight
9
27
 
10
28
  def initialize(data={})
11
- @no = data["no"]
12
- @name = data["name"]
13
- @type = data["type"]
29
+ @no = data["no"]
30
+ @name = data["name"]
31
+ @type = data["type"]
14
32
  @classification = data["classification"]
15
- @tribeValue = data["tribeValue"]
16
- @height = data["height"]
17
- @weight = data["weight"]
33
+ @tribeValue = data["tribeValue"]
34
+ @height = data["height"]
35
+ @weight = data["weight"]
18
36
  end
19
37
 
20
38
  def self.find(no="", series="xy")
@@ -24,15 +42,11 @@ class PokemonZukan
24
42
  file.close
25
43
 
26
44
  hash = json.parse()
27
- return PokemonZukan.new(hash)
45
+ PokemonZukan.new(hash)
28
46
  end
29
47
 
30
48
  def self.find_all(nos=[], series="xy")
31
- retData = []
32
- nos.each do |no|
33
- retData.push self.find(no, series)
34
- end
35
- return retData
49
+ nos.map{|no| PokemonZukan::find(no, series)}
36
50
  end
37
51
 
38
52
  def self.find_by_name(name="", series="xy")
@@ -41,15 +55,11 @@ class PokemonZukan
41
55
  file.close
42
56
 
43
57
  hash = json.parse()
44
- return self.find(hash[name], series)
58
+ PokemonZukan::find(hash[name], series)
45
59
  end
46
60
 
47
61
  def self.find_all_by_name(names=[], series="xy")
48
- retData = []
49
- names.each do |name|
50
- retData.push self.find_by_name(name, series)
51
- end
52
- return retData
62
+ names.map{|name| PokemonZukan::find_by_name(name, series)}
53
63
  end
54
64
 
55
65
  def self.find_by_type(type="", series="xy")
@@ -58,15 +68,11 @@ class PokemonZukan
58
68
  file.close
59
69
 
60
70
  hash = json.parse()
61
- return self.find_all(hash[type], series)
71
+ PokemonZukan::find_all(hash[type], series)
62
72
  end
63
73
 
64
74
  def self.find_all_by_type(types=[], series="xy")
65
- retData = []
66
- types.each do |type|
67
- retData.push self.find_by_type(type, series)
68
- end
69
- return retData
75
+ types.map{|type| PokemonZukan::find_by_type(type, series)}
70
76
  end
71
77
 
72
78
  def next(series="xy")
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "pokemon_zukan"
8
- s.version = "0.4.0"
8
+ s.version = "0.5.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["keitarou.oonishi"]
12
- s.date = "2013-11-10"
12
+ s.date = "2013-12-24"
13
13
  s.email = "keitarou.oonishi@gmail.com"
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE.txt",
@@ -1,7 +1,69 @@
1
- require 'helper'
1
+ #coding: utf-8
2
+ require './helper.rb'
3
+ require './../lib/pokemon_zukan'
2
4
 
3
5
  class TestPokemonZukan < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
+
7
+ def test_find
8
+ pokemon = PokemonZukan::find 1
9
+ assert_equal("フシギダネ", pokemon.name)
10
+ end
11
+
12
+ def test_Numeric_to_pokemon
13
+ pokemon = 1.to_pokemon
14
+ assert_equal("フシギダネ", pokemon.name)
15
+ end
16
+
17
+ def test_String_to_pokemon
18
+ pokemon = "フシギダネ".to_pokemon
19
+ assert_equal("フシギダネ", pokemon.name)
20
+ end
21
+
22
+ def test_Array_to_pokemon
23
+ pokemons = [1, 2, "フシギバナ"].to_pokemon
24
+ assert_equal("フシギダネ", pokemons[0].name)
25
+ assert_equal("フシギソウ", pokemons[1].name)
26
+ assert_equal("フシギバナ", pokemons[2].name)
27
+ end
28
+
29
+ def test_find_all
30
+ pokemons = PokemonZukan::find_all([1, 2, 3])
31
+ assert_equal("フシギダネ", pokemons[0].name)
32
+ assert_equal("フシギソウ", pokemons[1].name)
33
+ assert_equal("フシギバナ", pokemons[2].name)
34
+ end
35
+
36
+ def test_find_by_name
37
+ pokemon = PokemonZukan::find_by_name("フシギダネ")
38
+ assert_equal("フシギダネ", pokemon.name)
39
+ end
40
+
41
+ def test_find_all_by_name
42
+ pokemons = PokemonZukan::find_all_by_name(["フシギダネ", "フシギソウ", "フシギバナ"])
43
+ assert_equal("フシギダネ", pokemons[0].name)
44
+ assert_equal("フシギソウ", pokemons[1].name)
45
+ assert_equal("フシギバナ", pokemons[2].name)
46
+ end
47
+
48
+ def test_find_by_type
49
+ pokemons = PokemonZukan::find_by_type "くさ"
50
+ assert_equal("くさ", pokemons[0].type[0])
51
+ end
52
+
53
+ def test_find_all_by_type
54
+ pokemons = PokemonZukan::find_all_by_type(["くさ", "ほのお"])
55
+ assert_equal("くさ", pokemons[0][0].type[0])
56
+ end
57
+
58
+ def test_next
59
+ pokemon1 = 1.to_pokemon
60
+ pokemon2 = 2.to_pokemon
61
+ assert_equal(pokemon2.name, pokemon1.next.name)
62
+ end
63
+
64
+ def test_prev
65
+ pokemon1 = 1.to_pokemon
66
+ pokemon2 = 2.to_pokemon
67
+ assert_equal(pokemon1.name, pokemon2.prev.name)
6
68
  end
7
69
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pokemon_zukan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-10 00:00:00.000000000 Z
12
+ date: 2013-12-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -845,7 +845,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
845
845
  version: '0'
846
846
  segments:
847
847
  - 0
848
- hash: -241200949417113182
848
+ hash: 1404890183398834862
849
849
  required_rubygems_version: !ruby/object:Gem::Requirement
850
850
  none: false
851
851
  requirements: