name_splitter 0.1.4 → 0.1.5

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: 1a9ecae57929fd6fc1656e7895a00e2de12872bd
4
- data.tar.gz: 7abe667c28de3ba099ce479c16cfc8eb75a05a5d
3
+ metadata.gz: 8f8eff789aed6e740d2deb32d6611ee1f6f109f6
4
+ data.tar.gz: 1c7e23dc60098b1a4b0609f30e0a951c8041f6f6
5
5
  SHA512:
6
- metadata.gz: 30fe5a0f08474cb3b2d21d184b72e02c209c1820afadaab58e8b486ca8388db63d75c5a742b24dec1375a2180b5c1009d3439b30b0796f16175ed1e1cd88d328
7
- data.tar.gz: 83efda15ec71e1a0e0f428bf5839681222ca067e883f6d9b8fc695e519886f2733412ab2eb4c40d2b229440e503f0d7e1d1e55e2acc8009d9d4945de4d5ff748
6
+ metadata.gz: 22a57459a630bd777602760421fc261ee95d9f2afb2ee959715efad10d4d4fc8c285069212c32f0c5b5a191dffeb70509f5470af2feda04eac3d845afdc85b6d
7
+ data.tar.gz: a24f421fe44b20873ed02848a5edfaa209800fdaf523dd363e696d3f097a16dcee8e0ccba6080278d57860d48a9a7144953236864e0e018aa462b4521968302c
data/lib/name_splitter.rb CHANGED
@@ -24,17 +24,24 @@ module NameSplitter
24
24
 
25
25
  def name=(fullname)
26
26
  name_arr = fullname.split(" ")
27
+
27
28
  if name_arr.length == 1
28
29
  self.first_name = name_arr.shift
30
+ return
31
+ end
32
+
33
+ if is_first_element_a_last_name(name_arr)
34
+ self.last_name = name_arr.shift.gsub(",","")
35
+ end
36
+
37
+ self.salutation = name_arr.shift(number_of_salutations(name_arr)).join(" ")
38
+
39
+ if name_arr.length == 1 && last_name.empty?
40
+ self.last_name = name_arr.shift
29
41
  else
30
- self.salutation = name_arr.shift(number_of_salutations(name_arr)).join(" ")
31
- if name_arr.length == 1
32
- self.last_name = name_arr.shift
33
- else
34
- self.first_name = name_arr.shift(number_of_first_names(name_arr)).join(" ")
35
- self.middle_name = name_arr.shift if contains_middle_name(name_arr)
36
- self.last_name_check(name_arr)
37
- end
42
+ self.first_name = name_arr.shift(number_of_first_names(name_arr)).join(" ")
43
+ self.middle_name = name_arr.shift if contains_middle_name(name_arr)
44
+ self.last_name_check(name_arr)
38
45
  end
39
46
  end
40
47
 
@@ -48,6 +55,8 @@ module NameSplitter
48
55
  self.last_name = last_name_arr.join(" ").gsub(/[.,]+/, "")
49
56
  end
50
57
 
58
+ private
59
+
51
60
  def contains_middle_name(name_arr)
52
61
  #checks whether the array of names passed in contains a likely middle name
53
62
  (name_arr.length == 2 and
@@ -70,7 +79,7 @@ module NameSplitter
70
79
 
71
80
  def number_of_anded_names_before_last_names_if_any(name_arr)
72
81
  return 1 unless contains_an_and(name_arr)
73
- first_name_length = name_arr.length - 1
82
+ first_name_length = name_arr.length - (last_name.empty? ? 1 : 0)
74
83
  first_name_length -= 1 if contains_suffix(name_arr)
75
84
  first_name_length -= 1 if contains_last_name_prefix(name_arr)
76
85
  first_name_length
@@ -81,6 +90,10 @@ module NameSplitter
81
90
  second_first_names.collect { |x| x.upcase }.include?(_name.upcase)
82
91
  end
83
92
 
93
+ def is_first_element_a_last_name(name_arr)
94
+ name_arr[0].strip.match(/,/)
95
+ end
96
+
84
97
  def anded_names?(_name)
85
98
  contains_an_and(_name)
86
99
  end
@@ -1,3 +1,3 @@
1
1
  module NameSplitter
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: name_splitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Hoen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-18 00:00:00.000000000 Z
11
+ date: 2016-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler