namor 0.4.2 → 0.5.0
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/namor/namor.rb +33 -10
- data/lib/namor/version.rb +1 -1
- data/spec/lib/namor_spec.rb +9 -0
- metadata +4 -4
data/lib/namor/namor.rb
CHANGED
@@ -55,6 +55,19 @@ class Namor::Namor
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
+
def assemble(firstname, middlename, lastname, de_maidened_last)
|
59
|
+
firstname = final_cleaning(firstname)
|
60
|
+
middlename = final_cleaning(middlename)
|
61
|
+
lastname = final_cleaning(lastname)
|
62
|
+
de_maidened_last = final_cleaning(de_maidened_last)
|
63
|
+
|
64
|
+
fm = [firstname, middlename].compact.join(' ')
|
65
|
+
fullname = [lastname, fm].compact.join(',')
|
66
|
+
nee_fullname = [de_maidened_last, fm].compact.join(',')
|
67
|
+
|
68
|
+
[firstname, middlename, lastname, fullname, nee_fullname]
|
69
|
+
end
|
70
|
+
|
58
71
|
def extract(name, opts = {})
|
59
72
|
return [] if name.nil?
|
60
73
|
|
@@ -84,16 +97,7 @@ class Namor::Namor
|
|
84
97
|
lastname, de_maidened_last = demaiden(pieces.join(' '))
|
85
98
|
end
|
86
99
|
|
87
|
-
firstname
|
88
|
-
middlename = final_cleaning(middlename)
|
89
|
-
lastname = final_cleaning(lastname)
|
90
|
-
de_maidened_last = final_cleaning(de_maidened_last)
|
91
|
-
|
92
|
-
fm = [firstname, middlename].compact.join(' ')
|
93
|
-
fullname = [lastname, fm].compact.join(',')
|
94
|
-
nee_fullname = [de_maidened_last, fm].compact.join(',')
|
95
|
-
|
96
|
-
[firstname, middlename, lastname, fullname, nee_fullname]
|
100
|
+
assemble(firstname, middlename, lastname, de_maidened_last)
|
97
101
|
end
|
98
102
|
|
99
103
|
def extract_with_cluster(name, opts = {})
|
@@ -102,6 +106,25 @@ class Namor::Namor
|
|
102
106
|
ary << ary[3].gsub(/\W/, '_')
|
103
107
|
end
|
104
108
|
|
109
|
+
def extract_from_pieces(hash)
|
110
|
+
assemble(
|
111
|
+
scrub(hash[:first]),
|
112
|
+
scrub(hash[:middle]),
|
113
|
+
scrub(hash[:last].upcase),
|
114
|
+
scrub(demaiden(hash[:last].upcase).last)
|
115
|
+
)
|
116
|
+
end
|
117
|
+
|
118
|
+
def extract_from_pieces_with_cluster(hash)
|
119
|
+
ary = assemble(
|
120
|
+
scrub(hash[:first]),
|
121
|
+
scrub(hash[:middle]),
|
122
|
+
scrub(hash[:last].upcase),
|
123
|
+
scrub(demaiden(hash[:last].upcase).last)
|
124
|
+
)
|
125
|
+
ary << ary[3].gsub(/\W/, '_')
|
126
|
+
ary << ary[4].gsub(/\W/, '_')
|
127
|
+
end
|
105
128
|
|
106
129
|
def components(*args)
|
107
130
|
suppression_list = @config[:suppress] ? @config[:suppress].map(&:upcase) : []
|
data/lib/namor/version.rb
CHANGED
data/spec/lib/namor_spec.rb
CHANGED
@@ -80,6 +80,15 @@ describe "name extract" do
|
|
80
80
|
@namor.extract("Jones-De Quento, Maria").should == ['MARIA', nil, 'JONESDEQUENTO', 'JONESDEQUENTO,MARIA', 'DEQUENTO,MARIA']
|
81
81
|
@namor.extract_with_cluster("Jones-De Quento, Maria").should == ['MARIA', nil, 'JONESDEQUENTO', 'JONESDEQUENTO,MARIA', 'DEQUENTO,MARIA', 'JONESDEQUENTO_MARIA']
|
82
82
|
end
|
83
|
+
|
84
|
+
it "should build pieces from input components" do
|
85
|
+
@namor.extract_from_pieces(:first => 'John', :middle => 'M', :last => 'Smith').should == ['JOHN', 'M', 'SMITH', 'SMITH,JOHN M', 'SMITH,JOHN M']
|
86
|
+
@namor.extract_from_pieces(:first => 'Susan', :last => 'Smith-Jones').should == ['SUSAN', nil, 'SMITHJONES', 'SMITHJONES,SUSAN', 'JONES,SUSAN']
|
87
|
+
|
88
|
+
@namor.extract_from_pieces_with_cluster(:first => 'John', :middle => 'M', :last => 'Smith').should == ['JOHN', 'M', 'SMITH', 'SMITH,JOHN M', 'SMITH,JOHN M', 'SMITH_JOHN_M', 'SMITH_JOHN_M']
|
89
|
+
@namor.extract_from_pieces_with_cluster(:first => 'Susan', :last => 'Smith-Jones').should == ['SUSAN', nil, 'SMITHJONES', 'SMITHJONES,SUSAN', 'JONES,SUSAN', 'SMITHJONES_SUSAN', 'JONES_SUSAN']
|
90
|
+
end
|
91
|
+
|
83
92
|
end
|
84
93
|
|
85
94
|
describe "with cluster coding" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: namor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
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: 2012-09-
|
12
|
+
date: 2012-09-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -108,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
108
108
|
version: '0'
|
109
109
|
segments:
|
110
110
|
- 0
|
111
|
-
hash:
|
111
|
+
hash: -1676995470774616053
|
112
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
113
|
none: false
|
114
114
|
requirements:
|
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
117
117
|
version: '0'
|
118
118
|
segments:
|
119
119
|
- 0
|
120
|
-
hash:
|
120
|
+
hash: -1676995470774616053
|
121
121
|
requirements: []
|
122
122
|
rubyforge_project:
|
123
123
|
rubygems_version: 1.8.24
|