Class: JapanETC::Database
- Inherits:
-
Object
- Object
- JapanETC::Database
- 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
- #providers ⇒ Object
- #roads ⇒ Object
- #save_as_csv(filename: 'database/japan_etc_tollbooths.csv') ⇒ Object
- #tollbooths ⇒ Object
Instance Method Details
#providers ⇒ Object
50 51 52 |
# File 'lib/japan_etc/database.rb', line 50 def providers PROVIDER_CLASSES.map(&:new) end |
#roads ⇒ Object
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 |
#tollbooths ⇒ Object
39 40 41 |
# File 'lib/japan_etc/database.rb', line 39 def tollbooths @tollbooths ||= providers.map(&:fetch_tollbooths).flatten.sort.uniq end |