Class: CSVGeocoder::Sources::CSVRow

Inherits:
Object
  • Object
show all
Defined in:
lib/csv_geocoder/sources/csv_row.rb

Instance Method Summary collapse

Constructor Details

#initialize(row, geocode_method) ⇒ CSVRow

Returns a new instance of CSVRow.



6
7
8
9
# File 'lib/csv_geocoder/sources/csv_row.rb', line 6

def initialize(row, geocode_method)
  @row = row
  @geocode_method = geocode_method
end

Instance Method Details

#geocoded_resultObject



11
12
13
14
15
16
# File 'lib/csv_geocoder/sources/csv_row.rb', line 11

def geocoded_result
  return @geocoded_result if @geocoded_result
  search_result = Geocoder.search(searching_by).first
  return nil unless search_result
  @geocoded_result = GeocodeResult.new(search_result)
end

#output_stringObject



33
34
35
36
# File 'lib/csv_geocoder/sources/csv_row.rb', line 33

def output_string
  return "COULDN'T GEOCODE" unless geocoded_result
  "#{geocoded_result.address}"
end

#searching_byObject



38
39
40
# File 'lib/csv_geocoder/sources/csv_row.rb', line 38

def searching_by
  @geocode_method.search_string(@row)
end

#to_aryObject



29
30
31
# File 'lib/csv_geocoder/sources/csv_row.rb', line 29

def to_ary
  @row.to_ary.map(&:last)
end

#update_columns!(output_columns) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/csv_geocoder/sources/csv_row.rb', line 18

def update_columns!(output_columns)
  return false unless geocoded_result

  @row[output_columns[:address_header]] = geocoded_result.address
  @row[output_columns[:city_header]] = geocoded_result.city
  @row[output_columns[:region_header]] = geocoded_result.region
  @row[output_columns[:country_header]] = geocoded_result.country
  @row[output_columns[:postcode_header]] = geocoded_result.postcode
  true
end