Sha256: a0ada00cc94c0756defcb42431bacc4f36acc7bd634bb2fe109d488540e3fcc1

Contents?: true

Size: 1.64 KB

Versions: 6

Compression:

Stored size: 1.64 KB

Contents

require 'remote_job_scraper/version'

require 'sites/we_work_remotely'
require 'sites/remote_ok'
require 'sites/jobs_rails42'

require 'support/offer_parser'
require 'support/user_agent'
require 'support/spreadsheet_creator'

require 'nokogiri'
require 'open-uri'
require 'csv'
require "thor"

module RemoteJobScraper

  AVAILABLE_SITES = %w(we_work_remotely remote_ok 42jobs_rails)

  class CLI < Thor

    desc 'collect_jobs', "Retrieves data from #{AVAILABLE_SITES.join(', ')}"
    def collect_jobs
      [Sites::WeWorkRemotely, Sites::RemoteOk].each do |klass|
        klass.new.collect_jobs
      end
    end

    desc 'collect_jobs_from SITE', "Retrieves data from SITE, e.g. #{AVAILABLE_SITES.sample}"
    def collect_jobs_from(site)
      case site
      when 'we_work_remotely'
        then Sites::WeWorkRemotely.new.collect_jobs
      when 'remote_ok'
        then Sites::RemoteOk.new.collect_jobs
      when '42jobs_rails'
        then Sites::JobsRails42.new.collect_jobs
      else
        raise "#{site} is not correct. Use: #{AVAILABLE_SITES.join(', ')}."
      end
    end

    desc 'generate_summary', "Merges data from #{AVAILABLE_SITES.join(', ')} and exports to XLS file"
    def generate_summary
      Support::SpreadsheetCreator.generate
    end

    desc 'remove DIRNAME', "Removes DIRNAME (default: 'data'). Use carefully."
    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}."
    end
  end

  def self.root
    File.dirname __dir__
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
remote_job_scraper-0.4.2 lib/remote_job_scraper.rb
remote_job_scraper-0.4.1 lib/remote_job_scraper.rb
remote_job_scraper-0.4.0 lib/remote_job_scraper.rb
remote_job_scraper-0.3.1 lib/remote_job_scraper.rb
remote_job_scraper-0.3.0 lib/remote_job_scraper.rb
remote_job_scraper-0.2.0 lib/remote_job_scraper.rb