ruby-postcodeanywhere 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OGM3ZTQ2ZTY4Yjg0MGM4ZDUwOTU0OTBkYjQ0MTZmOWIxYWRkZDQ5Ng==
5
+ data.tar.gz: !binary |-
6
+ NTU0NDk5YzU3NjVjYTA5YTE2MDc3NWVhZDlkMDBjYmM3YmMzZjI5MQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ YzM3NmVkNGNjZGYxNDc5NmY4ZDU1MmMwY2JjODgzYTM1Mjk4M2NlY2E1OGQz
10
+ N2MwZjlkMmQ0NGU4M2NlYmY1YjIzZWU5YjUxOWIwZTMyMzQ0YmIyNGM4N2Yw
11
+ NTA2YjI5NzQyY2JhNjZiYThhMjI3NjRjZmM2MzVmNGQ0M2VmY2U=
12
+ data.tar.gz: !binary |-
13
+ MjhhNjE5ZTlkNjkzYjgxMWQ4NzYyYTRjNzhhZmYzYmIwY2JkOGVhOWZmN2Jh
14
+ MzI4M2FlMjU0ZTY5ZjNiMjkwYjVhMDY2MmE2ZjhlOWFlYTZiNGUwODY0MTc5
15
+ YzExNGRkMGFmODBiOWZkYzQzNzE2YTYwY2IzM2IzNjdlMDM2MWE=
data/Gemfile CHANGED
@@ -1,15 +1,14 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
2
 
6
3
  gem "httparty"
7
4
 
8
- # Add dependencies to develop your gem here.
9
- # Include everything needed to run rake, tests, features, etc.
5
+ gem "activesupport"
6
+ gem "i18n"
7
+
10
8
  group :development do
11
- gem "rspec", "~> 2.3.0"
9
+ gem "rspec"
12
10
  gem "bundler"
13
11
  gem "jeweler", "~> 1.6.2"
14
12
  gem "rcov", ">= 0"
13
+ gem "webmock", :require => false
15
14
  end
data/Gemfile.lock CHANGED
@@ -1,32 +1,43 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ activesupport (3.1.1)
5
+ multi_json (~> 1.0)
6
+ addressable (2.2.7)
4
7
  crack (0.1.8)
5
- diff-lcs (1.1.2)
8
+ diff-lcs (1.1.3)
6
9
  git (1.2.5)
7
10
  httparty (0.7.8)
8
11
  crack (= 0.1.8)
12
+ i18n (0.6.0)
9
13
  jeweler (1.6.2)
10
14
  bundler (~> 1.0)
11
15
  git (>= 1.2.5)
12
16
  rake
17
+ multi_json (1.0.4)
13
18
  rake (0.9.2)
14
19
  rcov (0.9.9)
15
- rspec (2.3.0)
16
- rspec-core (~> 2.3.0)
17
- rspec-expectations (~> 2.3.0)
18
- rspec-mocks (~> 2.3.0)
19
- rspec-core (2.3.1)
20
- rspec-expectations (2.3.0)
20
+ rspec (2.8.0)
21
+ rspec-core (~> 2.8.0)
22
+ rspec-expectations (~> 2.8.0)
23
+ rspec-mocks (~> 2.8.0)
24
+ rspec-core (2.8.0)
25
+ rspec-expectations (2.8.0)
21
26
  diff-lcs (~> 1.1.2)
22
- rspec-mocks (2.3.0)
27
+ rspec-mocks (2.8.0)
28
+ webmock (1.8.0)
29
+ addressable (>= 2.2.7)
30
+ crack (>= 0.1.7)
23
31
 
24
32
  PLATFORMS
25
33
  ruby
26
34
 
27
35
  DEPENDENCIES
36
+ activesupport
28
37
  bundler
29
38
  httparty
39
+ i18n
30
40
  jeweler (~> 1.6.2)
31
41
  rcov
32
- rspec (~> 2.3.0)
42
+ rspec
43
+ webmock
@@ -112,14 +112,14 @@
112
112
  <key>caret</key>
113
113
  <dict>
114
114
  <key>column</key>
115
- <integer>26</integer>
115
+ <integer>60</integer>
116
116
  <key>line</key>
117
- <integer>33</integer>
117
+ <integer>21</integer>
118
118
  </dict>
119
119
  <key>firstVisibleColumn</key>
120
120
  <integer>0</integer>
121
121
  <key>firstVisibleLine</key>
122
- <integer>19</integer>
122
+ <integer>0</integer>
123
123
  </dict>
124
124
  <key>ruby-postcodeanywhere.gemspec</key>
125
125
  <dict>
@@ -1,6 +1,8 @@
1
1
  require 'httparty'
2
+ require 'active_support/core_ext/module/attribute_accessors'
2
3
 
3
4
  module PostcodeAnywhere
5
+ autoload :BankAccountValidation, 'postcode_anywhere/bank_account_validation'
4
6
 
