presume 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.
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