50 lines
1.1 KiB
Ruby
50 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class WowCharacter < ApplicationRecord
|
|
extend Mobility
|
|
translates :translated_faction, :translated_gender
|
|
|
|
belongs_to :user
|
|
belongs_to :wow_realm
|
|
belongs_to :wow_class
|
|
belongs_to :wow_race
|
|
belongs_to :wow_character_title, optional: true
|
|
belongs_to :last_position, class_name: 'WowGeoPosition', optional: true
|
|
belongs_to :bind_position, class_name: 'WowGeoPosition', optional: true
|
|
has_one :wow_character_medium, dependent: :nullify
|
|
|
|
validates :name, presence: true
|
|
validates :character_id, presence: true, uniqueness: true
|
|
|
|
def gender_class_name
|
|
case gender
|
|
when 'FEMALE'
|
|
wow_class.female_name
|
|
when 'MALE'
|
|
wow_class.male_name
|
|
end
|
|
end
|
|
|
|
def gender_race_name
|
|
case gender
|
|
when 'FEMALE'
|
|
wow_race.female_name
|
|
when 'MALE'
|
|
wow_race.male_name
|
|
end
|
|
end
|
|
|
|
def title_name
|
|
if wow_character_title
|
|
case gender
|
|
when 'FEMALE'
|
|
wow_character_title.female_name.gsub('{name}', name)
|
|
when 'MALE'
|
|
wow_character_title.male_name.gsub('{name}', name)
|
|
end
|
|
else
|
|
name
|
|
end
|
|
end
|
|
end
|