Class: Trainworks::FileParser
- Inherits:
-
Object
- Object
- Trainworks::FileParser
- Defined in:
- lib/trainworks/file_parser.rb,
lib/trainworks/file_parser/invalid_railroad_input_format.rb
Overview
FileParser is responsible for parsing the input file
Defined Under Namespace
Classes: InvalidRailroadInputFormat
Constant Summary collapse
- SINGLE_TUPLE_REGEX =
captures, for example, AB99
/(?<from>[a-zA-Z])(?<to>[a-zA-Z])(?<distance>\d+)/
Instance Method Summary collapse
-
#initialize(file_path) ⇒ FileParser
constructor
Converts the object into textual markup given a specific format.
-
#parse ⇒ Array<Route>
Array of Routes.
Constructor Details
#initialize(file_path) ⇒ FileParser
Converts the object into textual markup given a specific format.
13 14 15 |
# File 'lib/trainworks/file_parser.rb', line 13 def initialize(file_path) @raw_content = File.read(file_path) end |
Instance Method Details
#parse ⇒ Array<Route>
Returns array of Routes.
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/trainworks/file_parser.rb', line 19 def parse clean_string(@raw_content).split(',').map do |route_string| matched_route_string = route_string.match(SINGLE_TUPLE_REGEX) raise InvalidRailroadInputFormat, route_string if matched_route_string.nil? Route.new( from: matched_route_string[:from], to: matched_route_string[:to], distance: matched_route_string[:distance] ) end end |