dropmire 0.1.3 → 0.1.4
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/lib/dropmire/identity.rb +28 -79
- data/lib/dropmire/parser.rb +21 -14
- data/lib/dropmire/version.rb +1 -1
- data/spec/identity_spec.rb +1 -1
- data/spec/parser_spec.rb +15 -3
- metadata +2 -2
data/lib/dropmire/identity.rb
CHANGED
@@ -8,94 +8,43 @@ module Dropmire
|
|
8
8
|
|
9
9
|
@attrs = p.attrs
|
10
10
|
end
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
def city
|
22
|
-
attrs[:address][:city]
|
23
|
-
end
|
24
|
-
|
25
|
-
def state
|
26
|
-
attrs[:address][:state]
|
27
|
-
end
|
28
|
-
|
29
|
-
def zipcode
|
30
|
-
attrs[:address][:zipcode]
|
31
|
-
end
|
32
|
-
|
33
|
-
def names
|
34
|
-
{ first: first_name, middle: middle_name, last: last_name }
|
35
|
-
end
|
36
|
-
|
37
|
-
def first_name
|
38
|
-
attrs[:name][:first]
|
39
|
-
end
|
40
|
-
|
41
|
-
def middle_name
|
42
|
-
attrs[:name][:middle]
|
43
|
-
end
|
44
|
-
|
45
|
-
def last_name
|
46
|
-
attrs[:name][:last]
|
47
|
-
end
|
48
|
-
|
49
|
-
def drivers_license_number
|
50
|
-
attrs[:license_num]
|
51
|
-
end
|
52
|
-
|
53
|
-
def drivers_license_iin
|
54
|
-
attrs[:iin]
|
55
|
-
end
|
56
|
-
|
57
|
-
def drivers_license_class
|
58
|
-
attrs[:license_class]
|
59
|
-
end
|
60
|
-
|
61
|
-
def drivers_license_expiration_date
|
62
|
-
attrs[:expiration_date]
|
63
|
-
end
|
64
|
-
|
65
|
-
def date_of_birth
|
66
|
-
attrs[:date_of_birth]
|
11
|
+
|
12
|
+
def method_missing(method, *args, &block)
|
13
|
+
is_attr = attrs.fetch(method, nil)
|
14
|
+
if is_attr.nil? && !(dl_id_values.include?(method))
|
15
|
+
super
|
16
|
+
else
|
17
|
+
key = find_key_from_method(method)
|
18
|
+
attrs[key]
|
19
|
+
end
|
67
20
|
end
|
68
21
|
|
69
|
-
# For meta attr methods later...
|
70
|
-
#
|
71
|
-
# def method_missing(method, *args, &block)
|
72
|
-
# if addr_lookup method.to_s
|
73
|
-
|
74
|
-
# else
|
75
|
-
# super
|
76
|
-
# end
|
77
|
-
# end
|
78
|
-
|
79
22
|
private
|
80
23
|
|
81
24
|
def attrs
|
82
25
|
@attrs
|
83
26
|
end
|
84
27
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
# else
|
90
|
-
# end
|
91
|
-
# end
|
28
|
+
def dl_id_values
|
29
|
+
[:drivers_license_expiration_date, :drivers_license_iin,
|
30
|
+
:drivers_license_number]
|
31
|
+
end
|
92
32
|
|
93
|
-
|
94
|
-
|
95
|
-
|
33
|
+
def find_key_from_method(method)
|
34
|
+
case method.to_s
|
35
|
+
when 'drivers_license_expiration_date'
|
36
|
+
:expiration_date
|
37
|
+
when 'drivers_license_iin'
|
38
|
+
:iin
|
39
|
+
when 'drivers_license_number'
|
40
|
+
:license_num
|
41
|
+
else
|
42
|
+
method
|
43
|
+
end
|
44
|
+
end
|
96
45
|
|
97
|
-
|
98
|
-
|
99
|
-
|
46
|
+
def drivers_license_attrs
|
47
|
+
%w(expiration_date iin )
|
48
|
+
end
|
100
49
|
end
|
101
50
|
end
|
data/lib/dropmire/parser.rb
CHANGED
@@ -15,7 +15,7 @@ module Dropmire
|
|
15
15
|
# Returns the Hash of results from the string.
|
16
16
|
def initialize(text, options = {})
|
17
17
|
@text = text
|
18
|
-
@attrs = {
|
18
|
+
@attrs = {}
|
19
19
|
end
|
20
20
|
|
21
21
|
def attrs
|
@@ -37,10 +37,10 @@ module Dropmire
|
|
37
37
|
|
38
38
|
def parse_address
|
39
39
|
addr = address(@text)
|
40
|
-
@attrs[:
|
41
|
-
@attrs[:
|
40
|
+
@attrs[:state] = state(addr)
|
41
|
+
@attrs[:city] = city(addr)
|
42
42
|
|
43
|
-
[@attrs[:
|
43
|
+
[@attrs[:city], @attrs[:state]]
|
44
44
|
end
|
45
45
|
|
46
46
|
def address(text)
|
@@ -56,14 +56,14 @@ module Dropmire
|
|
56
56
|
addr[3..l].capitalize
|
57
57
|
end
|
58
58
|
|
59
|
-
def carrot_string
|
60
|
-
str = /\^(.*)\^/.match(
|
59
|
+
def carrot_string(text)
|
60
|
+
str = /\^(.*)\^/.match(text).to_s
|
61
61
|
len = str.length-2
|
62
62
|
str[1..len].split('^')
|
63
63
|
end
|
64
64
|
|
65
65
|
def parse_carrot_string
|
66
|
-
name_string, street_string = carrot_string
|
66
|
+
name_string, street_string = carrot_string(@text)
|
67
67
|
names split_name(name_string)
|
68
68
|
street street_string
|
69
69
|
end
|
@@ -73,11 +73,18 @@ module Dropmire
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def names(names)
|
76
|
-
@attrs[:
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
76
|
+
@attrs[:first_name] = names[1].capitalize
|
77
|
+
@attrs[:last_name] = names[0].capitalize
|
78
|
+
@attrs[:middle_name] = capitalize_or_nil(names[2])
|
79
|
+
|
80
|
+
[@attrs[:first_name], @attrs[:middle_name], @attrs[:last_name]]
|
81
|
+
end
|
82
|
+
|
83
|
+
# Capitalizes and returns @name if not nil, returns nil otherwise.
|
84
|
+
def capitalize_or_nil(name)
|
85
|
+
unless name.nil?
|
86
|
+
name.capitalize
|
87
|
+
end
|
81
88
|
end
|
82
89
|
|
83
90
|
def street(street)
|
@@ -86,13 +93,13 @@ module Dropmire
|
|
86
93
|
ary.each do |s|
|
87
94
|
str << s.capitalize
|
88
95
|
end
|
89
|
-
@attrs[:
|
96
|
+
@attrs[:street] = str.join(' ')
|
90
97
|
end
|
91
98
|
|
92
99
|
def zipcode
|
93
100
|
str = /![\s]*[0-9]*/.match(@text).to_s
|
94
101
|
zip = str[1..(str.length)].strip
|
95
|
-
@attrs[:
|
102
|
+
@attrs[:zipcode] = zip[0,5]
|
96
103
|
end
|
97
104
|
|
98
105
|
def license_class
|
data/lib/dropmire/version.rb
CHANGED
data/spec/identity_spec.rb
CHANGED
@@ -68,7 +68,7 @@ describe Dropmire::Identity do
|
|
68
68
|
|
69
69
|
describe "#drivers_license_expiration_date" do
|
70
70
|
it "returns correct value" do
|
71
|
-
expect(subject.drivers_license_expiration_date).to eql "2015-06"
|
71
|
+
expect(subject.drivers_license_expiration_date).to eql "2015-06-07"
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
data/spec/parser_spec.rb
CHANGED
@@ -47,14 +47,26 @@ describe Dropmire::Parser do
|
|
47
47
|
describe "#carrot_string" do
|
48
48
|
it "returns the correct array" do
|
49
49
|
carrot_arr = ["JACOBSEN$CONNOR$ALAN", "6357 SINKOLA DR"]
|
50
|
-
|
50
|
+
@demo_text = """%FLPALM CITY^JACOBSEN$CONNOR$ALAN^6357 SINKOLA DR^ ?;6360101021210193207=1506199306070=?+! 323124522 E 1602 ECCECC00000?"""
|
51
|
+
expect(subject.carrot_string(@demo_text)).to eql carrot_arr
|
51
52
|
end
|
52
53
|
end
|
53
54
|
|
54
55
|
describe "#names" do
|
55
56
|
it "returns the correct array of strings" do
|
56
|
-
|
57
|
-
expect(subject.names(%w(JACOBSEN CONNOR ALAN))).to eql
|
57
|
+
name_arr = %w(Connor Alan Jacobsen)
|
58
|
+
expect(subject.names(%w(JACOBSEN CONNOR ALAN))).to eql name_arr
|
59
|
+
end
|
60
|
+
|
61
|
+
context "when middle name not present" do
|
62
|
+
it "returns the correct hash" do
|
63
|
+
@demo_text = """%FLPALM CITY^JACOBSEN$CONNOR$^6357 SINKOLA DR^ ?;6360101021210193207=1506199306070=?+! 323124522 E 1602 ECCECC00000?"""
|
64
|
+
carrot_arr = subject.carrot_string(@demo_text)
|
65
|
+
name_string = carrot_arr.first
|
66
|
+
name_arr = subject.split_name(name_string)
|
67
|
+
val = ["Connor", nil, "Jacobsen"]
|
68
|
+
expect(subject.names(name_arr)).to eql val
|
69
|
+
end
|
58
70
|
end
|
59
71
|
end
|
60
72
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dropmire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-11-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|