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 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
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.3.0
4
+ before_install: gem install bundler -v 1.11.2
@@ -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
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in house_floor_bills.gemspec
4
+ gemspec
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
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
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
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "house_floor_bills"
5
+
6
+ HouseFloorBills::CLI.new.call
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
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,4 @@
1
+ class HouseFloorBills::Bill
2
+ attr_accessor :number, :name, :pdf, :url, :sponsor, :committees, :status, :summary
3
+
4
+ end # class
@@ -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,3 @@
1
+ module HouseFloorBills
2
+ VERSION = "0.1.0"
3
+ 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
@@ -0,0 +1,6 @@
1
+ # Specifications for the CLI Assessment
2
+
3
+ Specs:
4
+ - [x] Have a CLI for interfacing with the application
5
+ - [x] Pull data from an external source
6
+ - [x] Implement both list and detail views
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: []