jobs_chaser 0.2.0 → 0.2.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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jobs_chaser.rb +23 -2
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2fd61afdb8ce90d1bb6c509103d69a28497881cb1efb57ade5c48f20d56bbe71
4
- data.tar.gz: 96901c6af053fc716ec1d99bf28d0a031e90f7cf9a68a99eb622bfacd9e78c2b
3
+ metadata.gz: 3271e471df23ab93cd44e4a0293257758b7fe670de209b1020da1969f6322020
4
+ data.tar.gz: 706285922c1dbef755294c377f8fd9f79bf2b9ecfa79c7b251ea7caa33631ee8
5
5
  SHA512:
6
- metadata.gz: 69c2db805d84d9cb9def89e9f39390594ce0f521e6ce1b9794c2ba80a0516262c19342484ea8871e603269b9a3115ab0e76d33a443d9aa61a5913c7228392dbb
7
- data.tar.gz: d6888c85fee81279a05974cf89890368c60575999976db335ae163ca59c272ad7ce4e632f15f91f58141e948c076ed1e331ccb7bdcb3faf2dec90166fdd4d26c
6
+ metadata.gz: 2bf6bc78b3c3756e059b36e6ca95c59b2215e6c3e7761deb217afa84af5a042285134b13ba1bb0147cba58c91a029cc13c391b33471c5f1af07303b4de37bc19
7
+ data.tar.gz: ed768cca777992bca03275feccd4050b106c184a9505620f75f21e530a077f766fc8b0177483244c1981a5816913ce98c4814bae0361339f28088e630bab12a1
data/lib/jobs_chaser.rb CHANGED
@@ -5,8 +5,8 @@ require_relative 'api_clients/remotive_client'
5
5
  require_relative 'filtering/job_filter'
6
6
 
7
7
  class JobsChaser
8
- def initialize(sites, title_keywords_file, description_keywords_file)
9
- @sites = sites
8
+ def initialize(title_keywords_file, description_keywords_file)
9
+ @sites = YAML.load_file('config/sites.yml')
10
10
  @title_keywords_file = title_keywords_file
11
11
  @description_keywords_file = description_keywords_file
12
12
  end
@@ -23,6 +23,8 @@ class JobsChaser
23
23
 
24
24
  job_list = JobFilter.discard(job_list, @title_keywords_file)
25
25
  valid_jobs = JobFilter.filter_jobs(job_list, @description_keywords_file)
26
+
27
+ export(csv_filename, valid_jobs)
26
28
  end
27
29
 
28
30
  def select_api_client(site_name)
@@ -35,4 +37,23 @@ class JobsChaser
35
37
  raise "Unsupported site: #{site_name}"
36
38
  end
37
39
  end
40
+
41
+ def export(csv_filename, offers)
42
+ if defined?(Rails)
43
+ # Running in a Rails project
44
+ rails_root = Rails.root
45
+ else
46
+ # Running outside a Rails project, use a fallback directory
47
+ rails_root = Pathname.new(__FILE__).dirname.dirname
48
+ end
49
+
50
+ output_path = rails_root.join('data', csv_filename)
51
+
52
+ CSV.open(output_path, 'w') do |csv|
53
+ csv << ['Date', 'Job Title', 'Company', 'Location', 'URL']
54
+ offers.each { |offer| csv << [Date.today, offer[:title], offer[:company], offer[:location], offer[:url]] }
55
+ end
56
+
57
+ puts "Job offers have been exported and saved to #{output_path}."
58
+ end
38
59
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jobs_chaser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sante Di Maio