Class: PSGC::Import::ImportMunicipalityBarangays

Inherits:
Base
  • Object
show all
Defined in:
lib/psgc/import/import_municipality_barangays.rb

Overview

Import a city or municipality’s barangays

Defined Under Namespace

Classes: Parser

Constant Summary collapse

CSV_HEADER =
%w(id name urban_rural population)

Constants inherited from Base

Base::WEB_FOLDER

Instance Attribute Summary collapse

Attributes inherited from Base

#src

Instance Method Summary collapse

Methods inherited from Base

#fetch

Constructor Details

#initialize(municipality_id, src) ⇒ ImportMunicipalityBarangays

Returns a new instance of ImportMunicipalityBarangays.



12
13
14
15
# File 'lib/psgc/import/import_municipality_barangays.rb', line 12

def initialize(municipality_id, src)
  super(src)
  @municipality_id = municipality_id
end

Instance Attribute Details

#municipality_idObject (readonly)

Returns the value of attribute municipality_id.



10
11
12
# File 'lib/psgc/import/import_municipality_barangays.rb', line 10

def municipality_id
  @municipality_id
end

Instance Method Details

#parseObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/psgc/import/import_municipality_barangays.rb', line 17

def parse
  parser = Parser.new
  File.open(full_target) do |input|
    parser.parse Nokogiri::HTML(input)
  end

  # mkdir
  region_dir = @municipality_id.to_s[0, 2]
  province_dir = @municipality_id.to_s[0, 4]
  dir = File.join(PSGC::DATA_DIR, region_dir, province_dir)
  FileUtils.mkdir_p dir

  # barangays.csv
  unless parser.barangays.empty?
    CSV.open(File.join(dir, "#{municipality_id}.csv"), 'w') do |out|
      out << CSV_HEADER
      parser.barangays.each { |barangay| out << barangay }
    end
  end

end