ecfs 0.1.0 → 0.2.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.
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