ladyboy 0.0.3 → 0.0.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/ladyboy.rb CHANGED
@@ -44,11 +44,11 @@ module Ladyboy
44
44
  def sexes_es
45
45
  @sexes_es ||= begin
46
46
  s = {}
47
- fn = File.join(root, "data", "name2sex_es.csv")
47
+ fn = File.join(root, "data", "name2sex_es2.csv")
48
48
  File.read(fn).each_line.with_index do |line, priority|
49
49
  name, sex = line.chomp.split(",")
50
50
  sex = sex.to_i
51
- s[name] = [sex, priority] if SEX.has_key?(sex)
51
+ s[name] = [sex, priority] if SEX.has_key?(sex) && !s[name]
52
52
  end
53
53
  s
54
54
  end
@@ -19,18 +19,22 @@ module Ladyboy
19
19
  major = major_name_and_sex_for_full_name(@full_name)
20
20
  return unless major
21
21
 
22
- @first_name = Unicode.capitalize(major[0])
22
+ @first_name = major[0].split(" ").map{|m| Unicode.capitalize(m) } * " " if major[0]
23
23
  @gender = SEX[major[1]]
24
24
  end
25
25
 
26
26
  def major_name_and_sex_for_full_name(full_name)
27
- full_name.to_s.scan(/[[:word:]]+/).map do |token|
28
- name = normalize_name(token)
29
- if name
30
- sex = Ladyboy.sexes[name] || Ladyboy.sexes_es[name] || [nil, Float::INFINITY]
31
- [name, *sex]
27
+ tokens = full_name.to_s.scan(/[[:word:]]+/)
28
+ [2, 1].map do |size|
29
+ tokens.each_cons(size).map do |slice|
30
+ token = slice * " "
31
+ name = normalize_name(token)
32
+ if name
33
+ sex = Ladyboy.sexes[name] || Ladyboy.sexes_es[name] || [nil, Float::INFINITY]
34
+ [name, *sex, -size]
35
+ end
32
36
  end
33
- end.compact.sort_by(&:last).first
37
+ end.flatten(1).compact.sort_by{ |n| [n[3], n[2]] }.first
34
38
  end
35
39
  end
36
40
  end
@@ -1,3 +1,3 @@
1
1
  module Ladyboy
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -59,6 +59,14 @@ describe Ladyboy::Parser do
59
59
  example.first_name.must_equal 'Jesus'
60
60
  example.gender.must_equal :male
61
61
 
62
+ example = Ladyboy::Parser.new 'Buendia Francisco Javier'
63
+ example.first_name.must_equal 'Francisco Javier'
64
+ example.gender.must_equal :male
65
+
66
+ example = Ladyboy::Parser.new 'Kilian Byszio'
67
+ example.first_name.must_equal 'Килиан'
68
+ example.gender.must_equal :male
69
+
62
70
  example = Ladyboy::Parser.new nil
63
71
  example.first_name.must_equal nil
64
72
  example.gender.must_equal nil
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ladyboy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Yanovich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-17 00:00:00.000000000 Z
11
+ date: 2016-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -81,6 +81,7 @@ files:
81
81
  - data/name2name.csv
82
82
  - data/name2sex.csv
83
83
  - data/name2sex_es.csv
84
+ - data/name2sex_es2.csv
84
85
  - ladyboy.gemspec
85
86
  - lib/ladyboy.rb
86
87
  - lib/ladyboy/parser.rb