class BrRailties::Ibge::Import::Municipalities
Constants
- SOURCE_URL
Public Class Methods
new()
click to toggle source
# File lib/br_railties/ibge/import/municipalities.rb, line 11 def initialize run end
Private Instance Methods
find_federal_unit(raw)
click to toggle source
# File lib/br_railties/ibge/import/municipalities.rb, line 35 def find_federal_unit(raw) raw = raw['microrregiao']['mesorregiao']['UF'] ::BrRailties::FederalUnit.find_by(ibge_code: raw['id']) || ::BrRailties::FederalUnit.find_by(acronym: raw['sigla']) || raise("Federal unit not found (Raw data: #{raw})") end
import(raw)
click to toggle source
# File lib/br_railties/ibge/import/municipalities.rb, line 27 def import(raw) data = { federal_unit: find_federal_unit(raw), name: raw['nome'], ibge_code: raw['id'] } record = record_by_data(data) record.attributes = data ::Rails.logger.info("Importing: #{record.attributes}") record.save! end
record_by_data(data)
click to toggle source
# File lib/br_railties/ibge/import/municipalities.rb, line 42 def record_by_data(data) ::BrRailties::Municipality.find_by(ibge_code: data[:ibge_code]) || ::BrRailties::Municipality.find_by(name: data[:name], federal_unit: data[:federal_unit]) || ::BrRailties::Municipality.new end
run()
click to toggle source
# File lib/br_railties/ibge/import/municipalities.rb, line 17 def run source_data.each do |municipality_source_data| import(municipality_source_data) end end
source_data()
click to toggle source
# File lib/br_railties/ibge/import/municipalities.rb, line 23 def source_data JSON.parse(Net::HTTP.get(URI.parse(SOURCE_URL))) end