ladyboy 0.0.3 → 0.0.4

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