ecfs 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +13 -3
- data/ecfs.gemspec +3 -0
- data/fixtures/vcr_cassettes/bulk_cassette.yml +65222 -0
- data/fixtures/vcr_cassettes/main_cassette.yml +27275 -0
- data/fixtures/vcr_cassettes/test_document.yml +801 -7772
- data/fixtures/vcr_cassettes/test_filings_query_test_get.yml +2199 -2122
- data/fixtures/vcr_cassettes/test_get_proceeding_search_results.yml +984 -999
- data/fixtures/vcr_cassettes/test_proceedings_query_test_get_proceeding_info.yml +201 -203
- data/lib/ecfs.rb +3 -0
- data/lib/ecfs/bulk_filings_query.rb +64 -0
- data/lib/ecfs/error.rb +4 -0
- data/lib/ecfs/filings_query.rb +23 -4
- data/lib/ecfs/proceedings_query.rb +1 -1
- data/lib/ecfs/too_many_filings_error.rb +6 -0
- data/lib/ecfs/util.rb +1 -0
- data/lib/ecfs/version.rb +1 -1
- data/test/helper.rb +7 -0
- data/test/test_filing.rb +18 -20
- data/test/test_filings_query.rb +2 -2
- data/test/test_large_proceeding.rb +43 -0
- data/test/test_proceeding.rb +16 -21
- data/test/test_proceedings_query.rb +3 -3
- metadata +58 -47
data/lib/ecfs.rb
CHANGED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
module ECFS
|
|
2
|
+
class BulkFilingsQuery
|
|
3
|
+
attr_accessor :results
|
|
4
|
+
|
|
5
|
+
def initialize(docket_number)
|
|
6
|
+
@docket_number = docket_number
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def get
|
|
10
|
+
make_query(@docket_number)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def get_midpoint(start_date, end_date)
|
|
14
|
+
start_date = start_date.split("/")
|
|
15
|
+
start_date_month = start_date[0].to_i
|
|
16
|
+
start_date_day = start_date[1].to_i
|
|
17
|
+
start_date_year = start_date[2].to_i
|
|
18
|
+
docket_started = Date.new(start_date_year, start_date_month, start_date_day)
|
|
19
|
+
|
|
20
|
+
e = end_date.split("/").map(&:to_i).reverse
|
|
21
|
+
difference = (Date.new(e[0], e[2], e[1]) - docket_started).to_i
|
|
22
|
+
half_difference = difference/2
|
|
23
|
+
midpoint = (docket_started + half_difference).to_s.gsub("-", "/")
|
|
24
|
+
|
|
25
|
+
midpoint.split("/").reverse.join("/")
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def make_query(docket_number, posted_after=false, posted_before=false)
|
|
29
|
+
|
|
30
|
+
if @results.nil?
|
|
31
|
+
@results = []
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
query = ECFS::Filing.query.tap do |q|
|
|
35
|
+
q.docket_number = docket_number
|
|
36
|
+
q.posted_after = posted_after if posted_after
|
|
37
|
+
q.posted_before = posted_before if posted_before
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
begin
|
|
41
|
+
@results << query.get
|
|
42
|
+
rescue ECFS::TooManyFilingsError
|
|
43
|
+
unless posted_after
|
|
44
|
+
posted_after = ECFS::Proceeding.find(docket_number)["date_created"]
|
|
45
|
+
end
|
|
46
|
+
unless posted_before
|
|
47
|
+
today = Date.today.to_s.split("-")
|
|
48
|
+
posted_before = today[1] + "/" + today[2] + "/" + today[0]
|
|
49
|
+
end
|
|
50
|
+
midpoint = get_midpoint(posted_after, posted_before).split("/")
|
|
51
|
+
formatted_midpoint = midpoint[1] + "/" + midpoint[0] + "/" + midpoint[2]
|
|
52
|
+
|
|
53
|
+
make_query(docket_number, formatted_midpoint, posted_before)
|
|
54
|
+
make_query(docket_number, posted_after, formatted_midpoint)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
@results.flatten!
|
|
58
|
+
|
|
59
|
+
@results
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|
data/lib/ecfs/error.rb
ADDED
data/lib/ecfs/filings_query.rb
CHANGED
|
@@ -2,6 +2,7 @@ require "pp"
|
|
|
2
2
|
require "mechanize"
|
|
3
3
|
require "spreadsheet"
|
|
4
4
|
require "ecfs/spreadsheet_parser"
|
|
5
|
+
require "ecfs/too_many_filings_error"
|
|
5
6
|
require "pry"
|
|
6
7
|
|
|
7
8
|
module ECFS
|
|
@@ -31,7 +32,7 @@ module ECFS
|
|
|
31
32
|
"bureau_id_number" => "bureauIdentificationNumber",
|
|
32
33
|
"report_number" => "reportNumber",
|
|
33
34
|
"submission_type_id" => "submissionTypeId",
|
|
34
|
-
"exparte" => "__checkbox_exParte"
|
|
35
|
+
"exparte" => "__checkbox_exParte",
|
|
35
36
|
}
|
|
36
37
|
end
|
|
37
38
|
|
|
@@ -69,12 +70,30 @@ module ECFS
|
|
|
69
70
|
end
|
|
70
71
|
end
|
|
71
72
|
|
|
73
|
+
def page_contains_ecfs_error_message?(page)
|
|
74
|
+
xpath = "//*[@id='yui-main']/div/table/tbody/tr[2]/td/span[1]"
|
|
75
|
+
text = page.search(xpath).text.gsub(/\s+/, " ").strip
|
|
76
|
+
if text == "Retrieved the 10,000 most recent records. To view older records narrow your search criteria."
|
|
77
|
+
result = true
|
|
78
|
+
else
|
|
79
|
+
result = false
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
result
|
|
83
|
+
end
|
|
84
|
+
|
|
72
85
|
def download_spreadsheet!
|
|
73
86
|
agent = mechanize_agent
|
|
74
|
-
|
|
75
|
-
|
|
87
|
+
page = agent.get(url)
|
|
88
|
+
|
|
89
|
+
if page_contains_ecfs_error_message?(page)
|
|
90
|
+
raise ECFS::TooManyFilingsError.new
|
|
91
|
+
else
|
|
92
|
+
link_text = "\r\n \t \t \tExport to Excel file\r\n \t \t"
|
|
93
|
+
link = page.link_with(:text => link_text)
|
|
76
94
|
|
|
77
|
-
|
|
95
|
+
@rows = agent.click(link).rows
|
|
96
|
+
end
|
|
78
97
|
end
|
|
79
98
|
end
|
|
80
99
|
end
|
|
@@ -12,7 +12,7 @@ module ECFS
|
|
|
12
12
|
"bureau_code" => "bureauCode",
|
|
13
13
|
"subject" => "subject",
|
|
14
14
|
"bureau_id" => "bureauIdentificationNumber",
|
|
15
|
-
"applicant" => "
|
|
15
|
+
"applicant" => "applicant",
|
|
16
16
|
"filed_by" => "filedBy",
|
|
17
17
|
"recent_filings" => "__checkbox_recentFilingsRequired",
|
|
18
18
|
"open_status" => "openStatus",
|
data/lib/ecfs/util.rb
CHANGED
data/lib/ecfs/version.rb
CHANGED
data/test/helper.rb
CHANGED
|
@@ -2,10 +2,17 @@ require 'rubygems'
|
|
|
2
2
|
require 'bundler'
|
|
3
3
|
require 'vcr'
|
|
4
4
|
|
|
5
|
+
require 'minitest/unit'
|
|
6
|
+
require 'minitest/autorun'
|
|
7
|
+
require 'minitest/pride'
|
|
8
|
+
|
|
9
|
+
require 'pry-rescue/minitest'
|
|
10
|
+
|
|
5
11
|
VCR.configure do |c|
|
|
6
12
|
c.cassette_library_dir = 'fixtures/vcr_cassettes'
|
|
7
13
|
c.hook_into :webmock
|
|
8
14
|
c.allow_http_connections_when_no_cassette = true
|
|
15
|
+
c.default_cassette_options = { :record => :new_episodes}
|
|
9
16
|
end
|
|
10
17
|
|
|
11
18
|
begin
|
data/test/test_filing.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require "helper"
|
|
2
2
|
require "pp"
|
|
3
3
|
|
|
4
|
-
class TestFiling <
|
|
4
|
+
class TestFiling < MiniTest::Unit::TestCase
|
|
5
5
|
|
|
6
6
|
def test_search
|
|
7
|
-
VCR.use_cassette('
|
|
7
|
+
VCR.use_cassette('main_cassette') do
|
|
8
8
|
filings = ECFS::Filing.query.tap do |q|
|
|
9
9
|
q.docket_number = "12-375"
|
|
10
10
|
end.get
|
|
@@ -29,24 +29,22 @@ class TestFiling < Test::Unit::TestCase
|
|
|
29
29
|
|
|
30
30
|
assert_equal nil, filing.documents
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
#end
|
|
49
|
-
end
|
|
32
|
+
filing.fetch_documents!
|
|
33
|
+
documents = filing.documents
|
|
34
|
+
document = documents.first
|
|
35
|
+
|
|
36
|
+
assert_equal Array, documents.class
|
|
37
|
+
assert_equal ECFS::Document, document.class
|
|
38
|
+
assert_equal String, document.full_text.class
|
|
39
|
+
assert_equal Array, document.pages.class
|
|
40
|
+
page = document.pages.first
|
|
41
|
+
assert_equal ECFS::Document::Page, page.class
|
|
42
|
+
assert_equal String, page.text.class
|
|
43
|
+
assert_equal Fixnum, page.page_number.class
|
|
44
|
+
|
|
45
|
+
#VCR.use_cassette('test_proceedings_query_test_get_proceeding_info') do
|
|
46
|
+
# binding.pry
|
|
47
|
+
#end
|
|
50
48
|
end
|
|
51
49
|
end
|
|
52
50
|
|
data/test/test_filings_query.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require "helper"
|
|
2
2
|
require "pp"
|
|
3
3
|
|
|
4
|
-
class TestFilingsQuery <
|
|
4
|
+
class TestFilingsQuery < MiniTest::Unit::TestCase
|
|
5
5
|
|
|
6
6
|
def test_add_constraint
|
|
7
7
|
filings_query = ECFS::FilingsQuery.new
|
|
@@ -31,7 +31,7 @@ class TestFilingsQuery < Test::Unit::TestCase
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def test_get
|
|
34
|
-
VCR.use_cassette('
|
|
34
|
+
VCR.use_cassette('main_cassette') do
|
|
35
35
|
filings_query = ECFS::FilingsQuery.new
|
|
36
36
|
filings_query.eq("docket_number", "12-375")
|
|
37
37
|
rows = filings_query.get
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require "helper"
|
|
2
|
+
require "pp"
|
|
3
|
+
|
|
4
|
+
class TestLargeProceeding < MiniTest::Unit::TestCase
|
|
5
|
+
|
|
6
|
+
attr_accessor :results
|
|
7
|
+
|
|
8
|
+
def test_throws_error
|
|
9
|
+
VCR.use_cassette('bulk_cassette') do
|
|
10
|
+
docket_number = "09-191"
|
|
11
|
+
query = ECFS::Filing.query.tap do |q|
|
|
12
|
+
q.docket_number = docket_number
|
|
13
|
+
end
|
|
14
|
+
assert_raises ECFS::TooManyFilingsError do
|
|
15
|
+
results = query.get
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_bulk_filings_query
|
|
21
|
+
VCR.use_cassette('bulk_cassette') do
|
|
22
|
+
docket_number = "11-109"
|
|
23
|
+
query = ECFS::BulkFilingsQuery.new(docket_number)
|
|
24
|
+
filings = query.get
|
|
25
|
+
proceeding = ECFS::Proceeding.find(docket_number)
|
|
26
|
+
|
|
27
|
+
assert_equal proceeding["total_filings"].to_i, filings.length
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
#def test_bulk_filings_query_xxl
|
|
32
|
+
# VCR.use_cassette('bulk_cassette') do
|
|
33
|
+
# docket_number = "09-191"
|
|
34
|
+
# query = ECFS::BulkFilingsQuery.new(docket_number)
|
|
35
|
+
# filings = query.get
|
|
36
|
+
# proceeding = ECFS::Proceeding.find(docket_number)
|
|
37
|
+
|
|
38
|
+
# assert_equal proceeding["total_filings"].to_i, filings.length
|
|
39
|
+
# end
|
|
40
|
+
#end
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
end
|
data/test/test_proceeding.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
require "helper"
|
|
2
2
|
require "pp"
|
|
3
3
|
|
|
4
|
-
class TestProceeding <
|
|
4
|
+
class TestProceeding < MiniTest::Unit::TestCase
|
|
5
5
|
|
|
6
6
|
def test_find
|
|
7
|
-
VCR.use_cassette('
|
|
7
|
+
VCR.use_cassette('main_cassette') do
|
|
8
8
|
proceeding = ECFS::Proceeding.find("12-375")
|
|
9
9
|
%w[
|
|
10
10
|
bureau_name subject date_created status
|
|
@@ -19,7 +19,7 @@ class TestProceeding < Test::Unit::TestCase
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def test_search
|
|
22
|
-
VCR.use_cassette('
|
|
22
|
+
VCR.use_cassette('main_cassette') do
|
|
23
23
|
|
|
24
24
|
proceedings = ECFS::Proceeding.query.tap do |q|
|
|
25
25
|
q.bureau_code = "WC"
|
|
@@ -40,28 +40,23 @@ class TestProceeding < Test::Unit::TestCase
|
|
|
40
40
|
next_proceedings = proceedings.next
|
|
41
41
|
assert_equal ECFS::Proceeding::ResultSet, next_proceedings.class
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
prison_phones.fetch_filings!
|
|
43
|
+
prison_phones = proceedings["results"].select {|p| p["docket_number"] == "12-375"}.first
|
|
44
|
+
prison_phones.fetch_filings!
|
|
46
45
|
|
|
47
|
-
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
VCR.use_cassette('test_proceedings_query_test_get_proceeding_info') do
|
|
51
|
-
prison_phones = proceedings["results"].select {|p| p["docket_number"] == "12-375"}.first
|
|
52
|
-
assert_equal ECFS::Proceeding, prison_phones.class
|
|
53
|
-
fetched = prison_phones.fetch_info!
|
|
54
|
-
assert_equal ECFS::Proceeding, prison_phones.class
|
|
55
|
-
%w[
|
|
56
|
-
bureau_name subject date_created status
|
|
57
|
-
total_filings filings_in_last_30_days
|
|
58
|
-
].each do |key|
|
|
59
|
-
assert prison_phones.keys.include?(key)
|
|
60
|
-
end
|
|
46
|
+
assert_equal Array, prison_phones["filings"].class
|
|
61
47
|
|
|
48
|
+
prison_phones = proceedings["results"].select {|p| p["docket_number"] == "12-375"}.first
|
|
49
|
+
assert_equal ECFS::Proceeding, prison_phones.class
|
|
50
|
+
fetched = prison_phones.fetch_info!
|
|
51
|
+
assert_equal ECFS::Proceeding, prison_phones.class
|
|
52
|
+
%w[
|
|
53
|
+
bureau_name subject date_created status
|
|
54
|
+
total_filings filings_in_last_30_days
|
|
55
|
+
].each do |key|
|
|
56
|
+
assert prison_phones.keys.include?(key)
|
|
62
57
|
end
|
|
58
|
+
|
|
63
59
|
end
|
|
64
60
|
end
|
|
65
61
|
|
|
66
|
-
|
|
67
62
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require "helper"
|
|
2
2
|
require "pp"
|
|
3
3
|
|
|
4
|
-
class TestProceedingsQuery <
|
|
4
|
+
class TestProceedingsQuery < MiniTest::Unit::TestCase
|
|
5
5
|
|
|
6
6
|
def test_add_constraint
|
|
7
7
|
proceedings_query = ECFS::ProceedingsQuery.new
|
|
@@ -31,7 +31,7 @@ class TestProceedingsQuery < Test::Unit::TestCase
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def test_get_proceeding_info
|
|
34
|
-
VCR.use_cassette('
|
|
34
|
+
VCR.use_cassette('main_cassette') do
|
|
35
35
|
proceedings_query = ECFS::ProceedingsQuery.new
|
|
36
36
|
proceedings_query.eq("docket_number", "12-375")
|
|
37
37
|
results = proceedings_query.get
|
|
@@ -45,7 +45,7 @@ class TestProceedingsQuery < Test::Unit::TestCase
|
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
def test_search_proceedings
|
|
48
|
-
VCR.use_cassette('
|
|
48
|
+
VCR.use_cassette('main_cassette') do
|
|
49
49
|
proceedings_query = ECFS::ProceedingsQuery.new
|
|
50
50
|
proceedings_query.eq("bureau_code", "WC")
|
|
51
51
|
proceedings_query.eq("page_number", "1")
|
metadata
CHANGED
|
@@ -1,68 +1,60 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ecfs
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 0.3.0
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Alan deLevie
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2014-12-27 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: bundler
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
|
-
- - ~>
|
|
17
|
+
- - "~>"
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
19
|
version: '1.3'
|
|
22
20
|
type: :development
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
|
-
- - ~>
|
|
24
|
+
- - "~>"
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
29
26
|
version: '1.3'
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
|
31
28
|
name: rake
|
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
30
|
requirements:
|
|
35
|
-
- -
|
|
31
|
+
- - ">="
|
|
36
32
|
- !ruby/object:Gem::Version
|
|
37
33
|
version: '0'
|
|
38
34
|
type: :development
|
|
39
35
|
prerelease: false
|
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
37
|
requirements:
|
|
43
|
-
- -
|
|
38
|
+
- - ">="
|
|
44
39
|
- !ruby/object:Gem::Version
|
|
45
40
|
version: '0'
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
|
47
42
|
name: vcr
|
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
44
|
requirements:
|
|
51
|
-
- -
|
|
45
|
+
- - ">="
|
|
52
46
|
- !ruby/object:Gem::Version
|
|
53
47
|
version: '0'
|
|
54
48
|
type: :development
|
|
55
49
|
prerelease: false
|
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
51
|
requirements:
|
|
59
|
-
- -
|
|
52
|
+
- - ">="
|
|
60
53
|
- !ruby/object:Gem::Version
|
|
61
54
|
version: '0'
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
|
63
56
|
name: webmock
|
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
58
|
requirements:
|
|
67
59
|
- - '='
|
|
68
60
|
- !ruby/object:Gem::Version
|
|
@@ -70,73 +62,92 @@ dependencies:
|
|
|
70
62
|
type: :development
|
|
71
63
|
prerelease: false
|
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
65
|
requirements:
|
|
75
66
|
- - '='
|
|
76
67
|
- !ruby/object:Gem::Version
|
|
77
68
|
version: 1.9.0
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: minitest
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 4.7.3
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 4.7.3
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: pry-rescue
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '0'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
78
97
|
- !ruby/object:Gem::Dependency
|
|
79
98
|
name: pdf-reader
|
|
80
99
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
100
|
requirements:
|
|
83
|
-
- -
|
|
101
|
+
- - ">="
|
|
84
102
|
- !ruby/object:Gem::Version
|
|
85
103
|
version: '0'
|
|
86
104
|
type: :runtime
|
|
87
105
|
prerelease: false
|
|
88
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
107
|
requirements:
|
|
91
|
-
- -
|
|
108
|
+
- - ">="
|
|
92
109
|
- !ruby/object:Gem::Version
|
|
93
110
|
version: '0'
|
|
94
111
|
- !ruby/object:Gem::Dependency
|
|
95
112
|
name: pry
|
|
96
113
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
114
|
requirements:
|
|
99
|
-
- -
|
|
115
|
+
- - ">="
|
|
100
116
|
- !ruby/object:Gem::Version
|
|
101
117
|
version: '0'
|
|
102
118
|
type: :runtime
|
|
103
119
|
prerelease: false
|
|
104
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
121
|
requirements:
|
|
107
|
-
- -
|
|
122
|
+
- - ">="
|
|
108
123
|
- !ruby/object:Gem::Version
|
|
109
124
|
version: '0'
|
|
110
125
|
- !ruby/object:Gem::Dependency
|
|
111
126
|
name: mechanize
|
|
112
127
|
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
none: false
|
|
114
128
|
requirements:
|
|
115
|
-
- -
|
|
129
|
+
- - ">="
|
|
116
130
|
- !ruby/object:Gem::Version
|
|
117
131
|
version: '0'
|
|
118
132
|
type: :runtime
|
|
119
133
|
prerelease: false
|
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
-
none: false
|
|
122
135
|
requirements:
|
|
123
|
-
- -
|
|
136
|
+
- - ">="
|
|
124
137
|
- !ruby/object:Gem::Version
|
|
125
138
|
version: '0'
|
|
126
139
|
- !ruby/object:Gem::Dependency
|
|
127
140
|
name: spreadsheet
|
|
128
141
|
requirement: !ruby/object:Gem::Requirement
|
|
129
|
-
none: false
|
|
130
142
|
requirements:
|
|
131
|
-
- -
|
|
143
|
+
- - ">="
|
|
132
144
|
- !ruby/object:Gem::Version
|
|
133
145
|
version: '0'
|
|
134
146
|
type: :runtime
|
|
135
147
|
prerelease: false
|
|
136
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
137
|
-
none: false
|
|
138
149
|
requirements:
|
|
139
|
-
- -
|
|
150
|
+
- - ">="
|
|
140
151
|
- !ruby/object:Gem::Version
|
|
141
152
|
version: '0'
|
|
142
153
|
description: ECFS provides a set of utilities for scraping FCC rulemakings
|
|
@@ -146,68 +157,68 @@ executables: []
|
|
|
146
157
|
extensions: []
|
|
147
158
|
extra_rdoc_files: []
|
|
148
159
|
files:
|
|
149
|
-
- .gitignore
|
|
150
|
-
- .travis.yml
|
|
160
|
+
- ".gitignore"
|
|
161
|
+
- ".travis.yml"
|
|
151
162
|
- Gemfile
|
|
152
163
|
- LICENSE.txt
|
|
153
164
|
- README.md
|
|
154
165
|
- Rakefile
|
|
155
166
|
- ecfs.gemspec
|
|
167
|
+
- fixtures/vcr_cassettes/bulk_cassette.yml
|
|
168
|
+
- fixtures/vcr_cassettes/main_cassette.yml
|
|
156
169
|
- fixtures/vcr_cassettes/test_document.yml
|
|
157
170
|
- fixtures/vcr_cassettes/test_filings_query_test_get.yml
|
|
158
171
|
- fixtures/vcr_cassettes/test_get_proceeding_search_results.yml
|
|
159
172
|
- fixtures/vcr_cassettes/test_get_proceeding_search_results_test_proceedings_query_test_get_proceeding_info.yml
|
|
160
173
|
- fixtures/vcr_cassettes/test_proceedings_query_test_get_proceeding_info.yml
|
|
161
174
|
- lib/ecfs.rb
|
|
175
|
+
- lib/ecfs/bulk_filings_query.rb
|
|
162
176
|
- lib/ecfs/document.rb
|
|
177
|
+
- lib/ecfs/error.rb
|
|
163
178
|
- lib/ecfs/filing.rb
|
|
164
179
|
- lib/ecfs/filings_query.rb
|
|
165
180
|
- lib/ecfs/proceeding.rb
|
|
166
181
|
- lib/ecfs/proceedings_query.rb
|
|
167
182
|
- lib/ecfs/query.rb
|
|
168
183
|
- lib/ecfs/spreadsheet_parser.rb
|
|
184
|
+
- lib/ecfs/too_many_filings_error.rb
|
|
169
185
|
- lib/ecfs/util.rb
|
|
170
186
|
- lib/ecfs/version.rb
|
|
171
187
|
- test/helper.rb
|
|
172
188
|
- test/test_filing.rb
|
|
173
189
|
- test/test_filings_query.rb
|
|
190
|
+
- test/test_large_proceeding.rb
|
|
174
191
|
- test/test_proceeding.rb
|
|
175
192
|
- test/test_proceedings_query.rb
|
|
176
193
|
homepage: http://github.com/adelevie/ecfs
|
|
177
194
|
licenses:
|
|
178
195
|
- MIT
|
|
196
|
+
metadata: {}
|
|
179
197
|
post_install_message:
|
|
180
198
|
rdoc_options: []
|
|
181
199
|
require_paths:
|
|
182
200
|
- lib
|
|
183
201
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
184
|
-
none: false
|
|
185
202
|
requirements:
|
|
186
|
-
- -
|
|
203
|
+
- - ">="
|
|
187
204
|
- !ruby/object:Gem::Version
|
|
188
205
|
version: '0'
|
|
189
|
-
segments:
|
|
190
|
-
- 0
|
|
191
|
-
hash: -550046902955849839
|
|
192
206
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
|
-
none: false
|
|
194
207
|
requirements:
|
|
195
|
-
- -
|
|
208
|
+
- - ">="
|
|
196
209
|
- !ruby/object:Gem::Version
|
|
197
210
|
version: '0'
|
|
198
|
-
segments:
|
|
199
|
-
- 0
|
|
200
|
-
hash: -550046902955849839
|
|
201
211
|
requirements: []
|
|
202
212
|
rubyforge_project:
|
|
203
|
-
rubygems_version:
|
|
213
|
+
rubygems_version: 2.2.2
|
|
204
214
|
signing_key:
|
|
205
|
-
specification_version:
|
|
215
|
+
specification_version: 4
|
|
206
216
|
summary: ECFS helps you obtain comments and other filings from the FCC's Electronic
|
|
207
217
|
Comment Filing System
|
|
208
218
|
test_files:
|
|
209
219
|
- test/helper.rb
|
|
210
220
|
- test/test_filing.rb
|
|
211
221
|
- test/test_filings_query.rb
|
|
222
|
+
- test/test_large_proceeding.rb
|
|
212
223
|
- test/test_proceeding.rb
|
|
213
224
|
- test/test_proceedings_query.rb
|