From 687299b33934d25017a226ba6b979e44f0b1f441 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sun, 24 Sep 2017 19:15:55 -0400 Subject: Added box names --- app/models/pokeviewer/box.rb | 29 +++++++++++++++++++++++++++++ app/models/pokeviewer/trainer.rb | 20 +------------------- 2 files changed, 30 insertions(+), 19 deletions(-) create mode 100644 app/models/pokeviewer/box.rb (limited to 'app/models') diff --git a/app/models/pokeviewer/box.rb b/app/models/pokeviewer/box.rb new file mode 100644 index 0000000..090175e --- /dev/null +++ b/app/models/pokeviewer/box.rb @@ -0,0 +1,29 @@ +module Pokeviewer + class Box < ApplicationRecord + belongs_to :trainer + + validates :name, presence: true + + validates :number, presence: true, + numericality: { + greater_than_or_equal_to: 0, + less_than: 14, + only_integer: true }, + uniqueness: { scope: :trainer_id } + + def contents + pokes = trainer.pokemon.where(box: number).order("slot ASC").to_a + + result = [] + (0..29).each do |i| + if pokes.empty? or (pokes.first.slot == i) + result << pokes.shift + else + result << nil + end + end + + result + end + end +end diff --git a/app/models/pokeviewer/trainer.rb b/app/models/pokeviewer/trainer.rb index d3a5b91..f890d61 100644 --- a/app/models/pokeviewer/trainer.rb +++ b/app/models/pokeviewer/trainer.rb @@ -3,6 +3,7 @@ module Pokeviewer extend Enumerize has_many :pokemon, dependent: :nullify + has_many :boxes, -> { order("number ASC") }, dependent: :destroy validates :number, presence: true, numericality: { greater_than_or_equal_to: 0, only_integer: true } @@ -22,24 +23,5 @@ module Pokeviewer def party pokemon.where(box: nil).order("slot ASC") end - - def boxes - (0..13).map { |i| box(i) } - end - - def box(number) - pokes = pokemon.where(box: number).order("slot ASC").to_a - - result = [] - (0..29).each do |i| - if pokes.empty? or (pokes.first.slot == i) - result << pokes.shift - else - result << nil - end - end - - result - end end end -- cgit 1.4.1