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 +4 -4
- data/README.md +2 -2
- data/lib/classes/searchable.rb +40 -9
- data/spec/searchable_spec.rb +7 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13cb96922821572cccc2881d5b0a7c22dafc16d6
|
4
|
+
data.tar.gz: 69ee0ec5baa75bb2b8e4e4170e09ccb7f171f511
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
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}
|
data/lib/classes/searchable.rb
CHANGED
@@ -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
|
-
|
13
|
-
|
14
|
-
|
15
|
-
@
|
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
|
-
@
|
26
|
-
|
27
|
-
@regexes
|
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
|
-
|
30
|
-
@regex
|
60
|
+
|
61
|
+
@regex
|
31
62
|
else
|
32
63
|
@regex
|
33
64
|
end
|
data/spec/searchable_spec.rb
CHANGED
@@ -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
|