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/lib/ecfs.rb CHANGED
@@ -4,6 +4,7 @@ require "ecfs/filings_query"
4
4
  require "ecfs/filing"
5
5
  require "ecfs/proceedings_query"
6
6
  require "ecfs/proceeding"
7
+ require "ecfs/document"
7
8
 
8
9
  module ECFS
9
10
  end
@@ -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
@@ -1,3 +1,3 @@
1
1
  module ECFS
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
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
- assert_equal filings.first.class, ECFS::Filing
14
- assert_equal filings.first["name_of_filer"].class, String
15
- assert_equal filings.first["docket_number"], "12-375"
16
- assert_equal filings.first["lawfirm_name"].class, String
17
- assert_equal filings.first["date_received"].class, String
18
- assert_equal filings.first["date_posted"].class, String
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 !!filings.first["exparte"], filings.first["exparte"]
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
- assert_equal filings.first["type_of_filing"].class, String
25
- assert_equal filings.first["document_urls"].class, Array
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
 
@@ -2,8 +2,6 @@ require "helper"
2
2
  require "pp"
3
3
 
4
4
  class TestFilingsQuery < Test::Unit::TestCase
5
-
6
- p "TestFilingsQuery"
7
5
 
8
6
  def test_add_constraint
9
7
  filings_query = ECFS::FilingsQuery.new
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.1.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-23 00:00:00.000000000 Z
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
@@ -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