From 0f32f526b73ecfd10012c0db9d7c4a4f15251a73 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Tue, 10 Oct 2017 22:46:46 -0400 Subject: Added type and ability data to species model --- app/models/pokeviewer/ability.rb | 7 +++++++ app/models/pokeviewer/move.rb | 8 +++++--- app/models/pokeviewer/pokemon.rb | 8 ++++++++ app/models/pokeviewer/species.rb | 10 ++++++++++ 4 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 app/models/pokeviewer/ability.rb (limited to 'app/models') diff --git a/app/models/pokeviewer/ability.rb b/app/models/pokeviewer/ability.rb new file mode 100644 index 0000000..594b18c --- /dev/null +++ b/app/models/pokeviewer/ability.rb @@ -0,0 +1,7 @@ +module Pokeviewer + class Ability < ApplicationRecord + validates :name, presence: true, uniqueness: true + + validates :description, presence: true + end +end diff --git a/app/models/pokeviewer/move.rb b/app/models/pokeviewer/move.rb index 3ef6a9c..c63493a 100644 --- a/app/models/pokeviewer/move.rb +++ b/app/models/pokeviewer/move.rb @@ -10,10 +10,12 @@ module Pokeviewer validates :pp, presence: true, numericality: { greater_than_or_equal_to: 1, only_integer: true } - validates :move_type, presence: true - enumerize :move_type, in: [:normal, :fighting, :flying, :poison, :ground, + TYPES = [:normal, :fighting, :flying, :poison, :ground, :rock, :bug, :ghost, :steel, :mystery, :fire, :water, :grass, :electric, - :psychic, :ice, :dragon, :dark], predicates: true + :psychic, :ice, :dragon, :dark] + + validates :move_type, presence: true + enumerize :move_type, in: TYPES, predicates: true validates :rs_description, presence: true validates :frlg_description, presence: true diff --git a/app/models/pokeviewer/pokemon.rb b/app/models/pokeviewer/pokemon.rb index 268a417..1b690f5 100644 --- a/app/models/pokeviewer/pokemon.rb +++ b/app/models/pokeviewer/pokemon.rb @@ -200,6 +200,14 @@ module Pokeviewer "pokeviewer/items/#{Pokemon.pokeball.values.find_index(pokeball) + 1}.png" end + def ability + if second_ability + species.ability_2 + else + species.ability_1 + end + end + private def set_uuid diff --git a/app/models/pokeviewer/species.rb b/app/models/pokeviewer/species.rb index c69fd21..429e762 100644 --- a/app/models/pokeviewer/species.rb +++ b/app/models/pokeviewer/species.rb @@ -1,7 +1,17 @@ module Pokeviewer class Species < ApplicationRecord + extend Enumerize + has_many :pokemon, dependent: :restrict_with_exception validates :name, presence: true, uniqueness: true + + validates :type_1, presence: true + + enumerize :type_1, in: Move::TYPES + enumerize :type_2, in: Move::TYPES + + belongs_to :ability_1, class_name: "Ability" + belongs_to :ability_2, class_name: "Ability", optional: true end end -- cgit 1.4.1