Class: RubbishCollection::RedbridgeAdapter
- Inherits:
-
Object
- Object
- RubbishCollection::RedbridgeAdapter
- Defined in:
- lib/rubbish_collection/redbridge.rb
Constant Summary collapse
- DAYS =
%w( SUNDAY MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY ).map(&:freeze).freeze
Class Method Summary collapse
Instance Method Summary collapse
- #collection_times_at(address) ⇒ Object
-
#initialize(local_authority) ⇒ RedbridgeAdapter
constructor
A new instance of RedbridgeAdapter.
Constructor Details
#initialize(local_authority) ⇒ RedbridgeAdapter
Returns a new instance of RedbridgeAdapter.
9 10 |
# File 'lib/rubbish_collection/redbridge.rb', line 9 def initialize end |
Class Method Details
.load ⇒ Object
5 6 7 |
# File 'lib/rubbish_collection/redbridge.rb', line 5 def self.load require 'nokogiri' end |
Instance Method Details
#collection_times_at(address) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rubbish_collection/redbridge.rb', line 12 def collection_times_at address Net::HTTP.start "www.redbridge.gov.uk", 80 do |http| req = Net::HTTP::Get.new '/RecycleRefuse' req['Cookie'] = "RedbridgeIV3LivePref=postcode=#{address.postcode}" response = http.request req doc = Nokogiri::HTML response.body info = doc.xpath "//*[@id='RegularCollectionDay']" instructions = info.xpath ".//*[@class='instructions']/text()" hour, modifier = instructions.to_s.strip.scan(/(\d+)(am|pm)/)[0] hour = hour.to_i hour += 12 if modifier == "pm" time = hour * 100 day_name = info.xpath(".//*[@class='day']/text()").to_s s = Schedule.new Resolution::HOUR s.add_rule Schedule.day_of_week day_name s.add_rule Schedule.hour hour [ Collection.new(DOMESTIC_RUBBISH, s) ] end end |