Class: JapanETC::Database

Inherits:
Object
  • Object
show all
Defined in:
lib/japan_etc/database.rb

Constant Summary collapse

CSV_HEADER =
%i[
  tollbooth_id
  road_name
  route_name
  tollbooth_name
  direction
  entrance_or_exit
  notes
  source
].freeze
PROVIDER_CLASSES =
[
  DatabaseProvider::HanshinExpressway,
  DatabaseProvider::MetropolitanExpressway,
  DatabaseProvider::NagoyaExpressway,
  DatabaseProvider::NEXCOCentral,
  DatabaseProvider::NEXCOEast,
  DatabaseProvider::NEXCOWest,
  DatabaseProvider::PastDatabase
].freeze

Instance Method Summary collapse

Instance Method Details

#providersObject



50
51
52
# File 'lib/japan_etc/database.rb', line 50

def providers
  PROVIDER_CLASSES.map(&:new)
end

#roadsObject



35
36
37
# File 'lib/japan_etc/database.rb', line 35

def roads
  tollbooths.map(&:road).uniq
end

#save_as_csv(filename: 'database/japan_etc_tollbooths.csv') ⇒ Object



43
44
45
46
47
48
# File 'lib/japan_etc/database.rb', line 43

def save_as_csv(filename: 'database/japan_etc_tollbooths.csv')
  CSV.open(filename, 'w') do |csv|
    csv << CSV_HEADER
    tollbooths.each { |tollbooth| csv << tollbooth.to_a }
  end
end

#tollboothsObject



39
40
41
# File 'lib/japan_etc/database.rb', line 39

def tollbooths
  @tollbooths ||= providers.map(&:fetch_tollbooths).flatten.sort.uniq
end