ruby_postcode_anywhere 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: []