Class: JMACode::WaterLevelStation
- Inherits:
-
Struct
- Object
- Struct
- JMACode::WaterLevelStation
- Defined in:
- lib/jma_code/water_level_station.rb
Constant Summary collapse
- CSV_ROW_SEP =
"\r\n"
- HEADERS =
%i(code name river_name)
- NUM_HEADER_ROWS =
3
Class Attribute Summary collapse
-
.data ⇒ Object
Returns the value of attribute data.
Instance Attribute Summary collapse
-
#code ⇒ Object
Returns the value of attribute code.
-
#name ⇒ Object
Returns the value of attribute name.
-
#river_name ⇒ Object
Returns the value of attribute river_name.
Class Method Summary collapse
Instance Method Summary collapse
Class Attribute Details
.data ⇒ Object
Returns the value of attribute data.
15 16 17 |
# File 'lib/jma_code/water_level_station.rb', line 15 def data @data end |
Instance Attribute Details
#code ⇒ Object
Returns the value of attribute code
6 7 8 |
# File 'lib/jma_code/water_level_station.rb', line 6 def code @code end |
#name ⇒ Object
Returns the value of attribute name
6 7 8 |
# File 'lib/jma_code/water_level_station.rb', line 6 def name @name end |
#river_name ⇒ Object
Returns the value of attribute river_name
6 7 8 |
# File 'lib/jma_code/water_level_station.rb', line 6 def river_name @river_name end |
Class Method Details
.get ⇒ Object
37 38 39 |
# File 'lib/jma_code/water_level_station.rb', line 37 def get @data ||= load end |
.load(**args) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/jma_code/water_level_station.rb', line 25 def load(**args) load_csv(**args) do |csv| csv.drop(NUM_HEADER_ROWS).map do |row| new( code: row[:code], name: row[:name], river_name: row[:river_name], ) end end end |
.load_csv(version: "20240418") ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/jma_code/water_level_station.rb', line 17 def load_csv(version: "20240418") path = File.join(File.dirname(__FILE__), "../../data/#{version}_WaterLevelStation.csv") File.open(path) do |f| csv = CSV.new(f, headers: HEADERS, row_sep: CSV_ROW_SEP) yield(csv) end end |