presume 0.0.3 → 0.0.4

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: 9f7cffcbceea0dbba9c09052aef226006988e2e8
4
- data.tar.gz: d2f85fd5e4705f57d7d6e21795fb5555ed572481
3
+ metadata.gz: 13cb96922821572cccc2881d5b0a7c22dafc16d6
4
+ data.tar.gz: 69ee0ec5baa75bb2b8e4e4170e09ccb7f171f511
5
5
  SHA512:
6
- metadata.gz: 2bf2cdcd853b5fe8692243bd67397f1664482ea0750bad9cc1212f3c979163c950d941b3b27ae0db3d0837e9c5c5c27387cd59158b0fdf625291e6d2ab0ac425
7
- data.tar.gz: 9ead41c210079f8494421cbe0b9d08b5470d2aea2419c3a87f514581ead44418c4cab96e9d4201d9c4418621e336f6951f9391b1d5cabaf8e07dec68936c4c2e
6
+ metadata.gz: c22668853c786dbad5c30986d1919e875dbe06ef1601861188f536aeac3787770d5a1e6b802e318e1cb1e23a2959f520d06102771ea5cd0e56385d220fea55ca
7
+ data.tar.gz: 300f8f75d369ef5ceda7d44847361ce4ec2af9d828be336f17e6567b5ab77d6dcc33e418aa4517306b1ae3eb6eaa45f13ce858c6438c533db449813ad027474c
data/README.md CHANGED
@@ -66,12 +66,12 @@ Checks resumes for specific skills, positions, and their duration
66
66
  # After parsing a resume
67
67
 
68
68
  # Checking for certain position or education ("name", expected_minimum_duration_in_years)
69
- intake_hash = {"Project Coordinator|Project Assistant" => 1, "Bachelors Finance|BF|B.F." => 4}
69
+ intake_hash = {"Project Coordinator,Project Assistant" => 1, "Bachelors Finance|BF|B.F." => 4}
70
70
 
71
71
  # Check for positions
72
72
  presume.positions?(intake_hash)
73
73
 
74
- #=> {"Project Coordinator|Project Assistant" => [ MatchedHeaderObject1 ], "Bachelors Finance|BF|B.F." => [ MatchedHeaderObject2 ]}
74
+ #=> {"Project Coordinator,Project Assistant" => [ MatchedHeaderObject1 ], "Bachelors Finance|BF|B.F." => [ MatchedHeaderObject2 ]}
75
75
 
76
76
  # Checking for certain skills ("name", expected_minimum_duration_in_years)
77
77
  intake_hash = {"database management" => 1, "clear communication" => 0}
@@ -7,12 +7,25 @@ class Searchable
7
7
  @duration = hash[:duration]
8
8
  end
9
9
 
10
+ def separate_synonyms
11
+ @separate_synonyms ||= @raw_name.split(Regexp.new("(| )\,(| )"))
12
+ end
13
+
14
+ def add_synonyms_to_names
15
+ @names = {}
16
+ separate_synonyms.each do |synonym|
17
+ @names[synonym] = []
18
+ end
19
+ end
20
+
10
21
  def names
11
22
  if @names.nil?
12
- @names = []
13
- @searchable_words = @raw_name.downcase.split
14
- @searchable_words.each do |word|
15
- @names += [stemmed(word)]
23
+ add_synonyms_to_names
24
+ separate_synonyms.length.times do |n|
25
+ @searchable_words = separate_synonyms[n].downcase.split
26
+ @searchable_words.each do |word|
27
+ @names[separate_synonyms[n]] += [stemmed(word)]
28
+ end
16
29
  end
17
30
  @names
18
31
  else
@@ -22,12 +35,30 @@ class Searchable
22
35
 
23
36
  def regex
24
37
  if @regex.nil?
25
- @regexes = ""
26
- names.each do |name|
27
- @regexes += '(?=.*' + name + ')'
38
+ @separate_regexes = []
39
+ separate_synonyms.length.times do |n|
40
+ @regexes = ""
41
+ names[separate_synonyms[n]].each do |name|
42
+ @regexes += '(?=.*' + name + ')'
43
+ end
44
+ @regexes += ".*"
45
+ @separate_regexes += [@regexes]
46
+ end
47
+
48
+ @regex_count = 0
49
+
50
+ @separate_regexes.each do |separate_regex|
51
+ @regex_count += 1
52
+ @new_regex = Regexp.new(separate_regex, "i")
53
+
54
+ if @regex_count == 1
55
+ @regex = @new_regex
56
+ else
57
+ @regex = Regexp.union(@regex, @new_regex)
58
+ end
28
59
  end
29
- @regexes += ".*"
30
- @regex = Regexp.new(@regexes, "i")
60
+
61
+ @regex
31
62
  else
32
63
  @regex
33
64
  end
@@ -3,8 +3,10 @@ require 'spec_helper'
3
3
  describe Searchable do
4
4
 
5
5
  searchable_params = {raw_name: "marketing coordinator", duration: 1}
6
+ searchable_params_2 = {raw_name: "marketing coordinator,marketing assistant", duration: 1}
6
7
  let(:searchables) {Searchables.new({"marketing coordinator" => 1})}
7
8
  let(:searchable){Searchable.new(searchable_params)}
9
+ let(:searchable_2){Searchable.new(searchable_params_2)}
8
10
 
9
11
  it "takes hash input" do
10
12
  searchables.all
@@ -29,6 +31,11 @@ describe Searchable do
29
31
  expect(searchable.check_regex("marketing possey")).to be_falsy
30
32
  end
31
33
 
34
+ it "separates synonyms" do
35
+ expect(searchable_2.separate_synonyms.class.name).to eq("Array")
36
+ expect(searchable.separate_synonyms.class.name).to eq("Array")
37
+ end
38
+
32
39
 
33
40
 
34
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: presume
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
  - Leigh Silverstein