ecfs 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +33 -18
- data/ecfs.gemspec +1 -1
- data/fixtures/vcr_cassettes/test_document.yml +7818 -0
- data/lib/ecfs.rb +1 -0
- data/lib/ecfs/document.rb +47 -0
- data/lib/ecfs/filing.rb +13 -0
- data/lib/ecfs/version.rb +1 -1
- data/test/test_filing.rb +28 -9
- data/test/test_filings_query.rb +0 -2
- metadata +20 -3
- data/lib/ecfs/test_proceeding.rb +0 -46
data/lib/ecfs.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
require "pdf-reader"
|
2
|
+
require "open-uri"
|
3
|
+
|
4
|
+
module ECFS
|
5
|
+
|
6
|
+
class Document
|
7
|
+
attr_reader :pages
|
8
|
+
attr_reader :filing
|
9
|
+
|
10
|
+
def initialize(params={})
|
11
|
+
@filing = params["filing"]
|
12
|
+
@url = params["url"]
|
13
|
+
@pages = []
|
14
|
+
io = open(@url)
|
15
|
+
reader = PDF::Reader.new(io)
|
16
|
+
reader.pages.each_with_index do |page, index|
|
17
|
+
@pages << ECFS::Document::Page.new({
|
18
|
+
"text" => page.text,
|
19
|
+
"page_number" => index + 1
|
20
|
+
})
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def full_text
|
25
|
+
@pages.map {|p| p.text}.join(",")
|
26
|
+
end
|
27
|
+
|
28
|
+
class Page
|
29
|
+
attr_reader :text
|
30
|
+
attr_reader :page_number
|
31
|
+
|
32
|
+
def initialize(params={})
|
33
|
+
@text = params["text"]
|
34
|
+
@page_number = params["page_number"]
|
35
|
+
end
|
36
|
+
|
37
|
+
def to_s
|
38
|
+
"#<ECFS::Document::Page @text=#{@text.class}, @page_number=#{@page_number}>"
|
39
|
+
end
|
40
|
+
|
41
|
+
def inspect
|
42
|
+
self.to_s
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
data/lib/ecfs/filing.rb
CHANGED
@@ -1,14 +1,27 @@
|
|
1
1
|
require "ecfs/filings_query"
|
2
|
+
require "ecfs/document"
|
2
3
|
|
3
4
|
require "pry"
|
4
5
|
|
5
6
|
module ECFS
|
6
7
|
class Filing < Hash
|
8
|
+
attr_reader :documents
|
7
9
|
|
8
10
|
def initialize(params={})
|
9
11
|
self.merge!(params)
|
10
12
|
end
|
11
13
|
|
14
|
+
def fetch_documents!
|
15
|
+
@documents = self["document_urls"].map do |url|
|
16
|
+
ECFS::Document.new({
|
17
|
+
"url" => url,
|
18
|
+
"filing" => self
|
19
|
+
})
|
20
|
+
end
|
21
|
+
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
12
25
|
def self.query
|
13
26
|
ECFS::FilingsQuery.new(:typecast_results => true)
|
14
27
|
end
|
data/lib/ecfs/version.rb
CHANGED
data/test/test_filing.rb
CHANGED
@@ -10,20 +10,39 @@ class TestFiling < Test::Unit::TestCase
|
|
10
10
|
end.get
|
11
11
|
|
12
12
|
assert_equal filings.class, Array
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
assert_equal
|
17
|
-
assert_equal
|
18
|
-
assert_equal
|
13
|
+
|
14
|
+
filing = filings.first
|
15
|
+
|
16
|
+
assert_equal filing.class, ECFS::Filing
|
17
|
+
assert_equal filing["name_of_filer"].class, String
|
18
|
+
assert_equal filing["docket_number"], "12-375"
|
19
|
+
assert_equal filing["lawfirm_name"].class, String
|
20
|
+
assert_equal filing["date_received"].class, String
|
21
|
+
assert_equal filing["date_posted"].class, String
|
19
22
|
|
20
23
|
# checks if value is `true` or `false`--since Ruby does not have a Boolean type
|
21
24
|
# http://stackoverflow.com/a/3033645/94154
|
22
|
-
assert_equal !!
|
25
|
+
assert_equal !!filing["exparte"], filings.first["exparte"]
|
26
|
+
|
27
|
+
assert_equal filing["type_of_filing"].class, String
|
28
|
+
assert_equal filing["document_urls"].class, Array
|
29
|
+
|
30
|
+
assert_equal nil, filing.documents
|
23
31
|
|
24
|
-
|
25
|
-
|
32
|
+
VCR.use_cassette('test_document') do
|
33
|
+
filing.fetch_documents!
|
34
|
+
documents = filing.documents
|
35
|
+
document = documents.first
|
26
36
|
|
37
|
+
assert_equal Array, documents.class
|
38
|
+
assert_equal ECFS::Document, document.class
|
39
|
+
assert_equal String, document.full_text.class
|
40
|
+
assert_equal Array, document.pages.class
|
41
|
+
page = document.pages.first
|
42
|
+
assert_equal ECFS::Document::Page, page.class
|
43
|
+
assert_equal String, page.text.class
|
44
|
+
assert_equal Fixnum, page.page_number.class
|
45
|
+
end
|
27
46
|
end
|
28
47
|
end
|
29
48
|
|
data/test/test_filings_query.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecfs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -75,6 +75,22 @@ dependencies:
|
|
75
75
|
- - '='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: 1.9.0
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: pdf-reader
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
78
94
|
- !ruby/object:Gem::Dependency
|
79
95
|
name: pry
|
80
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,18 +153,19 @@ files:
|
|
137
153
|
- README.md
|
138
154
|
- Rakefile
|
139
155
|
- ecfs.gemspec
|
156
|
+
- fixtures/vcr_cassettes/test_document.yml
|
140
157
|
- fixtures/vcr_cassettes/test_filings_query_test_get.yml
|
141
158
|
- fixtures/vcr_cassettes/test_get_proceeding_search_results.yml
|
142
159
|
- fixtures/vcr_cassettes/test_get_proceeding_search_results_test_proceedings_query_test_get_proceeding_info.yml
|
143
160
|
- fixtures/vcr_cassettes/test_proceedings_query_test_get_proceeding_info.yml
|
144
161
|
- lib/ecfs.rb
|
162
|
+
- lib/ecfs/document.rb
|
145
163
|
- lib/ecfs/filing.rb
|
146
164
|
- lib/ecfs/filings_query.rb
|
147
165
|
- lib/ecfs/proceeding.rb
|
148
166
|
- lib/ecfs/proceedings_query.rb
|
149
167
|
- lib/ecfs/query.rb
|
150
168
|
- lib/ecfs/spreadsheet_parser.rb
|
151
|
-
- lib/ecfs/test_proceeding.rb
|
152
169
|
- lib/ecfs/util.rb
|
153
170
|
- lib/ecfs/version.rb
|
154
171
|
- test/helper.rb
|
data/lib/ecfs/test_proceeding.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require "helper"
|
2
|
-
require "pp"
|
3
|
-
|
4
|
-
class TestProceeding < Test::Unit::TestCase
|
5
|
-
|
6
|
-
def test_find
|
7
|
-
VCR.use_cassette('test_proceedings_query_test_get_proceeding_info') do
|
8
|
-
|
9
|
-
proceeding = ECFS::Proceeding.find("12-375")
|
10
|
-
|
11
|
-
%w[
|
12
|
-
bureau_name subject date_created status
|
13
|
-
total_filings filings_in_last_30_days
|
14
|
-
].each do |key|
|
15
|
-
assert proceeding.keys.include?(key)
|
16
|
-
end
|
17
|
-
|
18
|
-
assert_equal proceeding.class, ECFS::Proceeding
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_search
|
23
|
-
VCR.use_cassette('test_get_proceeding_search_results') do
|
24
|
-
|
25
|
-
results = ECFS::Proceeding.query.tap do |q|
|
26
|
-
q.bureau_code = "WC"
|
27
|
-
q.page_number = "1"
|
28
|
-
q.per_page = "100"
|
29
|
-
end.get
|
30
|
-
|
31
|
-
results = proceedings_query.get
|
32
|
-
|
33
|
-
%w[
|
34
|
-
total_pages first_result
|
35
|
-
last_result total_results
|
36
|
-
current_page
|
37
|
-
].each do |key|
|
38
|
-
assert results.keys.include?(key)
|
39
|
-
assert results[key]
|
40
|
-
end
|
41
|
-
|
42
|
-
assert_equal results.class, ECFS::Proceeding::Array
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|