class RemoteJobScraper::CLI

Constants

AVAILABLE_SITES

Public Instance Methods

collect_elixir_companies() click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# File lib/remote_job_scraper/cli.rb, line 12
def collect_remote_companies
  Sites::GithubRemoteJobs.new.collect_companies
end
generate_summary() click to toggle source
# File lib/remote_job_scraper/cli.rb, line 75
def generate_summary
  Support::SpreadsheetCreator.generate
end
remove(dirname = 'data') click to toggle source
# 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