5
7
  # Account codes to access the PostcodeAnywhere Service
6
8
  mattr_accessor :account_code
@@ -11,39 +13,39 @@ module PostcodeAnywhere
11
13
  def self.setup
12
14
  yield self
13
15
  end
14
-
15
- class PostcodeSearch
16
+
17
+ class PostcodeSearch
16
18
  include HTTParty
17
-
19
+
18
20
  base_uri 'https://services.postcodeanywhere.co.uk/PostcodeAnywhere/Interactive'
19
-
21
+
20
22
  ADDRESS_LOOKUP = "/Find/v1.10/xmla.ws"
21
23
  ADDRESS_FETCH = "/RetrieveById/v1.20/xmla.ws"
22
24
  RETRIEVE_BY_PARTS_URL = "/RetrieveByParts/v1.00/xmla.ws"
23
25
 
24
26
  def lookup(postcode)
25
-
27
+
26
28
  raise "Postcode is Required" if postcode.blank? || postcode.nil?
27
-
29
+
28
30
  options={ "SearchTerm" => postcode.gsub(/\s/, '') }
29
31
  options.merge!(self.license_information)
30
-
32
+
31
33
  data = PostcodeSearch.get( ADDRESS_LOOKUP, {:query => options} )
32
34
  formatted_data = []
33
-
35
+
34
36
  return formatted_data if data.parsed_response['Table']['Columns']['Column'][0]['Name'] == "Error"
35
-
37
+
36
38
  puts formatted_data
37
-
39
+
38
40
  unless data.parsed_response['Table']['Columns']['Column'][0]['Name'] == "Error"
39
-
41
+
40
42
  begin
41
43
  data.parsed_response["Table"]["Rows"]["Row"].each do |item|
42
44
  data_item = AddressListItem.new
43
45
  data_item.id = item['Id']
44
46
  data_item.street_address = item['StreetAddress']
45
47
  data_item.place = item['Place']
46
-
48
+
47
49
  formatted_data << data_item
48
50
  end
49
51
  rescue
@@ -52,7 +54,7 @@ module PostcodeAnywhere
52
54
  data_item.id = item['Id']
53
55
  data_item.street_address = item['StreetAddress']
54
56
  data_item.place = item['Place']
55
-
57
+
56
58
  formatted_data << data_item
57
59
  end
58
60
  end
@@ -61,43 +63,43 @@ module PostcodeAnywhere
61
63
 
62
64
  def fetch_by_parts(options={})
63
65
  options.merge!(self.license_information)
64
-
66
+
65
67
  if options['postcode']
66
68
  options['postcode'] = options['postcode'].gsub(/\s/, '')
67
69
  end
68
-
70
+
69
71
  data = PostcodeSearch.get( RETRIEVE_BY_PARTS_URL, {:query => options} )
70
-
72
+
71
73
  process_address(data)
72
74
  end
73
75
 
74
76
  def fetch(id)
75
77
  options={ :id => id }
76
78
  options.merge!(self.license_information)
77
-
79
+
78
80
  data = PostcodeSearch.get( ADDRESS_FETCH, {:query => options} )
79
-
81
+
80
82
  process_address(data)
81
83
  end
82
84
 
83
85
  def license_information
84
86
  {:account_code => PostcodeAnywhere.account_code, :license_code => PostcodeAnywhere.license_code}
85
87
  end
86
-
87
-
88
- private
89
- def process_address(data)
90
-
88
+
89
+
90
+ private
91
+ def process_address(data)
92
+
91
93
  raise 'No Data Found' if data.parsed_response['Table']['Columns']['Column'][0]['Name'] == "Error"
92
-
94
+
93
95
  formatted_data = data.parsed_response["Table"]["Rows"]["Row"]
94
-
96
+
95
97
  address_lookup = AddressLookup.new
96
-
98
+
97
99
  address_lookup.mailsort = formatted_data["Mailsort"]
98
100
  address_lookup.barcode = formatted_data["Barcode"]
99
101
  address_lookup.type = formatted_data["Type"]
100
-
102
+
101
103
  address_lookup.udprn = formatted_data["Udprn"]
102
104
  address_lookup.company = formatted_data["Company"]
103
105
  address_lookup.department = formatted_data["Department"]
@@ -107,28 +109,34 @@ module PostcodeAnywhere
107
109
  address_lookup.address_line_3 = formatted_data["Line3"]
108
110
  address_lookup.address_line_4 = formatted_data["Line4"]
109
111
  address_lookup.address_line_5 = formatted_data["Line5"]
112
+ address_lookup.building_name = formatted_data["BuildingName"]
113
+ address_lookup.building_number = formatted_data["BuildingNumber"]
114
+ address_lookup.street = formatted_data["PrimaryStreet"]
115
+ address_lookup.flat = formatted_data["SubBuilding"]
116
+ address_lookup.district = formatted_data["DependentLocality"]
110
117
  address_lookup.post_town = formatted_data["PostTown"]
