Class: JobFilter
- Inherits:
-
Object
- Object
- JobFilter
- Defined in:
- lib/filtering/job_filter.rb
Class Method Summary collapse
- .contains_keywords?(description, keywords) ⇒ Boolean
- .discard(job_list, title_keywords_file) ⇒ Object
- .filter_jobs(jobs, description_keywords_file) ⇒ Object
- .load_keywords(filename) ⇒ Object
- .title_contains_unwanted_keywords?(title, allowed_keywords) ⇒ Boolean
Class Method Details
.contains_keywords?(description, keywords) ⇒ Boolean
12 13 14 |
# File 'lib/filtering/job_filter.rb', line 12 def self.contains_keywords?(description, keywords) keywords.any? { |keyword| description.downcase.include?(keyword.downcase) } end |
.discard(job_list, title_keywords_file) ⇒ Object
2 3 4 5 |
# File 'lib/filtering/job_filter.rb', line 2 def self.discard(job_list, title_keywords_file) title_keywords = load_keywords(title_keywords_file) job_list.reject { |job| title_contains_unwanted_keywords?(job['title'].to_s.downcase, title_keywords) } end |
.filter_jobs(jobs, description_keywords_file) ⇒ Object
7 8 9 10 |
# File 'lib/filtering/job_filter.rb', line 7 def self.filter_jobs(jobs, description_keywords_file) description_keywords = load_keywords(description_keywords_file) jobs.select { |job| contains_keywords?(job['description'], description_keywords) } end |
.load_keywords(filename) ⇒ Object
20 21 22 23 |
# File 'lib/filtering/job_filter.rb', line 20 def self.load_keywords(filename) path = File.(filename) File.readlines(path, chomp: true).map(&:downcase) end |
.title_contains_unwanted_keywords?(title, allowed_keywords) ⇒ Boolean
16 17 18 |
# File 'lib/filtering/job_filter.rb', line 16 def self.title_contains_unwanted_keywords?(title, allowed_keywords) !allowed_keywords.any? { |keyword| title.include?(keyword.downcase) } end |