rubbish_collection 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md
CHANGED
@@ -20,7 +20,8 @@ Or install it yourself as:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
|
23
|
+
address = OpenStruct.new :street_name => "Redcross Way", :postcode => "SE1 1EY"
|
24
|
+
collection_times = RubbishCollection.times_at_address address
|
24
25
|
collection_times.each do |t|
|
25
26
|
puts t.to_s
|
26
27
|
end
|
@@ -36,9 +37,17 @@ You can get the ID to register your local authority adapter against by looking
|
|
36
37
|
at the [local authority database][0] in my [local\_authority gem][1]. It's the
|
37
38
|
last column of the CSV row.
|
38
39
|
|
40
|
+
Note that the API of the address object used in this gem hasn't yet been settled
|
41
|
+
on. Different local authorities need different parts or formats of the address
|
42
|
+
to determine collection times eg Southwark and Redbridge are pretty good with
|
43
|
+
just the postcode but Westminster need a street name. At some point we should
|
44
|
+
either find a gem that already caters to addresses and provides a nice API and
|
45
|
+
tools for comparison, or we should define or own.
|
46
|
+
|
39
47
|
[0]: https://raw.github.com/craigw/local_authority/master/db/local_authorities.csv
|
40
48
|
[1]: https://github.com/craigw/local_authority
|
41
49
|
|
50
|
+
|
42
51
|
## Contributing
|
43
52
|
|
44
53
|
1. Fork it
|
@@ -9,10 +9,10 @@ module RubbishCollection
|
|
9
9
|
def initialize local_authority
|
10
10
|
end
|
11
11
|
|
12
|
-
def collection_times_at
|
12
|
+
def collection_times_at address
|
13
13
|
Net::HTTP.start "www.redbridge.gov.uk", 80 do |http|
|
14
14
|
req = Net::HTTP::Get.new '/RecycleRefuse'
|
15
|
-
req['Cookie'] = "RedbridgeIV3LivePref=postcode=#{postcode}"
|
15
|
+
req['Cookie'] = "RedbridgeIV3LivePref=postcode=#{address.postcode}"
|
16
16
|
response = http.request req
|
17
17
|
doc = Nokogiri::HTML response.body
|
18
18
|
info = doc.xpath "//*[@id='RegularCollectionDay']"
|
@@ -9,9 +9,9 @@ module RubbishCollection
|
|
9
9
|
def initialize local_authority
|
10
10
|
end
|
11
11
|
|
12
|
-
def collection_times_at
|
12
|
+
def collection_times_at address
|
13
13
|
Net::HTTP.start "wasteservices.southwark.gov.uk", 80 do |http|
|
14
|
-
req = Net::HTTP::Get.new "/findAddress.asp?pc=#{postcode.gsub(/\s+/, '')}"
|
14
|
+
req = Net::HTTP::Get.new "/findAddress.asp?pc=#{address.postcode.gsub(/\s+/, '')}"
|
15
15
|
response = http.request req
|
16
16
|
addresses = Nokogiri::HTML.fragment response.body
|
17
17
|
first_address = addresses.xpath(".//option").detect { |o| o['value'].to_s.strip != '' }
|
data/lib/rubbish_collection.rb
CHANGED
@@ -70,12 +70,13 @@ module RubbishCollection
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
-
def self.
|
73
|
+
def self.times_at_address address
|
74
|
+
pc = address.postcode
|
75
|
+
local_authority = LocalAuthority::LocalAuthority.find_by_postcode pc
|
74
76
|
times = CollectionTimes.new
|
75
|
-
local_authority = LocalAuthority::LocalAuthority.find_by_postcode postcode
|
76
77
|
return times if local_authority.nil?
|
77
78
|
adaptor = adapter_for local_authority
|
78
|
-
adaptor.collection_times_at(
|
79
|
+
adaptor.collection_times_at(address).each do |t|
|
79
80
|
times << t
|
80
81
|
end
|
81
82
|
times
|