111
118
  address_lookup.county = formatted_data["County"].blank? ? formatted_data["PostTown"] : formatted_data["County"]
112
119
 
113
120
 
114
121
  address_lookup
115
122
  end
116
-
117
-
123
+
124
+
118
125
  end
119
126
 
120
127
  class AddressLookup
121
-
128
+
129
+ attr_accessor :building_name, :building_number, :street, :flat, :district
122
130
  attr_accessor :postcode, :address_line_1, :address_line_2, :address_line_3, :address_line_4, :address_line_5
123
131
  attr_accessor :post_town, :county, :city, :county_name, :zip4, :state, :udprn, :company, :department
124
132
  attr_accessor :mailsort, :barcode, :type
125
-
126
- end
127
-
133
+
134
+ end
135
+
128
136
  class AddressListItem
129
137
 
130
138
  attr_accessor :id, :street_address, :place
131
139
 
132
140
  end
133
-
134
- end
141
+ end
142
+
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{ruby-postcodeanywhere}
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Chris Norman}]
@@ -1,6 +1,6 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require 'spec_helper'
2
2
 
3
- describe "RubyPostcodeanywhere" do
3
+ describe PostcodeAnywhere do
4
4
  it "fails" do
5
5
  fail "hey buddy, you should probably rename this file and start specing for real"
6
6
  end
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,9 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $LOAD_PATH.unshift(File.dirname(__FILE__))
3
- require 'rspec'
4
- require 'ruby-postcodeanywhere'
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'webmock/rspec'
5
4
 
6
- # Requires supporting files with custom matchers and macros, etc,
7
- # in ./support/ and its subdirectories.
8
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
5
+ require 'ruby-postcodeanywhere'
9
6
 
10
7
  RSpec.configure do |config|
11
-
12
8
  end
9
+
metadata CHANGED
@@ -1,82 +1,93 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ruby-postcodeanywhere
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - Chris Norman
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2011-08-04 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
11
+ date: 2011-08-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
16
14
  name: httparty
17
- requirement: &id001 !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: "0"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
23
20
  type: :runtime
24
21
  prerelease: false
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
27
28
  name: rspec
28
- requirement: &id002 !ruby/object:Gem::Requirement
29
- none: false
30
- requirements:
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
31
  - - ~>
32
- - !ruby/object:Gem::Version
32
+ - !ruby/object:Gem::Version
33
33
  version: 2.3.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 2.3.0
41
+ - !ruby/object:Gem::Dependency
38
42
  name: bundler
39
- requirement: &id003 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- version: "0"
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
45
48
  type: :development
46
49
  prerelease: false
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
49
56
  name: jeweler
50
- requirement: &id004 !ruby/object:Gem::Requirement
51
- none: false
52
- requirements:
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
53
59
  - - ~>
54
- - !ruby/object:Gem::Version
60
+ - !ruby/object:Gem::Version
55
61
  version: 1.6.2
56
62
  type: :development
57
63
  prerelease: false
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 1.6.2
69
+ - !ruby/object:Gem::Dependency
60
70
  name: rcov
61
- requirement: &id005 !ruby/object:Gem::Requirement
62
- none: false
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: "0"
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
67
76
  type: :development
68
77
  prerelease: false
69
- version_requirements: *id005
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
70
83
  description: Gem to provide basic access to PostcodeAnywhere services
71
84
  email: chris@norman.me
72
85
  executables: []
73
-
74
86
  extensions: []
75
-
76
- extra_rdoc_files:
87
+ extra_rdoc_files:
77
88
  - LICENSE.txt
78
89
  - README.rdoc
79
- files:
90
+ files:
80
91
  - .document
81
92
  - .rspec
82
93
  - Gemfile
@@ -91,34 +102,27 @@ files:
91
102
  - spec/ruby-postcodeanywhere_spec.rb
92
103
  - spec/spec_helper.rb
93
104
  homepage: http://github.com/intothefire/ruby-postcodeanywhere
94
- licenses:
105
+ licenses:
95
106
  - MIT
107
+ metadata: {}
96
108
  post_install_message:
97
109
  rdoc_options: []
98
-
99
- require_paths:
110
+ require_paths:
100
111
  - lib
101
- required_ruby_version: !ruby/object:Gem::Requirement
102
- none: false
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- hash: 3545380737166476937
107
- segments:
108
- - 0
109
- version: "0"
110
- required_rubygems_version: !ruby/object:Gem::Requirement
111
- none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: "0"
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ! '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
116
122
  requirements: []
117
-
118
123
  rubyforge_project:
119
- rubygems_version: 1.8.5
124
+ rubygems_version: 2.0.3
120
125
  signing_key:
121
126
  specification_version: 3
122
127
  summary: Gem to provide basic access to PostcodeAnywhere services
123
128
  test_files: []
124
-