guess_who 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4f0934749d80319aef42f5b912477b481c7d9613
4
- data.tar.gz: 1a123613725cabc6d14920fd5e00332e4149b661
3
+ metadata.gz: b5ae1113d97108f1f407c1cdc594a80a8a5a57eb
4
+ data.tar.gz: 4263b7cc6c0e92d1b93324a661bd3ee69f39b149
5
5
  SHA512:
6
- metadata.gz: 92b38b2b99955d1c8d31d135af43dc6c16429c7d32cd614a4d88b3394f86d4c0716bef82d41b84e077b6b2bd29a7bfae2d2277df6fa5ad87e9c5e9b5cfe8b1e0
7
- data.tar.gz: 8b0170155f892e123a524cdf833bb21ea5d198a7203eb5e4029179a68eae3fa5c855a13b312c981699bfd7587040346c621ef4d64c283b49c576ec043bbfd7a4
6
+ metadata.gz: 7ad58d3503d093288a2e9a807e29aac5a784064d628293d393af31989226aa8085c39918625bdb0867c7427bb7e0c63231904caf9c8ba977e172f6f421dce68a
7
+ data.tar.gz: b43efedf5d21c0d0a771732da8e73f68a1ca8bd28793c328ffd076b0f128416d07f84abd427ca65e01e5ad2dbea1f347096cf9ee711dc58caabb347c89f9c465
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
data/guess_who.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: guess_who 0.1.1 ruby lib
5
+ # stub: guess_who 0.1.2 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "guess_who".freeze
9
- s.version = "0.1.1"
9
+ s.version = "0.1.2"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["odina".freeze]
14
- s.date = "2017-10-14"
14
+ s.date = "2017-10-15"
15
15
  s.description = "Extracts name from username or email".freeze
16
16
  s.email = "odina.abellana@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
@@ -4,6 +4,7 @@ module GuessWho
4
4
  module NamesLoader
5
5
  def self.load!
6
6
  names = []
7
+ names_by_first_letter = {}
7
8
 
8
9
  filenames = [
9
10
  "files/initials.txt",
@@ -15,13 +16,21 @@ module GuessWho
15
16
  filenames.each do |filename|
16
17
  path = File.join(File.dirname(__FILE__), '../../', filename)
17
18
  f = File.open(path, "r")
18
- f.each_line { |l| names << l.split(" ")[0] }
19
+ f.each_line do |l|
20
+ name = l.split(" ")[0]
21
+ first_char = name[0].downcase
22
+ names << name
23
+ names_by_first_letter[first_char] ||= []
24
+ names_by_first_letter[first_char] << name
25
+ end
19
26
  f.close
20
27
  end
21
28
 
22
29
  @@names = names
30
+ @@names_by_first_letter = names_by_first_letter
23
31
  end
24
32
 
25
33
  def self.names; @@names; end
34
+ def self.names_by_first_letter(letter); @@names_by_first_letter[letter] || []; end
26
35
  end
27
36
  end
@@ -20,9 +20,11 @@ module GuessWho
20
20
  score = 0
21
21
 
22
22
  @token_array.each do |token|
23
+ first_char = token[0][0]
24
+ names = NamesLoader.names_by_first_letter(first_char.downcase)
23
25
  m = Amatch::JaroWinkler.new(token)
24
26
 
25
- score += NamesLoader.names.map do |name|
27
+ score += names.map do |name|
26
28
  m.match(name)
27
29
  end.max
28
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guess_who
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - odina
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-14 00:00:00.000000000 Z
11
+ date: 2017-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amatch