dropmire 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|