class BrRailties::Ibge::Import::FederalUnits

Constants

SOURCE_URL

Public Class Methods

new() click to toggle source
# File lib/br_railties/ibge/import/federal_units.rb, line 11
def initialize
  run
end

Private Instance Methods

import(raw) click to toggle source
# File lib/br_railties/ibge/import/federal_units.rb, line 27
def import(raw)
  data = { acronym: raw['sigla'], 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/federal_units.rb, line 35
def record_by_data(data)
  ::BrRailties::FederalUnit.find_by(ibge_code: data[:ibge_code]) ||
    ::BrRailties::FederalUnit.find_by(acronym: data[:acronym]) ||
    ::BrRailties::FederalUnit.new
end
run() click to toggle source
# File lib/br_railties/ibge/import/federal_units.rb, line 17
def run
  source_data.each do |fu_source_data|
    import(fu_source_data.except('regiao'))
  end
end
source_data() click to toggle source
# File lib/br_railties/ibge/import/federal_units.rb, line 23
def source_data
  JSON.parse(Net::HTTP.get(URI.parse(SOURCE_URL)))
end