Class: Lakes::Texas
- Includes:
- Helper
- Defined in:
- lib/lakes/texas.rb,
lib/lakes/texas/share_lunker.rb,
lib/lakes/texas/water_data_parser.rb,
lib/lakes/texas/lake_records_parser.rb,
lib/lakes/texas/fishing_report_parser.rb,
lib/lakes/texas/water_conditions_parser.rb,
lib/lakes/texas/lake_characteristics_parser.rb
Defined Under Namespace
Classes: FishingReportParser, LakeCharacteristicsParser, LakeRecordsParser, ShareLunker, WaterConditionsParser, WaterDataParser
Instance Attribute Summary collapse
-
#lake_data ⇒ Object
readonly
Returns the value of attribute lake_data.
Instance Method Summary collapse
- #all_details ⇒ Object
- #get_details(lake_name) ⇒ Object
-
#initialize ⇒ Texas
constructor
A new instance of Texas.
- #list ⇒ Object
Methods included from Helper
#cleanup_data, #cleanup_raw_text, #convert_relative_href, #http_get, #process_data_table
Constructor Details
#initialize ⇒ Texas
Returns a new instance of Texas.
12 13 14 |
# File 'lib/lakes/texas.rb', line 12 def initialize @lake_data = {} end |
Instance Attribute Details
#lake_data ⇒ Object (readonly)
Returns the value of attribute lake_data.
10 11 12 |
# File 'lib/lakes/texas.rb', line 10 def lake_data @lake_data end |
Instance Method Details
#all_details ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/lakes/texas.rb', line 16 def all_details result = [] list.each do |lake_name| result << get_details(lake_name) sleep(1) end result end |
#get_details(lake_name) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/lakes/texas.rb', line 44 def get_details(lake_name) puts "getting details for #{lake_name}" list data = lake_data[lake_name] raise 'Lake not found' if data.nil? data[:name] = lake_name parse_lake_details(data) end |
#list ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/lakes/texas.rb', line 25 def list return @lake_data.keys unless @lake_data.empty? base_url = 'https://tpwd.texas.gov/fishboat/fish/recreational/lakes/' content = http_get("#{base_url}lakelist.phtml") html_doc = Nokogiri::HTML(content) # remove elements not needed to make parsing easier html_doc.search('div.announce, div.alert, div#bottomwrapper').each do |src| src.remove end html_doc.search('div#maincontent ul li a').each do |lake_html| lake_name = cleanup_data(lake_html.text) @lake_data[lake_name] = { details_uri: "#{base_url}#{lake_html[:href]}" } end @lake_data.keys end |