about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2017-09-23 10:30:23 -0400
committerKelly Rauchenberger <fefferburbia@gmail.com>2017-09-23 10:30:23 -0400
commitf6cdc2fd2f50224fb7dd31d3ccb374cf4ffe7b6d (patch)
tree460dae3bae5a4ac961e6db0d9ca5c2b99bbdca0e
parent1d621019d7bf74b65898e009aef31766c7e7572b (diff)
downloadpokeviewer-f6cdc2fd2f50224fb7dd31d3ccb374cf4ffe7b6d.tar.gz
pokeviewer-f6cdc2fd2f50224fb7dd31d3ccb374cf4ffe7b6d.tar.bz2
pokeviewer-f6cdc2fd2f50224fb7dd31d3ccb374cf4ffe7b6d.zip
Moved revision moves into revision table
This is a retroactive schema change, so there's no easy way to migrate
into it without losing data, but this is so early into the development
of this project that it really doesn't matter.
-rw-r--r--app/models/pokeviewer/revision.rb33
-rw-r--r--app/models/pokeviewer/revision_move.rb19
-rw-r--r--db/migrate/20170917011258_create_pokeviewer_revision_moves.rb20
-rw-r--r--db/migrate/20170917011258_create_pokeviewer_revisions.rb (renamed from db/migrate/20170917002857_create_pokeviewer_revisions.rb)20
-rw-r--r--test/dummy/db/schema.rb24
5 files changed, 61 insertions, 55 deletions
diff --git a/app/models/pokeviewer/revision.rb b/app/models/pokeviewer/revision.rb index a8f8ab2..9d1ddf4 100644 --- a/app/models/pokeviewer/revision.rb +++ b/app/models/pokeviewer/revision.rb
@@ -3,10 +3,6 @@ module Pokeviewer
3 belongs_to :pokemon 3 belongs_to :pokemon
4 acts_as_sequenced scope: :pokemon_id 4 acts_as_sequenced scope: :pokemon_id
5 5
6 has_many :revision_moves, -> { order "number ASC" }
7 has_many :moves, through: :revision_moves
8
9 validates :moves, presence: true
10 validates :nickname, presence: true 6 validates :nickname, presence: true
11 7
12 validates :experience, presence: true, 8 validates :experience, presence: true,
@@ -68,5 +64,34 @@ module Pokeviewer
68 greater_than_or_equal_to: 0, 64 greater_than_or_equal_to: 0,
69 less_than_or_equal_to: 10, 65 less_than_or_equal_to: 10,
70 only_integer: true } 66 only_integer: true }
67
68 belongs_to :move_1, class_name: "Move"
69 belongs_to :move_2, class_name: "Move", optional: true
70 belongs_to :move_3, class_name: "Move", optional: true
71 belongs_to :move_4, class_name: "Move", optional: true
72
73 validates :move_1_pp_bonuses, presence: true,
74 numericality: {
75 greater_than_or_equal_to: 0,
76 less_than_or_equal_to: 3,
77 only_integer: true}
78
79 validates :move_2_pp_bonuses, presence: true,
80 numericality: {
81 greater_than_or_equal_to: 0,
82 less_than_or_equal_to: 3,
83 only_integer: true}
84
85 validates :move_3_pp_bonuses, presence: true,
86 numericality: {
87 greater_than_or_equal_to: 0,
88 less_than_or_equal_to: 3,
89 only_integer: true}
90
91 validates :move_4_pp_bonuses, presence: true,
92 numericality: {
93 greater_than_or_equal_to: 0,
94 less_than_or_equal_to: 3,
95 only_integer: true}
71 end 96 end
72end 97end
diff --git a/app/models/pokeviewer/revision_move.rb b/app/models/pokeviewer/revision_move.rb deleted file mode 100644 index 74b9e9e..0000000 --- a/app/models/pokeviewer/revision_move.rb +++ /dev/null
@@ -1,19 +0,0 @@
1module Pokeviewer
2 class RevisionMove < ApplicationRecord
3 belongs_to :revision
4 belongs_to :move
5
6 validates :number, presence: true,
7 numericality: {
8 greater_than_or_equal_to: 1,
9 less_than_or_equal_to: 4,
10 only_integer: true },
11 uniqueness: { scope: :revision_id }
12
13 validates :pp_bonuses, presence: true,
14 numericality: {
15 greater_than_or_equal_to: 0,
16 less_than_or_equal_to: 3,
17 only_integer: true}
18 end
19end
diff --git a/db/migrate/20170917011258_create_pokeviewer_revision_moves.rb b/db/migrate/20170917011258_create_pokeviewer_revision_moves.rb deleted file mode 100644 index e061207..0000000 --- a/db/migrate/20170917011258_create_pokeviewer_revision_moves.rb +++ /dev/null
@@ -1,20 +0,0 @@
1class CreatePokeviewerRevisionMoves < ActiveRecord::Migration[5.1]
2 def change
3 create_table :pokeviewer_revision_moves do |t|
4 t.references :revision, null: false
5 t.references :move, null: false
6 t.integer :number, null: false
7 t.integer :pp_bonuses, null: false, default: 0
8
9 t.timestamps
10 end
11
12 add_index :pokeviewer_revision_moves, [:revision_id, :number], unique: true
13
14 add_foreign_key :pokeviewer_revision_moves, :pokeviewer_revisions,
15 column: :revision_id
16
17 add_foreign_key :pokeviewer_revision_moves, :pokeviewer_moves,
18 column: :move_id
19 end
20end
diff --git a/db/migrate/20170917002857_create_pokeviewer_revisions.rb b/db/migrate/20170917011258_create_pokeviewer_revisions.rb index f6755da..faa3532 100644 --- a/db/migrate/20170917002857_create_pokeviewer_revisions.rb +++ b/db/migrate/20170917011258_create_pokeviewer_revisions.rb
@@ -19,6 +19,14 @@ class CreatePokeviewerRevisions < ActiveRecord::Migration[5.1]
19 t.integer :toughness, null: false 19 t.integer :toughness, null: false
20 t.integer :sheen, null: false 20 t.integer :sheen, null: false
21 t.integer :hold_item, null: true 21 t.integer :hold_item, null: true
22 t.references :move_1, null: false
23 t.references :move_2, null: true
24 t.references :move_3, null: true
25 t.references :move_4, null: true
26 t.integer :move_1_pp_bonuses, null: false, default: 0
27 t.integer :move_2_pp_bonuses, null: false, default: 0
28 t.integer :move_3_pp_bonuses, null: false, default: 0
29 t.integer :move_4_pp_bonuses, null: false, default: 0
22 30
23 t.timestamps 31 t.timestamps
24 end 32 end
@@ -27,5 +35,17 @@ class CreatePokeviewerRevisions < ActiveRecord::Migration[5.1]
27 35
28 add_foreign_key :pokeviewer_revisions, :pokewalker_pokemon, 36 add_foreign_key :pokeviewer_revisions, :pokewalker_pokemon,
29 column: :pokemon_id 37 column: :pokemon_id
38
39 add_foreign_key :pokeviewer_revisions, :pokewalker_moves,
40 column: :move_1_id
41
42 add_foreign_key :pokeviewer_revisions, :pokewalker_moves,
43 column: :move_2_id
44
45 add_foreign_key :pokeviewer_revisions, :pokewalker_moves,
46 column: :move_3_id
47
48 add_foreign_key :pokeviewer_revisions, :pokewalker_moves,
49 column: :move_4_id
30 end 50 end
31end 51end
diff --git a/test/dummy/db/schema.rb b/test/dummy/db/schema.rb index 4b5ad80..ef8b1ae 100644 --- a/test/dummy/db/schema.rb +++ b/test/dummy/db/schema.rb
@@ -43,18 +43,6 @@ ActiveRecord::Schema.define(version: 20170917011258) do
43 t.index ["uuid"], name: "index_pokeviewer_pokemon_on_uuid", unique: true 43 t.index ["uuid"], name: "index_pokeviewer_pokemon_on_uuid", unique: true
44 end 44 end
45 45
46 create_table "pokeviewer_revision_moves", force: :cascade do |t|
47 t.integer "revision_id", null: false
48 t.integer "move_id", null: false
49 t.integer "number", null: false
50 t.integer "pp_bonuses", default: 0, null: false
51 t.datetime "created_at", null: false
52 t.datetime "updated_at", null: false
53 t.index ["move_id"], name: "index_pokeviewer_revision_moves_on_move_id"
54 t.index ["revision_id", "number"], name: "index_pokeviewer_revision_moves_on_revision_id_and_number", unique: true
55 t.index ["revision_id"], name: "index_pokeviewer_revision_moves_on_revision_id"
56 end
57
58 create_table "pokeviewer_revisions", force: :cascade do |t| 46 create_table "pokeviewer_revisions", force: :cascade do |t|
59 t.integer "pokemon_id", null: false 47 t.integer "pokemon_id", null: false
60 t.integer "sequential_id", null: false 48 t.integer "sequential_id", null: false
@@ -74,8 +62,20 @@ ActiveRecord::Schema.define(version: 20170917011258) do
74 t.integer "toughness", null: false 62 t.integer "toughness", null: false
75 t.integer "sheen", null: false 63 t.integer "sheen", null: false
76 t.integer "hold_item" 64 t.integer "hold_item"
65 t.integer "move_1_id", null: false
66 t.integer "move_2_id"
67 t.integer "move_3_id"
68 t.integer "move_4_id"
69 t.integer "move_1_pp_bonuses", default: 0, null: false
70 t.integer "move_2_pp_bonuses", default: 0, null: false
71 t.integer "move_3_pp_bonuses", default: 0, null: false
72 t.integer "move_4_pp_bonuses", default: 0, null: false
77 t.datetime "created_at", null: false 73 t.datetime "created_at", null: false
78 t.datetime "updated_at", null: false 74 t.datetime "updated_at", null: false
75 t.index ["move_1_id"], name: "index_pokeviewer_revisions_on_move_1_id"
76 t.index ["move_2_id"], name: "index_pokeviewer_revisions_on_move_2_id"
77 t.index ["move_3_id"], name: "index_pokeviewer_revisions_on_move_3_id"
78 t.index ["move_4_id"], name: "index_pokeviewer_revisions_on_move_4_id"
79 t.index ["pokemon_id", "sequential_id"], name: "index_pokeviewer_revisions_on_pokemon_id_and_sequential_id", unique: true 79 t.index ["pokemon_id", "sequential_id"], name: "index_pokeviewer_revisions_on_pokemon_id_and_sequential_id", unique: true
80 t.index ["pokemon_id"], name: "index_pokeviewer_revisions_on_pokemon_id" 80 t.index ["pokemon_id"], name: "index_pokeviewer_revisions_on_pokemon_id"
81 end 81 end