melissa_data 0.2.1 → 0.2.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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b45cd57a7506db6b7878611cb74c9f68593a3e2e
|
4
|
+
data.tar.gz: 32ce7c1ff706ee8346c05164784cb1cefc979e32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d622bc34471c75ad69409846ee1c1af69faecc6736eac47a66fb1bcfdc656be0dd6870ce325a9d591a82b59e1b230db2c50c42195c3726eb5aa178ff6b8a721
|
7
|
+
data.tar.gz: 176521fa39987ed20af5bc32d1eebee100c30a536fee01e00c52086d9a1471789b1aa8d402ffb265d26d7cb01207a8b2ea2c9760904d723cd9f3ad3b661e224a
|
data/lib/melissa_data/version.rb
CHANGED
@@ -1,8 +1,21 @@
|
|
1
1
|
module MelissaData
|
2
2
|
module WebSmart
|
3
3
|
class Client
|
4
|
-
def
|
5
|
-
MelissaData::WebSmart::PropertyAPI.new
|
4
|
+
def initialize
|
5
|
+
@client = MelissaData::WebSmart::PropertyAPI.new
|
6
|
+
end
|
7
|
+
|
8
|
+
def property_by_apn(fips:, apn:)
|
9
|
+
@client.property_by_apn(fips: fips, apn: apn)
|
10
|
+
end
|
11
|
+
|
12
|
+
def property_by_address_key(address_key:)
|
13
|
+
@client.property_by_address_key(address_key: address_key)
|
14
|
+
end
|
15
|
+
|
16
|
+
def address(address:, city:, state:, zip:, country: "USA")
|
17
|
+
@client.address(address: address, city: city, state: state,
|
18
|
+
zip: zip, country: country)
|
6
19
|
end
|
7
20
|
end
|
8
21
|
end
|
@@ -4,13 +4,31 @@ require 'nokogiri'
|
|
4
4
|
module MelissaData
|
5
5
|
module WebSmart
|
6
6
|
class PropertyAPI
|
7
|
-
def
|
7
|
+
def property_by_apn(fips:, apn:)
|
8
8
|
resp = RestClient.get('https://property.melissadata.net/v3/REST/Service.svc/doLookup',
|
9
9
|
{ params: { id: MelissaData.web_smart_id,
|
10
10
|
fips: fips,
|
11
11
|
apn: apn } })
|
12
12
|
PropertyXMLParser.new(Nokogiri::XML(resp)).parse
|
13
13
|
end
|
14
|
+
|
15
|
+
def property_by_address_key(address_key:)
|
16
|
+
resp = RestClient.get('https://property.melissadata.net/v3/REST/Service.svc/doLookup',
|
17
|
+
{ params: { id: MelissaData.web_smart_id,
|
18
|
+
AddressKey: address_key } })
|
19
|
+
PropertyXMLParser.new(Nokogiri::XML(resp)).parse
|
20
|
+
end
|
21
|
+
|
22
|
+
def address(address:, city:, state:, zip:, country:)
|
23
|
+
resp = RestClient.get('https://address.melissadata.net/v3/WEB/GlobalAddress/doGlobalAddress',
|
24
|
+
{ params: { id: MelissaData.web_smart_id,
|
25
|
+
a1: address,
|
26
|
+
loc: city,
|
27
|
+
admarea: state,
|
28
|
+
postal: zip,
|
29
|
+
ctry: country} })
|
30
|
+
AddressXMLParser.new(Nokogiri::XML(resp)).parse
|
31
|
+
end
|
14
32
|
end
|
15
33
|
end
|
16
34
|
end
|
@@ -26,6 +26,26 @@ module MelissaData
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
class AddressXMLParser < XMLParser
|
30
|
+
def parse
|
31
|
+
viperize_hash(Hash[retrieved_fields.zip(field_details)])
|
32
|
+
end
|
33
|
+
|
34
|
+
def field_details
|
35
|
+
xml_children.first.children.last.children.first.children
|
36
|
+
.map(&:children)
|
37
|
+
.map(&:text)
|
38
|
+
end
|
39
|
+
|
40
|
+
def retrieved_fields
|
41
|
+
xml_children.first.children.last.children.first.children.map(&:name)
|
42
|
+
end
|
43
|
+
|
44
|
+
def xml_children
|
45
|
+
xml_document.children
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
29
49
|
class PropertyXMLParser < XMLParser
|
30
50
|
def parse
|
31
51
|
parsed_hash = {}
|