house_floor_bills 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/NOTES.md +38 -0
- data/README.md +28 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/house-floor-bills +6 -0
- data/bin/setup +8 -0
- data/blog_post +50 -0
- data/house_floor_bills.gemspec +37 -0
- data/lib/house_floor_bills/bill.rb +4 -0
- data/lib/house_floor_bills/cli.rb +67 -0
- data/lib/house_floor_bills/schedule.rb +26 -0
- data/lib/house_floor_bills/scraper.rb +44 -0
- data/lib/house_floor_bills/version.rb +3 -0
- data/lib/house_floor_bills.rb +11 -0
- data/spec.md +6 -0
- data/terminal_output +97 -0
- metadata +138 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 91f2c4d62ba46bb4fc42b936fa74f78ff3326fd4
|
4
|
+
data.tar.gz: a0f71872a6255f6eb04db140ed000a10da5982fb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d3242b93aca411e5602b938b3e988150716f7ca6b7578358c972a09e8696fc76e7767c59f35411a16f87f777dc713f0859c7e11dd60d17d6c944d94c450a26dd
|
7
|
+
data.tar.gz: 42e3c6eae2fecad31b7cf8fca6edaa7021a578103ca31b2e353e24ac4a8fdcfa5b2594d573d8146fca68140dc1638c31cdfafd0d33ca5925a1eee43f3d41dae1
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
# Contributor Code of Conduct
|
2
|
+
|
3
|
+
As contributors and maintainers of this project, and in the interest of
|
4
|
+
fostering an open and welcoming community, we pledge to respect all people who
|
5
|
+
contribute through reporting issues, posting feature requests, updating
|
6
|
+
documentation, submitting pull requests or patches, and other activities.
|
7
|
+
|
8
|
+
We are committed to making participation in this project a harassment-free
|
9
|
+
experience for everyone, regardless of level of experience, gender, gender
|
10
|
+
identity and expression, sexual orientation, disability, personal appearance,
|
11
|
+
body size, race, ethnicity, age, religion, or nationality.
|
12
|
+
|
13
|
+
Examples of unacceptable behavior by participants include:
|
14
|
+
|
15
|
+
* The use of sexualized language or imagery
|
16
|
+
* Personal attacks
|
17
|
+
* Trolling or insulting/derogatory comments
|
18
|
+
* Public or private harassment
|
19
|
+
* Publishing other's private information, such as physical or electronic
|
20
|
+
addresses, without explicit permission
|
21
|
+
* Other unethical or unprofessional conduct
|
22
|
+
|
23
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
24
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
25
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
26
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
27
|
+
threatening, offensive, or harmful.
|
28
|
+
|
29
|
+
By adopting this Code of Conduct, project maintainers commit themselves to
|
30
|
+
fairly and consistently applying these principles to every aspect of managing
|
31
|
+
this project. Project maintainers who do not follow or enforce the Code of
|
32
|
+
Conduct may be permanently removed from the project team.
|
33
|
+
|
34
|
+
This code of conduct applies both within project spaces and in public spaces
|
35
|
+
when an individual is representing the project or its community.
|
36
|
+
|
37
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
38
|
+
reported by contacting a project maintainer at dalma.boros@gmail.com. All
|
39
|
+
complaints will be reviewed and investigated and will result in a response that
|
40
|
+
is deemed necessary and appropriate to the circumstances. Maintainers are
|
41
|
+
obligated to maintain confidentiality with regard to the reporter of an
|
42
|
+
incident.
|
43
|
+
|
44
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
45
|
+
version 1.3.0, available at
|
46
|
+
[http://contributor-covenant.org/version/1/3/0/][version]
|
47
|
+
|
48
|
+
[homepage]: http://contributor-covenant.org
|
49
|
+
[version]: http://contributor-covenant.org/version/1/3/0/
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2017 Dalma Boros
|
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
|
13
|
+
all 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
|
21
|
+
THE SOFTWARE.
|
data/NOTES.md
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
Objects in this domain:
|
2
|
+
- CLI object
|
3
|
+
- Scraper Object
|
4
|
+
- Weekly Schedule
|
5
|
+
- Bills
|
6
|
+
|
7
|
+
- Coupling: Objects only know about max 1 other object. So when we have classes interacting with each other, we want them to interact with as few objects as possible
|
8
|
+
|
9
|
+
What is a bill?
|
10
|
+
|
11
|
+
A bill has a number
|
12
|
+
A bill has a name
|
13
|
+
A bill has a date added
|
14
|
+
A bill has a PDF
|
15
|
+
(A bill has a URL)
|
16
|
+
|
17
|
+
#=> :number, :name, :date_added, :pdf, :url
|
18
|
+
|
19
|
+
What is a schedule?
|
20
|
+
|
21
|
+
A schedule has bills
|
22
|
+
A schedule has a week
|
23
|
+
A schedule has a publish date
|
24
|
+
A schedule has a last update date
|
25
|
+
|
26
|
+
#=> :bills, :week, :published, :last_updated
|
27
|
+
|
28
|
+
Scraper:
|
29
|
+
|
30
|
+
current = HouseFloorBills::Scraper.new.scrape
|
31
|
+
week_2017_03_27 = HouseFloorBills::Scraper.new("2017-03-27").scrape
|
32
|
+
|
33
|
+
week_2017_03_27.bills.first.name #=> Pesticide Registration Enhancement Act of 2017, as amended
|
34
|
+
|
35
|
+
1. We need a HouseFloorBills::Scraper class
|
36
|
+
2. That class needs to instantiate the schedule for that week
|
37
|
+
3. We need to scrape the details of that schedule
|
38
|
+
4. We need to scrape the individual bills for that schedule and add them to that instance
|
data/README.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# HouseFloorBills
|
2
|
+
|
3
|
+
The house-floor-bills CLI gem provides a CLI interface to view the schedule of bills to be debated on the House of Representatives floor this week. Further details about the scheduled bills can be viewed as well.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
$ gem install house_floor_bills
|
8
|
+
|
9
|
+
## Usage
|
10
|
+
|
11
|
+
Type the following command in your computer's terminal and follow the on-screen prompts.
|
12
|
+
|
13
|
+
$ house-floor-bills
|
14
|
+
|
15
|
+
## Development
|
16
|
+
|
17
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
18
|
+
|
19
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
20
|
+
|
21
|
+
## Contributing
|
22
|
+
|
23
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/house_floor_bills. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
24
|
+
|
25
|
+
|
26
|
+
## License
|
27
|
+
|
28
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "house_floor_bills"
|
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
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
data/blog_post
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
March 17, 2017
|
2
|
+
|
3
|
+
------------------------------
|
4
|
+
CLI Data Gem Project Ideas
|
5
|
+
------------------------------
|
6
|
+
|
7
|
+
- top hip hop songs
|
8
|
+
- house-floor-bills
|
9
|
+
|
10
|
+
------------------------------
|
11
|
+
CLI Data Game Project Steps
|
12
|
+
------------------------------
|
13
|
+
|
14
|
+
1. 'bundle gem house_floor_bills'
|
15
|
+
- tests? y
|
16
|
+
- MIT license? y
|
17
|
+
- code of conduct? y
|
18
|
+
|
19
|
+
2. create bin file 'house-floor-bills' for executables
|
20
|
+
|
21
|
+
3. write shebang line for ruby interpreter in bin file
|
22
|
+
- #!/usr/bin/env ruby
|
23
|
+
|
24
|
+
4. grant executable permission
|
25
|
+
- chmod +x house-floor-bills
|
26
|
+
- (to be able to run executable without evoking ruby interpreter)
|
27
|
+
|
28
|
+
5. create remote repo (could have done this earlier, but it's ok at this point)
|
29
|
+
- git remote add origin git@github.com:dalmaboros/house-floor-bills-cli-app.git
|
30
|
+
- git push -u origin master
|
31
|
+
|
32
|
+
6. encapsulate CLI logic in object
|
33
|
+
- create class HouseFloorBills::CLI in "cli.rb" file in lib
|
34
|
+
- define #call method
|
35
|
+
|
36
|
+
7. declare environment load dependencies
|
37
|
+
- bin/house-floor-bills: require './lib/house_floor_bills'
|
38
|
+
- lib/house_floor_bills will require all other files
|
39
|
+
- lib/house_floor_bills: require_relative './house_floor_bills/cli'
|
40
|
+
- delete HouseFloorBills module
|
41
|
+
- pre-written by bundler: require 'house_floor_bills/version'
|
42
|
+
- change to: require_relative "./house_floor_bills/version"
|
43
|
+
|
44
|
+
8. stub cli.rb behaviors
|
45
|
+
|
46
|
+
03/18/17
|
47
|
+
|
48
|
+
9. add spec file I forgot to add!
|
49
|
+
|
50
|
+
10. create 'bill.rb' and HouseFloorBills::Bill class, and add to environment file
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'house_floor_bills/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "house_floor_bills"
|
8
|
+
spec.version = HouseFloorBills::VERSION
|
9
|
+
spec.date = "2017-03-22"
|
10
|
+
spec.authors = ["Dalma Boros"]
|
11
|
+
spec.email = ["dalma.boros@gmail.com"]
|
12
|
+
|
13
|
+
spec.summary = %q{Bills to be considered on the house floor.}
|
14
|
+
spec.description = %q{Bills scheduled for debate this week on the House of Representatives floor.}
|
15
|
+
spec.homepage = "https://github.com/dalmaboros/house-floor-bills-cli-gem"
|
16
|
+
spec.license = "MIT"
|
17
|
+
|
18
|
+
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
19
|
+
# delete this section to allow pushing this gem to any host.
|
20
|
+
# if spec.respond_to?(:metadata)
|
21
|
+
# spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
22
|
+
# else
|
23
|
+
# raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
24
|
+
# end
|
25
|
+
|
26
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
+
# spec.bindir = "exe"
|
28
|
+
# spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
|
+
spec.executables = ["house-floor-bills"]
|
30
|
+
spec.require_paths = ["lib"]
|
31
|
+
|
32
|
+
spec.add_development_dependency "bundler", "~> 1.11"
|
33
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
34
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
35
|
+
spec.add_development_dependency "pry"
|
36
|
+
spec.add_dependency "nokogiri"
|
37
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
class HouseFloorBills::CLI
|
2
|
+
|
3
|
+
def call
|
4
|
+
welcome
|
5
|
+
list_bills
|
6
|
+
menu
|
7
|
+
end
|
8
|
+
|
9
|
+
def welcome
|
10
|
+
puts "\n************* Welcome to House Floor Bills *************"
|
11
|
+
puts "\nSee which bills are scheduled for debate on the House of Representatives floor."
|
12
|
+
end
|
13
|
+
|
14
|
+
def list_bills
|
15
|
+
s = HouseFloorBills::Scraper.new
|
16
|
+
@schedule = s.scrape
|
17
|
+
puts "\n************* #{@schedule.title} *************\n "
|
18
|
+
@schedule.bills.each.with_index(1) do |bill, i|
|
19
|
+
puts "#{i}. #{bill.number} - #{bill.name}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def print_bill(the_bill)
|
24
|
+
puts "\n[#{the_bill.number}] #{the_bill.name}"
|
25
|
+
puts "\nStatus: #{the_bill.status}"
|
26
|
+
puts "Sponsor: #{the_bill.sponsor}"
|
27
|
+
puts "Committees: #{the_bill.committees}"
|
28
|
+
puts "URL: #{the_bill.url}"
|
29
|
+
puts "PDF: #{the_bill.pdf}"
|
30
|
+
puts "Summary: #{the_bill.summary}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def print_commands
|
34
|
+
puts "\nCOMMANDS:"
|
35
|
+
puts "Enter 1-#{@schedule.bills.length} for more info on corresponding bill."
|
36
|
+
puts "Enter 'open 1-#{@schedule.bills.length}' to open bill URL in browser."
|
37
|
+
puts "Enter 'pdf 1-#{@schedule.bills.length}' to open bill PDF in browser."
|
38
|
+
puts "Enter 'list' to see the list of bills again."
|
39
|
+
puts "Enter 'exit' to exit program."
|
40
|
+
end
|
41
|
+
|
42
|
+
def menu
|
43
|
+
input = nil
|
44
|
+
while input != "exit"
|
45
|
+
puts "\nEnter command (type 'commands' for list of commands):"
|
46
|
+
print ">"
|
47
|
+
input = gets.strip.downcase
|
48
|
+
|
49
|
+
if input.to_i > 0 && input.to_i <= @schedule.bills.length
|
50
|
+
print_bill(@schedule.find_bill(input))
|
51
|
+
elsif input == "commands"
|
52
|
+
print_commands
|
53
|
+
elsif input =~ /open \d/
|
54
|
+
system("open #{@schedule.find_bill(input.split.last).url}")
|
55
|
+
elsif input =~ /pdf \d/
|
56
|
+
system("open #{@schedule.find_bill(input.split.last).pdf}")
|
57
|
+
elsif input == "list"
|
58
|
+
list_bills
|
59
|
+
elsif input == "exit"
|
60
|
+
puts "Goodybye!"
|
61
|
+
else
|
62
|
+
puts "Invalid input."
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
class InvalidType < StandardError; end
|
2
|
+
|
3
|
+
class HouseFloorBills::Schedule
|
4
|
+
attr_accessor :title, :week, :published, :last_updated
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@bills = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def bills
|
11
|
+
@bills.dup.freeze
|
12
|
+
end
|
13
|
+
|
14
|
+
def find_bill(id)
|
15
|
+
@bills[id.to_i-1]
|
16
|
+
end
|
17
|
+
|
18
|
+
def add_bill(bill)
|
19
|
+
if !bill.is_a?(HouseFloorBills::Bill) #&& !bill.title.empty?
|
20
|
+
raise InvalidType, "must be a Bill"
|
21
|
+
else
|
22
|
+
@bills << bill
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
class HouseFloorBills::Scraper
|
2
|
+
attr_accessor :schedule, :doc_schedule
|
3
|
+
|
4
|
+
def initialize(week = "") # Format of week must be "2017-03-27"
|
5
|
+
@schedule = HouseFloorBills::Schedule.new
|
6
|
+
@doc_schedule = Nokogiri::HTML(open("http://docs.house.gov/floor/Default.aspx?date=#{week}"))
|
7
|
+
end
|
8
|
+
|
9
|
+
def scrape
|
10
|
+
scrape_schedule
|
11
|
+
scrape_bills
|
12
|
+
@schedule
|
13
|
+
end
|
14
|
+
|
15
|
+
def scrape_schedule
|
16
|
+
# Populate @schedule with more data from the schedule page
|
17
|
+
@schedule.title = @doc_schedule.search("div#primaryContent h1 > text()").text.strip.gsub("\r\n ", " ")
|
18
|
+
@schedule.week = @doc_schedule.search("div#primaryContent h1 > text()").text.split("\n").last.strip
|
19
|
+
end
|
20
|
+
|
21
|
+
def scrape_bills
|
22
|
+
@doc_schedule.search("table.floorItems > tr.floorItem").collect do |floor_item|
|
23
|
+
# Instantiate the bill
|
24
|
+
b = HouseFloorBills::Bill.new
|
25
|
+
# Scrape the data
|
26
|
+
b.number = floor_item.css("td.legisNum").text.strip
|
27
|
+
b.name = floor_item.css("td.floorText").text.strip
|
28
|
+
b.pdf = floor_item.css("td.files a").attr("href").text
|
29
|
+
b.url = "https://www.congress.gov/bill/115th-congress/house-bill/#{b.number.split.last}"
|
30
|
+
|
31
|
+
doc_bill ||= Nokogiri::HTML(open(b.url))
|
32
|
+
b.sponsor = doc_bill.search("table.standard01 > tr:first-child a").text.strip
|
33
|
+
b.committees = doc_bill.search("table.standard01 > tr:nth-child(2) td").text.strip
|
34
|
+
b.status = doc_bill.search("ol.bill_progress li.selected > text()").text.strip
|
35
|
+
b.summary = doc_bill.search("div#bill-summary > p").to_s.gsub("</p>","\n\n").gsub(/<\/.+>/,"").gsub(/<.+>/,"")
|
36
|
+
if b.summary == ""
|
37
|
+
b.summary = doc_bill.search("div#main > p").text
|
38
|
+
end
|
39
|
+
# Add the bill to the schedule
|
40
|
+
@schedule.add_bill(b)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Environment File
|
2
|
+
|
3
|
+
require "open-uri"
|
4
|
+
require "nokogiri"
|
5
|
+
require "pry"
|
6
|
+
|
7
|
+
require_relative "./house_floor_bills/version"
|
8
|
+
require_relative "./house_floor_bills/cli"
|
9
|
+
require_relative "./house_floor_bills/bill"
|
10
|
+
require_relative "./house_floor_bills/scraper"
|
11
|
+
require_relative "./house_floor_bills/schedule"
|
data/spec.md
ADDED
data/terminal_output
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
Dalmas-MacBook-Pro:~ dalmaboros$ ls
|
2
|
+
Applications Downloads Library Pictures exit
|
3
|
+
Desktop Dropbox Movies Public exit.pub
|
4
|
+
Documents Google Drive Music dev
|
5
|
+
Dalmas-MacBook-Pro:~ dalmaboros$ cd dev
|
6
|
+
Dalmas-MacBook-Pro:dev dalmaboros$ cd flatiron
|
7
|
+
Dalmas-MacBook-Pro:flatiron dalmaboros$ ls
|
8
|
+
blog exceptional-realty-bootstrapped
|
9
|
+
exceptional-realty ttt-with-ai-project-v-000
|
10
|
+
Dalmas-MacBook-Pro:flatiron dalmaboros$ bundle gem house-floor-bills
|
11
|
+
Creating gem 'house-floor-bills'...
|
12
|
+
Do you want to generate tests with your gem?
|
13
|
+
Type 'rspec' or 'minitest' to generate those test files now and in the future. rspec/minitest/(none): rspec
|
14
|
+
Do you want to license your code permissively under the MIT license?
|
15
|
+
This means that any other developer or company will be legally allowed to use your code for free as long as they admit you created it. You can read more about the MIT license at http://choosealicense.com/licenses/mit. y/(n): y
|
16
|
+
MIT License enabled in config
|
17
|
+
Do you want to include a code of conduct in gems you generate?
|
18
|
+
Codes of conduct can increase contributions to your project by contributors who prefer collaborative, safe spaces. You can read more about the code of conduct at contributor-covenant.org. Having a code of conduct means agreeing to the responsibility of enforcing it, so be sure that you are prepared to do that. Be sure that your email address is specified as a contact in the generated code of conduct so that people know who to contact in case of a violation. For suggestions about how to enforce codes of conduct, see http://bit.ly/coc-enforcement. y/(n): y
|
19
|
+
Code of conduct enabled in config
|
20
|
+
create house-floor-bills/Gemfile
|
21
|
+
create house-floor-bills/.gitignore
|
22
|
+
create house-floor-bills/lib/house/floor/bills.rb
|
23
|
+
create house-floor-bills/lib/house/floor/bills/version.rb
|
24
|
+
create house-floor-bills/house-floor-bills.gemspec
|
25
|
+
create house-floor-bills/Rakefile
|
26
|
+
create house-floor-bills/README.md
|
27
|
+
create house-floor-bills/bin/console
|
28
|
+
create house-floor-bills/bin/setup
|
29
|
+
create house-floor-bills/.travis.yml
|
30
|
+
create house-floor-bills/.rspec
|
31
|
+
create house-floor-bills/spec/spec_helper.rb
|
32
|
+
create house-floor-bills/spec/house/floor/bills_spec.rb
|
33
|
+
create house-floor-bills/LICENSE.txt
|
34
|
+
create house-floor-bills/CODE_OF_CONDUCT.md
|
35
|
+
Initializing git repo in /Users/dalmaboros/dev/flatiron/house-floor-bills
|
36
|
+
Dalmas-MacBook-Pro:flatiron dalmaboros$ pwd
|
37
|
+
/Users/dalmaboros/dev/flatiron
|
38
|
+
Dalmas-MacBook-Pro:flatiron dalmaboros$ bundle gem house_floor_bills
|
39
|
+
Creating gem 'house_floor_bills'...
|
40
|
+
MIT License enabled in config
|
41
|
+
Code of conduct enabled in config
|
42
|
+
create house_floor_bills/Gemfile
|
43
|
+
create house_floor_bills/.gitignore
|
44
|
+
create house_floor_bills/lib/house_floor_bills.rb
|
45
|
+
create house_floor_bills/lib/house_floor_bills/version.rb
|
46
|
+
create house_floor_bills/house_floor_bills.gemspec
|
47
|
+
create house_floor_bills/Rakefile
|
48
|
+
create house_floor_bills/README.md
|
49
|
+
create house_floor_bills/bin/console
|
50
|
+
create house_floor_bills/bin/setup
|
51
|
+
create house_floor_bills/.travis.yml
|
52
|
+
create house_floor_bills/.rspec
|
53
|
+
create house_floor_bills/spec/spec_helper.rb
|
54
|
+
create house_floor_bills/spec/house_floor_bills_spec.rb
|
55
|
+
create house_floor_bills/LICENSE.txt
|
56
|
+
create house_floor_bills/CODE_OF_CONDUCT.md
|
57
|
+
Initializing git repo in /Users/dalmaboros/dev/flatiron/house_floor_bills
|
58
|
+
Dalmas-MacBook-Pro:flatiron dalmaboros$ ls
|
59
|
+
blog house-floor-bills
|
60
|
+
exceptional-realty house_floor_bills
|
61
|
+
exceptional-realty-bootstrapped ttt-with-ai-project-v-000
|
62
|
+
Dalmas-MacBook-Pro:flatiron dalmaboros$ rm -rf house-floor-bills
|
63
|
+
Dalmas-MacBook-Pro:flatiron dalmaboros$ ls
|
64
|
+
blog house_floor_bills
|
65
|
+
exceptional-realty ttt-with-ai-project-v-000
|
66
|
+
exceptional-realty-bootstrapped
|
67
|
+
Dalmas-MacBook-Pro:flatiron dalmaboros$ cd house_floor_bills/
|
68
|
+
Dalmas-MacBook-Pro:house_floor_bills dalmaboros$ ruby bin/house-floor-bills
|
69
|
+
Hello world
|
70
|
+
Dalmas-MacBook-Pro:house_floor_bills dalmaboros$ ./bin/house-floor-bills
|
71
|
+
-bash: ./bin/house-floor-bills: Permission denied
|
72
|
+
Dalmas-MacBook-Pro:house_floor_bills dalmaboros$ ls
|
73
|
+
CODE_OF_CONDUCT.md README.md house_floor_bills.gemspec
|
74
|
+
Gemfile Rakefile lib
|
75
|
+
LICENSE.txt bin spec
|
76
|
+
Dalmas-MacBook-Pro:house_floor_bills dalmaboros$ cd bin
|
77
|
+
Dalmas-MacBook-Pro:bin dalmaboros$ ls
|
78
|
+
console house-floor-bills setup
|
79
|
+
Dalmas-MacBook-Pro:bin dalmaboros$ ls -lah
|
80
|
+
total 24
|
81
|
+
drwxr-xr-x 5 dalmaboros staff 170B Mar 17 11:32 .
|
82
|
+
drwxr-xr-x 15 dalmaboros staff 510B Mar 17 11:27 ..
|
83
|
+
-rwxr-xr-x 1 dalmaboros staff 342B Mar 17 11:27 console
|
84
|
+
-rw-r--r-- 1 dalmaboros staff 40B Mar 17 11:33 house-floor-bills
|
85
|
+
-rwxr-xr-x 1 dalmaboros staff 131B Mar 17 11:27 setup
|
86
|
+
Dalmas-MacBook-Pro:bin dalmaboros$ chmod +x house-floor-bills
|
87
|
+
Dalmas-MacBook-Pro:bin dalmaboros$ ls -lah
|
88
|
+
total 24
|
89
|
+
drwxr-xr-x 5 dalmaboros staff 170B Mar 17 11:32 .
|
90
|
+
drwxr-xr-x 15 dalmaboros staff 510B Mar 17 11:27 ..
|
91
|
+
-rwxr-xr-x 1 dalmaboros staff 342B Mar 17 11:27 console
|
92
|
+
-rwxr-xr-x 1 dalmaboros staff 40B Mar 17 11:33 house-floor-bills
|
93
|
+
-rwxr-xr-x 1 dalmaboros staff 131B Mar 17 11:27 setup
|
94
|
+
Dalmas-MacBook-Pro:bin dalmaboros$ ./house-floor-bills
|
95
|
+
Hello world
|
96
|
+
Dalmas-MacBook-Pro:bin dalmaboros$ cd ..
|
97
|
+
Dalmas-MacBook-Pro:house_floor_bills dalmaboros$
|
metadata
ADDED
@@ -0,0 +1,138 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: house_floor_bills
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dalma Boros
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-03-22 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: :development
|
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: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.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: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: nokogiri
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: Bills scheduled for debate this week on the House of Representatives
|
84
|
+
floor.
|
85
|
+
email:
|
86
|
+
- dalma.boros@gmail.com
|
87
|
+
executables:
|
88
|
+
- house-floor-bills
|
89
|
+
extensions: []
|
90
|
+
extra_rdoc_files: []
|
91
|
+
files:
|
92
|
+
- ".gitignore"
|
93
|
+
- ".rspec"
|
94
|
+
- ".travis.yml"
|
95
|
+
- CODE_OF_CONDUCT.md
|
96
|
+
- Gemfile
|
97
|
+
- LICENSE.txt
|
98
|
+
- NOTES.md
|
99
|
+
- README.md
|
100
|
+
- Rakefile
|
101
|
+
- bin/console
|
102
|
+
- bin/house-floor-bills
|
103
|
+
- bin/setup
|
104
|
+
- blog_post
|
105
|
+
- house_floor_bills.gemspec
|
106
|
+
- lib/house_floor_bills.rb
|
107
|
+
- lib/house_floor_bills/bill.rb
|
108
|
+
- lib/house_floor_bills/cli.rb
|
109
|
+
- lib/house_floor_bills/schedule.rb
|
110
|
+
- lib/house_floor_bills/scraper.rb
|
111
|
+
- lib/house_floor_bills/version.rb
|
112
|
+
- spec.md
|
113
|
+
- terminal_output
|
114
|
+
homepage: https://github.com/dalmaboros/house-floor-bills-cli-gem
|
115
|
+
licenses:
|
116
|
+
- MIT
|
117
|
+
metadata: {}
|
118
|
+
post_install_message:
|
119
|
+
rdoc_options: []
|
120
|
+
require_paths:
|
121
|
+
- lib
|
122
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
requirements: []
|
133
|
+
rubyforge_project:
|
134
|
+
rubygems_version: 2.6.11
|
135
|
+
signing_key:
|
136
|
+
specification_version: 4
|
137
|
+
summary: Bills to be considered on the house floor.
|
138
|
+
test_files: []
|