weworkremotely 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 070de757b13d25ed6cb2944557edc822a4fdf8a7
4
+ data.tar.gz: 2f1d7a17a18d0679133dae89e59397189e3d6106
5
+ SHA512:
6
+ metadata.gz: e494b7ffb9ba400629e710486c7ccaaecaf83815aa4333f874fb7e360c589734865111cc41fdabe66161be1d1eced18b758bd844df1bfb4511aa5cbd2b415811
7
+ data.tar.gz: 7c74579e7fde14ee14659c82aab8372cac2c85beaff06ad118b94da5a147917ca310c4c78aa8dcb9687d8ed421ba12fe1695bda7630e8dd8d9656f2ecc02e301
@@ -0,0 +1,36 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /spec/examples.txt
9
+ /test/tmp/
10
+ /test/version_tmp/
11
+ /tmp/
12
+
13
+ ## Specific to RubyMotion:
14
+ .dat*
15
+ .repl_history
16
+ build/
17
+
18
+ ## Documentation cache and generated files:
19
+ /.yardoc/
20
+ /_yardoc/
21
+ /doc/
22
+ /rdoc/
23
+
24
+ ## Environment normalization:
25
+ /.bundle/
26
+ /vendor/bundle
27
+ /lib/bundler/man/
28
+
29
+ # for a library or gem, you might want to ignore these files since the code is
30
+ # intended to run in multiple environments; otherwise, check them in:
31
+ # Gemfile.lock
32
+ # .ruby-version
33
+ # .ruby-gemset
34
+
35
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
36
+ .rvmrc
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ # A sample Gemfile
2
+ source "https://rubygems.org"
3
+
4
+ gemspec
@@ -0,0 +1,54 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ weworkremotely (1.3.3)
5
+ bundler (~> 1.11)
6
+ nokogiri (~> 1.6.7)
7
+ rails-html-sanitizer (~> 1.0)
8
+ require_all
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ coderay (1.1.1)
14
+ diff-lcs (1.2.5)
15
+ loofah (2.0.3)
16
+ nokogiri (>= 1.5.9)
17
+ method_source (0.8.2)
18
+ mini_portile2 (2.0.0)
19
+ nokogiri (1.6.7.2)
20
+ mini_portile2 (~> 2.0.0.rc2)
21
+ pry (0.10.3)
22
+ coderay (~> 1.1.0)
23
+ method_source (~> 0.8.1)
24
+ slop (~> 3.4)
25
+ rails-html-sanitizer (1.0.3)
26
+ loofah (~> 2.0)
27
+ rake (10.4.2)
28
+ require_all (1.3.3)
29
+ rspec (3.4.0)
30
+ rspec-core (~> 3.4.0)
31
+ rspec-expectations (~> 3.4.0)
32
+ rspec-mocks (~> 3.4.0)
33
+ rspec-core (3.4.3)
34
+ rspec-support (~> 3.4.0)
35
+ rspec-expectations (3.4.0)
36
+ diff-lcs (>= 1.2.0, < 2.0)
37
+ rspec-support (~> 3.4.0)
38
+ rspec-mocks (3.4.1)
39
+ diff-lcs (>= 1.2.0, < 2.0)
40
+ rspec-support (~> 3.4.0)
41
+ rspec-support (3.4.1)
42
+ slop (3.6.0)
43
+
44
+ PLATFORMS
45
+ ruby
46
+
47
+ DEPENDENCIES
48
+ pry
49
+ rake
50
+ rspec
51
+ weworkremotely!
52
+
53
+ BUNDLED WITH
54
+ 1.11.2
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 Eric Baker
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,22 @@
1
+ #We Work Remotely
2
+
3
+ This Ruby Gem provides a CLI to view the remote job postings found on [WeWorkRemotely.com](http://weworkremotely.com).
4
+
5
+ ## Installation
6
+
7
+ $ gem install weworkremotely
8
+
9
+ ## Usage
10
+
11
+ Type the below command and follow the on-screen prompts.
12
+
13
+ $ weworkremotely
14
+
15
+ ## Contributing
16
+
17
+ Bug reports and pull requests are welcome on GitHub at https://github.com/e-baker/weworkremotely-cli-gem. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
18
+
19
+
20
+ ## License
21
+
22
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
@@ -0,0 +1,15 @@
1
+ require_relative './config/environment'
2
+
3
+ def reload!
4
+ # load_all "./config" if Dir.exists?("./config")
5
+ # load_all "./bin" if Dir.exists?("./bin")
6
+ load_all "./lib" if Dir.exists?("./lib")
7
+ load_all "./*.rb" if Dir.entries(".").include?(/\.rb/)
8
+ end
9
+
10
+ task :console do
11
+ puts "Loading the environment."
12
+ reload!
13
+ puts "Console Initiated. Begin, master."
14
+ Pry.start
15
+ end
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "weworkremotely"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ require "irb"
10
+ IRB.start
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/weworkremotely'
4
+
5
+ WeWorkRemotely::Controller.new.call
@@ -0,0 +1,13 @@
1
+ require 'open-uri'
2
+ require 'nokogiri'
3
+ require 'rails-html-sanitizer'
4
+ require 'require_all'
5
+
6
+ module WeWorkRemotely
7
+ end
8
+
9
+ require_relative "./weworkremotely/category"
10
+ require_relative "./weworkremotely/company"
11
+ require_relative "./weworkremotely/controller"
12
+ require_relative "./weworkremotely/job"
13
+ require_relative "./weworkremotely/scraper"
@@ -0,0 +1,46 @@
1
+ class WeWorkRemotely::Category
2
+ attr_accessor :name, :jobs
3
+
4
+ @@all = []
5
+
6
+ def initialize(name)
7
+ @name = name
8
+ @jobs = []
9
+ end
10
+
11
+ def self.all
12
+ @@all
13
+ end
14
+
15
+ def self.destroy_all
16
+ @@all.clear
17
+ end
18
+
19
+ def save
20
+ @@all << self
21
+ end
22
+
23
+ def self.create(name)
24
+ category = WeWorkRemotely::Category.new(name)
25
+ category.save
26
+ category
27
+ end
28
+
29
+ def add_job(job)
30
+ self.jobs << job unless self.jobs.include?(job)
31
+ job.category = self unless job.category == self
32
+ end
33
+
34
+ def companies
35
+ self.jobs.collect { |j| j.company }.uniq
36
+ end
37
+
38
+ def self.find_or_create_by_name(name)
39
+ self.all.detect { |category| category.name == name } || self.create(name)
40
+ end
41
+
42
+ def self.find_by_name(name)
43
+ self.all.detect { |cat| cat.name == name }
44
+ end
45
+
46
+ end
@@ -0,0 +1,42 @@
1
+ class WeWorkRemotely::Company
2
+ attr_accessor :name, :jobs
3
+
4
+ @@all = []
5
+
6
+ def initialize(name)
7
+ @name = name
8
+ @jobs = []
9
+ end
10
+
11
+ def self.all
12
+ @@all
13
+ end
14
+
15
+ def self.destroy_all
16
+ @@all.clear
17
+ end
18
+
19
+ def save
20
+ @@all << self
21
+ end
22
+
23
+ def self.create(name)
24
+ company = WeWorkRemotely::Company.new(name)
25
+ company.save
26
+ company
27
+ end
28
+
29
+ def add_job(job)
30
+ self.jobs << job unless self.jobs.include?(job)
31
+ job.company = self unless job.company == self
32
+ end
33
+
34
+ def categories
35
+ self.jobs.collect { |job| job.category }.uniq
36
+ end
37
+
38
+ def self.find_or_create_by_name(name, *job)
39
+ self.all.detect { |company| company.name == name } || self.create(name)
40
+ end
41
+
42
+ end
@@ -0,0 +1,92 @@
1
+ class WeWorkRemotely::Controller
2
+
3
+ def initialize
4
+ scraper = WeWorkRemotely::Scraper.new
5
+ scraper.scrape
6
+ end
7
+
8
+ def call
9
+ input = ""
10
+ while input != "exit"
11
+ puts "Please make your selection."
12
+ puts "List: "
13
+ puts " (a)ll"
14
+ puts " (p)rogramming"
15
+ puts " (d)esign"
16
+ puts " de(v)ops/sysadmin"
17
+ puts " (m)arketing"
18
+ puts " (c)opywriting"
19
+ puts " customer (s)upport"
20
+ puts " (b)usiness/exec & management"
21
+ puts " all (o)ther jobs"
22
+ puts "You can also look by job (n)umber."
23
+ puts "To exit, type 'exit'."
24
+ input = gets.strip
25
+ case input
26
+ when "a"
27
+ list_all
28
+ when "p"
29
+ list_by_category("programming")
30
+ when "d"
31
+ list_by_category("design")
32
+ when "v"
33
+ list_by_category("devops")
34
+ when "m"
35
+ list_by_category("marketing")
36
+ when "c"
37
+ list_by_category("copywriting")
38
+ when "s"
39
+ list_by_category("customer support")
40
+ when "o"
41
+ list_by_category("other")
42
+ when "b"
43
+ list_by_category("business")
44
+ when "n"
45
+ puts "Which job number would you like to see?"
46
+ number = gets.strip
47
+ show_job(number)
48
+ end
49
+ end
50
+ end
51
+
52
+ def list_all
53
+ WeWorkRemotely::Job.all.each do |j|
54
+ puts "#{j.id}. #{j.name} for #{j.company.name}"
55
+ end
56
+ end
57
+
58
+ def show_job(id)
59
+ if j = WeWorkRemotely::Job.find_by_id(id)
60
+ puts "===== Job Details ====="
61
+ puts ""
62
+ puts "Job ID: #{j.id}"
63
+ puts "Title: #{j.name}"
64
+ puts "Company: #{j.company.name}"
65
+ puts "Category: #{j.category.name.capitalize}"
66
+ puts "Posted: #{j.published_date}"
67
+ puts "Job URL: #{j.url}"
68
+ puts "Job Description:"
69
+ puts "#{j.description.squeeze("\n")}"
70
+ puts ""
71
+ puts "======================="
72
+ puts ""
73
+ else
74
+ puts "======== ERROR ========"
75
+ puts ""
76
+ puts "Could not find a job with that ID."
77
+ puts ""
78
+ puts "======================="
79
+ end
80
+ end
81
+
82
+ def list_by_category(category)
83
+ puts ""
84
+ c = WeWorkRemotely::Category.find_by_name(category)
85
+ puts "There are <#{c.jobs.length}> #{category} jobs!"
86
+ c.jobs.each do |job|
87
+ puts "#{job.id}. #{job.name} for #{job.company.name}"
88
+ end
89
+ puts ""
90
+ end
91
+
92
+ end
@@ -0,0 +1,31 @@
1
+ class WeWorkRemotely::Job
2
+ attr_accessor :id, :company, :name, :description, :published_date, :url, :category
3
+
4
+ @@all = []
5
+
6
+ def initialize(id: nil, company: nil, name: nil, description: nil, published_date: nil, url: nil, category: nil)
7
+ @id = id if id
8
+ @name = name
9
+ @published_date = published_date if published_date
10
+ @url = url if url
11
+ @description = description if description
12
+ @company = WeWorkRemotely::Company.find_or_create_by_name(company) if company
13
+ @company.add_job(self)
14
+ @category = WeWorkRemotely::Category.find_or_create_by_name(category) if category
15
+ @category.add_job(self)
16
+ @@all << self
17
+ end
18
+
19
+ def self.all
20
+ @@all
21
+ end
22
+
23
+ def self.find_by_id(id)
24
+ self.all.detect { |job| job.id == id }
25
+ end
26
+
27
+ def self.destroy_all
28
+ @@all.clear
29
+ end
30
+
31
+ end
@@ -0,0 +1,47 @@
1
+ class WeWorkRemotely::Scraper
2
+
3
+ def scrape
4
+ #open_url = open("https://weworkremotely.com")
5
+ scrape_category("programming")
6
+ scrape_category("design")
7
+ scrape_category("devops")
8
+ scrape_category("marketing")
9
+ scrape_category("copywriting")
10
+ scrape_category("customer support")
11
+ scrape_category("business")
12
+ scrape_category("other")
13
+ end
14
+
15
+ def scrape_category(category)
16
+ case category
17
+ when "programming"
18
+ open_url = open("https://weworkremotely.com/categories/2-programming/jobs.rss")
19
+ when "design"
20
+ open_url = open("https://weworkremotely.com/categories/1-design/jobs.rss")
21
+ when "devops"
22
+ open_url = open("https://weworkremotely.com/categories/6-devops-sysadmin/jobs.rss")
23
+ when "marketing"
24
+ open_url = open("https://weworkremotely.com/categories/9-marketing/jobs.rss")
25
+ when "copywriting"
26
+ open_url = open("https://weworkremotely.com/categories/5-copywriting/jobs.rss")
27
+ when "customer support"
28
+ open_url = open("https://weworkremotely.com/categories/7-customer-support/jobs.rss")
29
+ when "business"
30
+ open_url = open("https://weworkremotely.com/categories/3-business-exec-management/jobs.rss")
31
+ when "other"
32
+ open_url = open("https://weworkremotely.com/categories/4-remote/jobs.rss")
33
+ end
34
+ puts "Scraping for #{category} jobs..."
35
+ doc = Nokogiri::XML(open_url)
36
+ @@results = []
37
+ doc.xpath("//item").each do |list_item|
38
+ title = list_item.css('title').text.split(": ")
39
+ catgeory = WeWorkRemotely::Category.find_or_create_by_name(category)
40
+ id = list_item.css('guid').text.split("/").last.split("-").first
41
+ sanitizer = Rails::Html::FullSanitizer.new
42
+ sanitized_description = sanitizer.sanitize(list_item.css('description').text)
43
+ @@results << WeWorkRemotely::Job.new(id: id, company: title[0], name: title[1], description: sanitized_description, published_date: list_item.css('pubDate').text, url: list_item.css('guid').text, category: category)
44
+ end
45
+ end
46
+
47
+ end
@@ -0,0 +1 @@
1
+ 01_scraper_spec.rb
@@ -0,0 +1,96 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
4
+ # this file to always be loaded, without a need to explicitly require it in any
5
+ # files.
6
+ #
7
+ # Given that it is always loaded, you are encouraged to keep this file as
8
+ # light-weight as possible. Requiring heavyweight dependencies from this file
9
+ # will add to the boot time of your test suite on EVERY test run, even for an
10
+ # individual file that may not need all of that loaded. Instead, consider making
11
+ # a separate helper file that requires the additional dependencies and performs
12
+ # the additional setup, and require it from the spec files that actually need
13
+ # it.
14
+ #
15
+ # The `.rspec` file also contains a few flags that are not defaults but that
16
+ # users commonly want.
17
+ #
18
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
19
+ RSpec.configure do |config|
20
+ # rspec-expectations config goes here. You can use an alternate
21
+ # assertion/expectation library such as wrong or the stdlib/minitest
22
+ # assertions if you prefer.
23
+ config.expect_with :rspec do |expectations|
24
+ # This option will default to `true` in RSpec 4. It makes the `description`
25
+ # and `failure_message` of custom matchers include text for helper methods
26
+ # defined using `chain`, e.g.:
27
+ # be_bigger_than(2).and_smaller_than(4).description
28
+ # # => "be bigger than 2 and smaller than 4"
29
+ # ...rather than:
30
+ # # => "be bigger than 2"
31
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
32
+ end
33
+
34
+ # rspec-mocks config goes here. You can use an alternate test double
35
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
36
+ config.mock_with :rspec do |mocks|
37
+ # Prevents you from mocking or stubbing a method that does not exist on
38
+ # a real object. This is generally recommended, and will default to
39
+ # `true` in RSpec 4.
40
+ mocks.verify_partial_doubles = true
41
+ end
42
+
43
+ # The settings below are suggested to provide a good initial experience
44
+ # with RSpec, but feel free to customize to your heart's content.
45
+ =begin
46
+ # These two settings work together to allow you to limit a spec run
47
+ # to individual examples or groups you care about by tagging them with
48
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
49
+ # get run.
50
+ config.filter_run :focus
51
+ config.run_all_when_everything_filtered = true
52
+
53
+ # Allows RSpec to persist some state between runs in order to support
54
+ # the `--only-failures` and `--next-failure` CLI options. We recommend
55
+ # you configure your source control system to ignore this file.
56
+ config.example_status_persistence_file_path = "spec/examples.txt"
57
+
58
+ # Limits the available syntax to the non-monkey patched syntax that is
59
+ # recommended. For more details, see:
60
+ # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
61
+ # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
62
+ # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
63
+ config.disable_monkey_patching!
64
+
65
+ # This setting enables warnings. It's recommended, but in some cases may
66
+ # be too noisy due to issues in dependencies.
67
+ config.warnings = true
68
+
69
+ # Many RSpec users commonly either run the entire suite or an individual
70
+ # file, and it's useful to allow more verbose output when running an
71
+ # individual spec file.
72
+ if config.files_to_run.one?
73
+ # Use the documentation formatter for detailed output,
74
+ # unless a formatter has already been configured
75
+ # (e.g. via a command-line flag).
76
+ config.default_formatter = 'doc'
77
+ end
78
+
79
+ # Print the 10 slowest examples and example groups at the
80
+ # end of the spec run, to help surface which specs are running
81
+ # particularly slow.
82
+ config.profile_examples = 10
83
+
84
+ # Run specs in random order to surface order dependencies. If you find an
85
+ # order dependency and want to debug it, you can fix the order by providing
86
+ # the seed, which is printed after each run.
87
+ # --seed 1234
88
+ config.order = :random
89
+
90
+ # Seed global randomization in this process using the `--seed` CLI option.
91
+ # Setting this allows you to use `--seed` to deterministically reproduce
92
+ # test failures related to randomization by passing the same `--seed` value
93
+ # as the one that triggered the failure.
94
+ Kernel.srand config.seed
95
+ =end
96
+ end
@@ -0,0 +1,25 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'weworkremotely'
6
+ s.version = '1.3.3'
7
+ s.date = '2016-04-03'
8
+ s.description = 'A catalog of recent remote job listings found on weworkremotely.com.'
9
+ s.summary = 'We Work Remotely'
10
+ s.author = 'Eric Baker'
11
+ s.email = 'eric@ericbaker.me'
12
+ s.files = `git ls-files`.split($\)
13
+ s.homepage = 'http://ericbaker.me/gems/weworkremotely-cli-gem'
14
+ s.license = 'MIT'
15
+ s.executables << 'weworkremotely'
16
+ s.require_paths = ["lib", "lib/weworkremotely"]
17
+
18
+ s.add_runtime_dependency "bundler", "~> 1.11"
19
+ s.add_development_dependency "rake"
20
+ s.add_development_dependency "rspec"
21
+ s.add_runtime_dependency "nokogiri", "~> 1.6.7"
22
+ s.add_development_dependency "pry"
23
+ s.add_runtime_dependency "require_all"
24
+ s.add_runtime_dependency "rails-html-sanitizer", "~> 1.0"
25
+ end
metadata ADDED
@@ -0,0 +1,162 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: weworkremotely
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.3
5
+ platform: ruby
6
+ authors:
7
+ - Eric Baker
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-04-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.11'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.11'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: nokogiri
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.6.7
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.6.7
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: require_all
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rails-html-sanitizer
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ description: A catalog of recent remote job listings found on weworkremotely.com.
112
+ email: eric@ericbaker.me
113
+ executables:
114
+ - weworkremotely
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".rspec"
120
+ - Gemfile
121
+ - Gemfile.lock
122
+ - LICENSE
123
+ - README.md
124
+ - Rakefile
125
+ - bin/console
126
+ - bin/setup
127
+ - bin/weworkremotely
128
+ - lib/weworkremotely.rb
129
+ - lib/weworkremotely/category.rb
130
+ - lib/weworkremotely/company.rb
131
+ - lib/weworkremotely/controller.rb
132
+ - lib/weworkremotely/job.rb
133
+ - lib/weworkremotely/scraper.rb
134
+ - spec/01_scraper_spec.rb
135
+ - spec/spec_helper.rb
136
+ - weworkremotely.gemspec
137
+ homepage: http://ericbaker.me/gems/weworkremotely-cli-gem
138
+ licenses:
139
+ - MIT
140
+ metadata: {}
141
+ post_install_message:
142
+ rdoc_options: []
143
+ require_paths:
144
+ - lib
145
+ - lib/weworkremotely
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ requirements: []
157
+ rubyforge_project:
158
+ rubygems_version: 2.4.5.1
159
+ signing_key:
160
+ specification_version: 4
161
+ summary: We Work Remotely
162
+ test_files: []