The Importer libraries take CSV data and import them into the database for each type. We currently support characters, summons and weapons.
53 lines
2 KiB
Ruby
53 lines
2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Granblue
|
|
module Importers
|
|
class CharacterImporter < BaseImporter
|
|
private
|
|
|
|
def model_class
|
|
Character
|
|
end
|
|
|
|
def build_attributes(row)
|
|
{
|
|
name_en: parse_value(row['name_en']),
|
|
name_jp: parse_value(row['name_jp']),
|
|
granblue_id: parse_value(row['granblue_id']),
|
|
rarity: parse_integer(row['rarity']),
|
|
element: parse_integer(row['element']),
|
|
proficiency1: parse_integer(row['proficiency1']),
|
|
proficiency2: parse_integer(row['proficiency2']),
|
|
gender: parse_integer(row['gender']),
|
|
race1: parse_integer(row['race1']),
|
|
race2: parse_integer(row['race2']),
|
|
flb: parse_boolean(row['flb']),
|
|
min_hp: parse_integer(row['min_hp']),
|
|
max_hp: parse_integer(row['max_hp']),
|
|
max_hp_flb: parse_integer(row['max_hp_flb']),
|
|
min_atk: parse_integer(row['min_atk']),
|
|
max_atk: parse_integer(row['max_atk']),
|
|
max_atk_flb: parse_integer(row['max_atk_flb']),
|
|
base_da: parse_integer(row['base_da']),
|
|
base_ta: parse_integer(row['base_ta']),
|
|
ougi_ratio: parse_float(row['ougi_ratio']),
|
|
ougi_ratio_flb: parse_float(row['ougi_ratio_flb']),
|
|
special: parse_boolean(row['special']),
|
|
ulb: parse_boolean(row['ulb']),
|
|
max_hp_ulb: parse_integer(row['max_hp_ulb']),
|
|
max_atk_ulb: parse_integer(row['max_atk_ulb']),
|
|
character_id: parse_integer_array(row['character_id']),
|
|
wiki_en: parse_value(row['wiki_en']),
|
|
release_date: parse_value(row['release_date']),
|
|
flb_date: parse_value(row['flb_date']),
|
|
ulb_date: parse_value(row['ulb_date']),
|
|
wiki_ja: parse_value(row['wiki_ja']),
|
|
gamewith: parse_value(row['gamewith']),
|
|
kamigame: parse_value(row['kamigame']),
|
|
nicknames_en: parse_array(row['nicknames_en']),
|
|
nicknames_jp: parse_array(row['nicknames_jp'])
|
|
}
|
|
end
|
|
end
|
|
end
|
|
end
|