noble_names 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/noble_names.rb +44 -5
- data/lib/noble_names/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13ba2226740a52d259fe57676f0f6c1777ba3ab7
|
4
|
+
data.tar.gz: 9980b8da945a59d1ef21d001a7b0b28932749d75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25c51046e0c5dac382aa8ab952311e3e70c5b6769bce3fabb99a1ca28e19255b065a90789e937c5514d70ed6f57fa9e3c9f0c2fdd785cb68dcb7d23357024ed8
|
7
|
+
data.tar.gz: 372994cf60221fc9603da0e799aeac8c667685d6f1b6186c46a838793751ac4709b00a9b2b7c895cad72b841e6620a61d38f8d1065471c638d5acf4c8c3de5c5
|
data/lib/noble_names.rb
CHANGED
@@ -1,24 +1,63 @@
|
|
1
|
+
# Coding: UTF-8
|
1
2
|
require 'noble_names/version'
|
2
3
|
require 'noble_names/config'
|
3
4
|
require 'noble_names/initializer'
|
4
5
|
require 'noble_names/data'
|
5
6
|
|
6
|
-
#
|
7
|
+
# The main Module that has all necessary functions to
|
8
|
+
# process names.
|
7
9
|
module NobleNames
|
8
10
|
# Capitalizes a word if it needs to be capitalized.
|
9
11
|
# @param [String] word the word that needs to be capitalized.
|
10
|
-
# @
|
12
|
+
# @return [String] word the word either capitalized or not.
|
11
13
|
def self.noble_capitalize(word)
|
12
14
|
prefix = prefix?(word)
|
13
15
|
if in_particle_list?(word)
|
14
|
-
word
|
16
|
+
word.downcase
|
15
17
|
elsif prefix
|
16
|
-
prefix
|
18
|
+
capitalize(prefix) + capitalize(word.gsub(prefix, ''))
|
17
19
|
else
|
18
|
-
word
|
20
|
+
capitalize(word)
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
24
|
+
# Upcases the first small letters in each word,
|
25
|
+
# seperated by hyphons.
|
26
|
+
# But beware, words seperated by spaces stay small.
|
27
|
+
# @return [String] the capitalized word.
|
28
|
+
# @example
|
29
|
+
# capitalize('hans-ebert') #=> 'Hans-Ebert'
|
30
|
+
# capitalize('john') #=> 'John'
|
31
|
+
# capitalize('john james') #=> 'John james'
|
32
|
+
def self.capitalize(word)
|
33
|
+
word.gsub first_small_letters do |letter|
|
34
|
+
upcase(letter)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Upcases a letter even if it is a german mutated vowel.
|
39
|
+
# @return [String] letter the upcased letter.
|
40
|
+
# @example
|
41
|
+
# upcase('t') #=> 'T'
|
42
|
+
def self.upcase(letter)
|
43
|
+
match = letter.match(/ä|ö|ü/)
|
44
|
+
if match
|
45
|
+
case match.to_s
|
46
|
+
when 'ä' then 'Ä'
|
47
|
+
when 'ö' then 'Ö'
|
48
|
+
when 'ü' then 'Ü'
|
49
|
+
end
|
50
|
+
else letter.upcase
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# A Regex literal to find the first letter of a string
|
55
|
+
# as well as the first letter after a hyphon.
|
56
|
+
# @return [Regexp] first_small_letters the regexp in question
|
57
|
+
def self.first_small_letters
|
58
|
+
/((\A.|(?<=\-).))/
|
59
|
+
end
|
60
|
+
|
22
61
|
# Checks weither a word is in the nobility particle list.
|
23
62
|
# @param [String] word the word that is checked.
|
24
63
|
# @return [Boolean] `true` if `word` is in the particle_list,
|
data/lib/noble_names/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: noble_names
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Martensen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|