ruby_postcode_anywhere 0.0.1

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/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
data/README.md ADDED
@@ -0,0 +1,2 @@
1
+ ruby_postcode_anywhere
2
+ ======================
@@ -0,0 +1,53 @@
1
+ require 'net/http'
2
+ require 'rexml/document'
3
+
4
+ module PostcodeAnywhere
5
+
6
+ class Response
7
+ attr_accessor :errors, :response
8
+
9
+ def success?
10
+ errors.empty?
11
+ end
12
+ end
13
+
14
+ class << self
15
+
16
+ attr_accessor :key
17
+
18
+ end
19
+
20
+ def self.lookup(postcode)
21
+
22
+ result = Response.new
23
+ requestUrl = "http://services.postcodeanywhere.co.uk/PostcodeAnywhere/Interactive/RetrieveByParts/v1.00/xmle.ws?"
24
+ requestUrl += "&key=#{PostcodeAnywhere.key}"
25
+ requestUrl += "&postcode=#{URI.encode_www_form_component(postcode)}"
26
+
27
+ xml_results = Net::HTTP.get_response(URI.parse(requestUrl))
28
+
29
+ results = REXML::Document.new(xml_results.body)
30
+ entries = Array.new
31
+
32
+ result.errors = {}
33
+
34
+ results.elements.each('Table/Row') do |row|
35
+ entry = Hash.new
36
+
37
+ row.elements.each('Error') do |element|
38
+ row.elements.each('Description') do |element|
39
+ result.errors[element.name.to_s] = element.text
40
+ return result
41
+ end
42
+ end
43
+
44
+ row.elements.each do |element|
45
+ entry[element.name.to_s] = element.text
46
+ end
47
+
48
+ entries << entry
49
+ end
50
+ result.response = entries
51
+ result
52
+ end
53
+ end
@@ -0,0 +1,11 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'ruby_postcode_anywhere'
3
+ s.version = '0.0.1'
4
+ s.date = '2012-11-29'
5
+ s.summary = "PostcodeAnywhere wrapper"
6
+ s.description = "A simple wrapper for PostcodeAnywhere/Interactive/RetrieveByParts"
7
+ s.authors = ["Bartosz Pranczke"]
8
+ s.email = 'pranczke@gmail.com'
9
+ s.files = `git ls-files`.split($/)
10
+ s.homepage = 'http://github.com/changs/ruby_postcode_anywhere'
11
+ end
metadata ADDED
@@ -0,0 +1,48 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby_postcode_anywhere
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Bartosz Pranczke
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-29 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: A simple wrapper for PostcodeAnywhere/Interactive/RetrieveByParts
15
+ email: pranczke@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - .gitignore
21
+ - README.md
22
+ - lib/ruby_postcode_anywhere.rb
23
+ - ruby_postcode_anywhere.gemspec
24
+ homepage: http://github.com/changs/ruby_postcode_anywhere
25
+ licenses: []
26
+ post_install_message:
27
+ rdoc_options: []
28
+ require_paths:
29
+ - lib
30
+ required_ruby_version: !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ required_rubygems_version: !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubyforge_project:
44
+ rubygems_version: 1.8.24
45
+ signing_key:
46
+ specification_version: 3
47
+ summary: PostcodeAnywhere wrapper
48
+ test_files: []