about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2017-09-30 08:23:48 -0400
committerKelly Rauchenberger <fefferburbia@gmail.com>2017-09-30 08:23:48 -0400
commita7060addea52af313ed85336dc37949ad8e69f05 (patch)
treee2a65669c9f30788c22635800180f5393c9ec49c
parent6dff23b065bd933ff2f571d2264c86902173d40b (diff)
downloadpokeviewer-a7060addea52af313ed85336dc37949ad8e69f05.tar.gz
pokeviewer-a7060addea52af313ed85336dc37949ad8e69f05.tar.bz2
pokeviewer-a7060addea52af313ed85336dc37949ad8e69f05.zip
Added gift ribbon descriptions
This is basically just for completeness because it is unknown whether
gift ribbons other than the National Ribbon and Earth Ribbon from
Pokémon Colosseum were ever distributed.
-rw-r--r--app/jobs/pokeviewer/extract_save_data_job.rb30
-rw-r--r--app/models/pokeviewer/gift_ribbon.rb5
-rw-r--r--app/models/pokeviewer/revision.rb14
-rw-r--r--app/models/pokeviewer/trainer.rb18
-rw-r--r--db/migrate/20170929221317_create_pokeviewer_gift_ribbons.rb9
-rw-r--r--db/migrate/20170930021856_add_gift_ribbons_to_trainer.rb34
-rw-r--r--db/seeds.rb65
-rw-r--r--test/dummy/db/schema.rb22
8 files changed, 189 insertions, 8 deletions
diff --git a/app/jobs/pokeviewer/extract_save_data_job.rb b/app/jobs/pokeviewer/extract_save_data_job.rb index f7b8f8f..b60a8c5 100644 --- a/app/jobs/pokeviewer/extract_save_data_job.rb +++ b/app/jobs/pokeviewer/extract_save_data_job.rb
@@ -22,6 +22,36 @@ module Pokeviewer
22 end 22 end
23 end 23 end
24 24
25 if args.key? "marineRibbon"
26 game.marine_ribbon = GiftRibbon.find_by_id(args["marineRibbon"])
27 end
28
29 if args.key? "landRibbon"
30 game.land_ribbon = GiftRibbon.find_by_id(args["landRibbon"])
31 end
32
33 if args.key? "skyRibbon"
34 game.sky_ribbon = GiftRibbon.find_by_id(args["skyRibbon"])
35 end
36
37 if args.key? "countryRibbon"
38 game.country_ribbon = GiftRibbon.find_by_id(args["countryRibbon"])
39 end
40
41 if args.key? "nationalRibbon"
42 game.national_ribbon = GiftRibbon.find_by_id(args["nationalRibbon"])
43 end
44
45 if args.key? "earthRibbon"
46 game.earth_ribbon = GiftRibbon.find_by_id(args["earthRibbon"])
47 end
48
49 if args.key? "worldRibbon"
50 game.world_ribbon = GiftRibbon.find_by_id(args["worldRibbon"])
51 end
52
53 game.save! if game.changed?
54
25 args["boxes"].each_with_index do |box_name,index| 55 args["boxes"].each_with_index do |box_name,index|
26 box = Box.find_or_initialize_by(trainer: game, number: index) 56 box = Box.find_or_initialize_by(trainer: game, number: index)
27 box.name = box_name 57 box.name = box_name
diff --git a/app/models/pokeviewer/gift_ribbon.rb b/app/models/pokeviewer/gift_ribbon.rb new file mode 100644 index 0000000..f8f4fa5 --- /dev/null +++ b/app/models/pokeviewer/gift_ribbon.rb
@@ -0,0 +1,5 @@
1module Pokeviewer
2 class GiftRibbon < ApplicationRecord
3 validates :description, presence: true
4 end
5end
diff --git a/app/models/pokeviewer/revision.rb b/app/models/pokeviewer/revision.rb index 4481bf0..ab4dfd3 100644 --- a/app/models/pokeviewer/revision.rb +++ b/app/models/pokeviewer/revision.rb
@@ -345,7 +345,7 @@ module Pokeviewer
345 result << { 345 result << {
346 filename: "marine-ribbon.png", 346 filename: "marine-ribbon.png",
347 name: "Marine Ribbon", 347 name: "Marine Ribbon",
348 description: "" 348 description: pokemon.trainer.gift_ribbon_description(:marine_ribbon)
349 } 349 }
350 end 350 end
351 351
@@ -353,7 +353,7 @@ module Pokeviewer
353 result << { 353 result << {
354 filename: "land-ribbon.png", 354 filename: "land-ribbon.png",
355 name: "Land Ribbon", 355 name: "Land Ribbon",
356 description: "" 356 description: pokemon.trainer.gift_ribbon_description(:land_ribbon)
357 } 357 }
358 end 358 end
359 359
@@ -361,7 +361,7 @@ module Pokeviewer
361 result << { 361 result << {
362 filename: "sky-ribbon.png", 362 filename: "sky-ribbon.png",
363 name: "Sky Ribbon", 363 name: "Sky Ribbon",
364 description: "" 364 description: pokemon.trainer.gift_ribbon_description(:sky_ribbon)
365 } 365 }
366 end 366 end
367 367
@@ -369,7 +369,7 @@ module Pokeviewer
369 result << { 369 result << {
370 filename: "country-ribbon.png", 370 filename: "country-ribbon.png",
371 name: "Country Ribbon", 371 name: "Country Ribbon",
372 description: "" 372 description: pokemon.trainer.gift_ribbon_description(:country_ribbon)
373 } 373 }
374 end 374 end
375 375
@@ -377,7 +377,7 @@ module Pokeviewer
377 result << { 377 result << {
378 filename: "national-ribbon.png", 378 filename: "national-ribbon.png",
379 name: "National Ribbon", 379 name: "National Ribbon",
380 description: "" 380 description: pokemon.trainer.gift_ribbon_description(:national_ribbon)
381 } 381 }
382 end 382 end
383 383
@@ -385,7 +385,7 @@ module Pokeviewer
385 result << { 385 result << {
386 filename: "earth-ribbon.png", 386 filename: "earth-ribbon.png",
387 name: "Earth Ribbon", 387 name: "Earth Ribbon",
388 description: "" 388 description: pokemon.trainer.gift_ribbon_description(:earth_ribbon)
389 } 389 }
390 end 390 end
391 391
@@ -393,7 +393,7 @@ module Pokeviewer
393 result << { 393 result << {
394 filename: "world-ribbon.png", 394 filename: "world-ribbon.png",
395 name: "World Ribbon", 395 name: "World Ribbon",
396 description: "" 396 description: pokemon.trainer.gift_ribbon_description(:world_ribbon)
397 } 397 }
398 end 398 end
399 399
diff --git a/app/models/pokeviewer/trainer.rb b/app/models/pokeviewer/trainer.rb index f890d61..7862c1e 100644 --- a/app/models/pokeviewer/trainer.rb +++ b/app/models/pokeviewer/trainer.rb
@@ -16,6 +16,14 @@ module Pokeviewer
16 enumerize :game, in: [:ruby, :sapphire, :firered, :leafgreen, :emerald], 16 enumerize :game, in: [:ruby, :sapphire, :firered, :leafgreen, :emerald],
17 predicates: true 17 predicates: true
18 18
19 belongs_to :marine_ribbon, class_name: "GiftRibbon", optional: true
20 belongs_to :land_ribbon, class_name: "GiftRibbon", optional: true
21 belongs_to :sky_ribbon, class_name: "GiftRibbon", optional: true
22 belongs_to :country_ribbon, class_name: "GiftRibbon", optional: true
23 belongs_to :national_ribbon, class_name: "GiftRibbon", optional: true
24 belongs_to :earth_ribbon, class_name: "GiftRibbon", optional: true
25 belongs_to :world_ribbon, class_name: "GiftRibbon", optional: true
26
19 def display_number 27 def display_number
20 number.to_s.rjust(5, '0') 28 number.to_s.rjust(5, '0')
21 end 29 end
@@ -23,5 +31,15 @@ module Pokeviewer
23 def party 31 def party
24 pokemon.where(box: nil).order("slot ASC") 32 pokemon.where(box: nil).order("slot ASC")
25 end 33 end
34
35 def gift_ribbon_description(ribbon)
36 gift_ribbon = send ribbon
37
38 if gift_ribbon.nil?
39 ""
40 else
41 gift_ribbon.description
42 end
43 end
26 end 44 end
27end 45end
diff --git a/db/migrate/20170929221317_create_pokeviewer_gift_ribbons.rb b/db/migrate/20170929221317_create_pokeviewer_gift_ribbons.rb new file mode 100644 index 0000000..deedc80 --- /dev/null +++ b/db/migrate/20170929221317_create_pokeviewer_gift_ribbons.rb
@@ -0,0 +1,9 @@
1class CreatePokeviewerGiftRibbons < ActiveRecord::Migration[5.1]
2 def change
3 create_table :pokeviewer_gift_ribbons do |t|
4 t.string :description, null: false
5
6 t.timestamps
7 end
8 end
9end
diff --git a/db/migrate/20170930021856_add_gift_ribbons_to_trainer.rb b/db/migrate/20170930021856_add_gift_ribbons_to_trainer.rb new file mode 100644 index 0000000..2a5f9b3 --- /dev/null +++ b/db/migrate/20170930021856_add_gift_ribbons_to_trainer.rb
@@ -0,0 +1,34 @@
1class AddGiftRibbonsToTrainer < ActiveRecord::Migration[5.1]
2 def change
3 change_table :pokeviewer_trainers do |t|
4 t.references :marine_ribbon, null: true
5 t.references :land_ribbon, null: true
6 t.references :sky_ribbon, null: true
7 t.references :country_ribbon, null: true
8 t.references :national_ribbon, null: true
9 t.references :earth_ribbon, null: true
10 t.references :world_ribbon, null: true
11 end
12
13 add_foreign_key :pokeviewer_trainers, :pokeviewer_gift_ribbons,
14 column: :marine_ribbon_id
15
16 add_foreign_key :pokeviewer_trainers, :pokeviewer_gift_ribbons,
17 column: :land_ribbon_id
18
19 add_foreign_key :pokeviewer_trainers, :pokeviewer_gift_ribbons,
20 column: :sky_ribbon_id
21
22 add_foreign_key :pokeviewer_trainers, :pokeviewer_gift_ribbons,
23 column: :country_ribbon_id
24
25 add_foreign_key :pokeviewer_trainers, :pokeviewer_gift_ribbons,
26 column: :national_ribbon_id
27
28 add_foreign_key :pokeviewer_trainers, :pokeviewer_gift_ribbons,
29 column: :earth_ribbon_id
30
31 add_foreign_key :pokeviewer_trainers, :pokeviewer_gift_ribbons,
32 column: :world_ribbon_id
33 end
34end
diff --git a/db/seeds.rb b/db/seeds.rb index 221538e..500e3c6 100644 --- a/db/seeds.rb +++ b/db/seeds.rb
@@ -954,4 +954,69 @@ module Pokeviewer
954 Location.create(id: 210, name: "Altering Cave") 954 Location.create(id: 210, name: "Altering Cave")
955 Location.create(id: 211, name: "Navel Rock") 955 Location.create(id: 211, name: "Navel Rock")
956 Location.create(id: 212, name: "Trainer Hill") 956 Location.create(id: 212, name: "Trainer Hill")
957
958 GiftRibbon.create(id: 1, description: "2003 REGIONAL TOURNEY CHAMPION RIBBON")
959 GiftRibbon.create(id: 2, description: "2003 NATIONAL TOURNEY CHAMPION RIBBON")
960 GiftRibbon.create(id: 3, description: "2003 GLOBAL CUP CHAMPION RIBBON")
961 GiftRibbon.create(id: 4, description: "2003 REGIONAL TOURNEY Runner-up RIBBON")
962 GiftRibbon.create(id: 5, description: "2003 NATIONAL TOURNEY Runner-up RIBBON")
963 GiftRibbon.create(id: 6, description: "2003 GLOBAL CUP Runner-up RIBBON")
964 GiftRibbon.create(id: 7, description: "2003 REGIONAL TOURNEY Semifinalist RIBBON")
965 GiftRibbon.create(id: 8, description: "2003 NATIONAL TOURNEY Semifinalist RIBBON")
966 GiftRibbon.create(id: 9, description: "2003 GLOBAL CUP Semifinalist RIBBON")
967 GiftRibbon.create(id: 10, description: "2004 REGIONAL TOURNEY CHAMPION RIBBON")
968 GiftRibbon.create(id: 11, description: "2004 NATIONAL TOURNEY CHAMPION RIBBON")
969 GiftRibbon.create(id: 12, description: "2004 GLOBAL CUP CHAMPION RIBBON")
970 GiftRibbon.create(id: 13, description: "2004 REGIONAL TOURNEY Runner-up RIBBON")
971 GiftRibbon.create(id: 14, description: "2004 NATIONAL TOURNEY Runner-up RIBBON")
972 GiftRibbon.create(id: 15, description: "2004 GLOBAL CUP Runner-up RIBBON")
973 GiftRibbon.create(id: 16, description: "2004 REGIONAL TOURNEY Semifinalist RIBBON")
974 GiftRibbon.create(id: 17, description: "2004 NATIONAL TOURNEY Semifinalist RIBBON")
975 GiftRibbon.create(id: 18, description: "2004 GLOBAL CUP Semifinalist RIBBON")
976 GiftRibbon.create(id: 19, description: "2005 REGIONAL TOURNEY CHAMPION RIBBON")
977 GiftRibbon.create(id: 20, description: "2005 NATIONAL TOURNEY CHAMPION RIBBON")
978 GiftRibbon.create(id: 21, description: "2005 GLOBAL CUP CHAMPION RIBBON")
979 GiftRibbon.create(id: 22, description: "2005 REGIONAL TOURNEY Runner-up RIBBON")
980 GiftRibbon.create(id: 23, description: "2005 NATIONAL TOURNEY Runner-up RIBBON")
981 GiftRibbon.create(id: 24, description: "2005 GLOBAL CUP Runner-up RIBBON")
982 GiftRibbon.create(id: 25, description: "2005 REGIONAL TOURNEY Semifinalist RIBBON")
983 GiftRibbon.create(id: 26, description: "2005 NATIONAL TOURNEY Semifinalist RIBBON")
984 GiftRibbon.create(id: 27, description: "2005 GLOBAL CUP Semifinalist RIBBON")
985 GiftRibbon.create(id: 28, description: "POKéMON BATTLE CUP CHAMPION RIBBON")
986 GiftRibbon.create(id: 29, description: "POKéMON BATTLE CUP Runner-up RIBBON")
987 GiftRibbon.create(id: 30, description: "POKéMON BATTLE CUP Semifinalist RIBBON")
988 GiftRibbon.create(id: 31, description: "POKéMON BATTLE CUP Participation RIBBON")
989 GiftRibbon.create(id: 32, description: "POKéMON LEAGUE CHAMPION RIBBON")
990 GiftRibbon.create(id: 33, description: "POKéMON LEAGUE Runner-up RIBBON")
991 GiftRibbon.create(id: 34, description: "POKéMON LEAGUE Semifinalist RIBBON")
992 GiftRibbon.create(id: 35, description: "POKéMON LEAGUE Participation RIBBON")
993 GiftRibbon.create(id: 36, description: "ADVANCE CUP CHAMPION RIBBON")
994 GiftRibbon.create(id: 37, description: "ADVANCE CUP Runner-up RIBBON")
995 GiftRibbon.create(id: 38, description: "ADVANCE CUP Semifinalist RIBBON")
996 GiftRibbon.create(id: 39, description: "ADVANCE CUP Participation RIBBON")
997 GiftRibbon.create(id: 40, description: "POKéMON Tournament Participation RIBBON")
998 GiftRibbon.create(id: 41, description: "POKéMON Event Participation RIBBON")
999 GiftRibbon.create(id: 42, description: "POKéMON Festival Participation RIBBON")
1000 GiftRibbon.create(id: 43, description: "Difficulty-clearing Commemorative RIBBON")
1001 GiftRibbon.create(id: 44, description: "RIBBON awarded for clearing all difficulties.")
1002 GiftRibbon.create(id: 45, description: "100-straight Win Commemorative RIBBON")
1003 GiftRibbon.create(id: 46, description: "DARKNESS TOWER Clear Commemorative RIBBON")
1004 GiftRibbon.create(id: 47, description: "RED TOWER Clear Commemorative RIBBON")
1005 GiftRibbon.create(id: 48, description: "BLACKIRON TOWER Clear Commemorative RIBBON")
1006 GiftRibbon.create(id: 49, description: "FINAL TOWER Clear Commemorative RIBBON")
1007 GiftRibbon.create(id: 50, description: "Legend-making Commemorative RIBBON")
1008 GiftRibbon.create(id: 51, description: "POKéMON CENTER TOKYO Commemorative RIBBON")
1009 GiftRibbon.create(id: 52, description: "POKéMON CENTER OSAKA Commemorative RIBBON")
1010 GiftRibbon.create(id: 53, description: "POKéMON CENTER NAGOYA Commemorative RIBBON")
1011 GiftRibbon.create(id: 54, description: "POKéMON CENTER NY Commemorative RIBBON")
1012 GiftRibbon.create(id: 55, description: "Summer Holidays RIBBON")
1013 GiftRibbon.create(id: 56, description: "Winter Holidays RIBBON")
1014 GiftRibbon.create(id: 57, description: "Spring Holidays RIBBON")
1015 GiftRibbon.create(id: 58, description: "Evergreen RIBBON")
1016 GiftRibbon.create(id: 59, description: "Special Holiday RIBBON")
1017 GiftRibbon.create(id: 60, description: "Hard Worker RIBBON")
1018 GiftRibbon.create(id: 61, description: "Lots of Friends RIBBON")
1019 GiftRibbon.create(id: 62, description: "Full of Energy RIBBON")
1020 GiftRibbon.create(id: 63, description: "A commemorative RIBBON for a loved POKéMON.")
1021 GiftRibbon.create(id: 64, description: "RIBBON that shows love for POKéMON.")
957end 1022end
diff --git a/test/dummy/db/schema.rb b/test/dummy/db/schema.rb index 1dfb59a..9530010 100644 --- a/test/dummy/db/schema.rb +++ b/test/dummy/db/schema.rb
@@ -10,7 +10,7 @@
10# 10#
11# It's strongly recommended that you check this file into your version control system. 11# It's strongly recommended that you check this file into your version control system.
12 12
13ActiveRecord::Schema.define(version: 20170929211529) do 13ActiveRecord::Schema.define(version: 20170930021856) do
14 14
15 create_table "pokeviewer_boxes", force: :cascade do |t| 15 create_table "pokeviewer_boxes", force: :cascade do |t|
16 t.integer "trainer_id", null: false 16 t.integer "trainer_id", null: false
@@ -22,6 +22,12 @@ ActiveRecord::Schema.define(version: 20170929211529) do
22 t.index ["trainer_id"], name: "index_pokeviewer_boxes_on_trainer_id" 22 t.index ["trainer_id"], name: "index_pokeviewer_boxes_on_trainer_id"
23 end 23 end
24 24
25 create_table "pokeviewer_gift_ribbons", force: :cascade do |t|
26 t.string "description", null: false
27 t.datetime "created_at", null: false
28 t.datetime "updated_at", null: false
29 end
30
25 create_table "pokeviewer_locations", force: :cascade do |t| 31 create_table "pokeviewer_locations", force: :cascade do |t|
26 t.string "name", null: false 32 t.string "name", null: false
27 t.datetime "created_at", null: false 33 t.datetime "created_at", null: false
@@ -129,7 +135,21 @@ ActiveRecord::Schema.define(version: 20170929211529) do
129 t.integer "number", null: false 135 t.integer "number", null: false
130 t.datetime "created_at", null: false 136 t.datetime "created_at", null: false
131 t.datetime "updated_at", null: false 137 t.datetime "updated_at", null: false
138 t.integer "marine_ribbon_id"
139 t.integer "land_ribbon_id"
140 t.integer "sky_ribbon_id"
141 t.integer "country_ribbon_id"
142 t.integer "national_ribbon_id"
143 t.integer "earth_ribbon_id"
144 t.integer "world_ribbon_id"
145 t.index ["country_ribbon_id"], name: "index_pokeviewer_trainers_on_country_ribbon_id"
146 t.index ["earth_ribbon_id"], name: "index_pokeviewer_trainers_on_earth_ribbon_id"
147 t.index ["land_ribbon_id"], name: "index_pokeviewer_trainers_on_land_ribbon_id"
148 t.index ["marine_ribbon_id"], name: "index_pokeviewer_trainers_on_marine_ribbon_id"
132 t.index ["name", "number"], name: "index_pokeviewer_trainers_on_name_and_number", unique: true 149 t.index ["name", "number"], name: "index_pokeviewer_trainers_on_name_and_number", unique: true
150 t.index ["national_ribbon_id"], name: "index_pokeviewer_trainers_on_national_ribbon_id"
151 t.index ["sky_ribbon_id"], name: "index_pokeviewer_trainers_on_sky_ribbon_id"
152 t.index ["world_ribbon_id"], name: "index_pokeviewer_trainers_on_world_ribbon_id"
133 end 153 end
134 154
135end 155end