about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-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