Class: RemoteJobScraper::CLI
- Inherits:
-
Thor
- Object
- Thor
- RemoteJobScraper::CLI
- Defined in:
- lib/remote_job_scraper/cli.rb
Constant Summary collapse
- AVAILABLE_SITES =
%w(we_work_remotely remote_ok 42jobs_rails)
Instance Method Summary collapse
- #collect_elixir_companies ⇒ Object
- #collect_jobs(limit = nil, delay = nil) ⇒ Object
- #collect_jobs_from(site, limit = nil) ⇒ Object
- #collect_remote_companies ⇒ Object
- #generate_summary ⇒ Object
- #remove(dirname = 'data') ⇒ Object
Instance Method Details
#collect_elixir_companies ⇒ Object
20 21 22 |
# File 'lib/remote_job_scraper/cli.rb', line 20 def collect_elixir_companies Sites::ElixirCompanies.new.collect_companies end |
#collect_jobs(limit = nil, delay = nil) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/remote_job_scraper/cli.rb', line 28 def collect_jobs(limit = nil, delay = nil) limit = limit.to_i limit = limit.zero? ? nil : limit begin unless delay.nil? arr = delay.split('..').map{ |d| Float(d) } range = arr[0]..arr[1] RemoteJobScraper.configuration.delay_range = range end rescue raise "Passed: DELAY=#{range} DELAY need to be in format: 2.0..5.0 " end [ Sites::WeWorkRemotely, Sites::RemoteOk, Sites::JobsRails42 ].each do |klass| klass.new.collect_jobs(limit: limit) end end |
#collect_jobs_from(site, limit = nil) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/remote_job_scraper/cli.rb', line 55 def collect_jobs_from(site, limit=nil) limit = limit.to_i limit = limit.zero? ? nil : limit case site when 'we_work_remotely' then Sites::WeWorkRemotely.new.collect_jobs(limit: limit) when 'remote_ok' then Sites::RemoteOk.new.collect_jobs(limit: limit) when '42jobs_rails' then Sites::JobsRails42.new.collect_jobs(limit: limit) else raise "#{site} is not correct. Use: #{AVAILABLE_SITES.join(', ')}." end end |
#collect_remote_companies ⇒ Object
12 13 14 |
# File 'lib/remote_job_scraper/cli.rb', line 12 def collect_remote_companies Sites::GithubRemoteJobs.new.collect_companies end |
#generate_summary ⇒ Object
75 76 77 |
# File 'lib/remote_job_scraper/cli.rb', line 75 def generate_summary Support::SpreadsheetCreator.generate end |
#remove(dirname = 'data') ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/remote_job_scraper/cli.rb', line 80 def remove(dirname = 'data') puts "[Warning!]" puts "This command will remove #{Dir.pwd}/#{dirname} permanently" puts "Press Ctrl-C to abort." sleep 3 FileUtils.rm_rf(dirname) puts "Removed data in #{Dir.pwd}/#{dirname}." rescue Interrupt => e exit end |