guess_who 0.1.1 → 0.1.2

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: 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