ecfs 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/ecfs.rb CHANGED
@@ -8,6 +8,7 @@ require "ecfs/document"
8
8
  require "ecfs/error"
9
9
  require "ecfs/too_many_filings_error"
10
10
  require "ecfs/bulk_filings_query"
11
+ require "ecfs/daily_releases_query"
11
12
 
12
13
  module ECFS
13
14
  end
@@ -0,0 +1,35 @@
1
+ require 'pry'
2
+
3
+ module ECFS
4
+ class DailyRelease
5
+ attr_reader :pdfs
6
+ attr_reader :txts
7
+ attr_reader :docxs
8
+
9
+ def initialize(links, query_url)
10
+ @query_url = query_url
11
+ @links = links
12
+ @pdfs = find_links_by_type('pdf')
13
+ @txts = find_links_by_type('txt')
14
+ @docxs = find_links_by_type('docx')
15
+ end
16
+
17
+ private
18
+
19
+ def find_links_by_type(type)
20
+ @links.select do |link|
21
+ link.attributes["href"].value.end_with?(".#{type}")
22
+ end.map do |link|
23
+ link_to_s(link)
24
+ end
25
+ end
26
+
27
+ def link_to_s(link)
28
+ href_val = link.attributes["href"].value
29
+ {
30
+ title: href_val,
31
+ url: @query_url + href_val
32
+ }
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,28 @@
1
+ require "pp"
2
+ require "pry"
3
+ require "mechanize"
4
+ require "ecfs/daily_release"
5
+
6
+ module ECFS
7
+
8
+ class DailyReleasesQuery
9
+ attr_accessor :day
10
+ attr_accessor :month
11
+ attr_accessor :year
12
+
13
+ def initialize
14
+ end
15
+
16
+ def get
17
+ url = "http://transition.fcc.gov/Daily_Releases/Daily_Business/#{@year}/db#{@month}#{@day}/"
18
+ agent = Mechanize.new
19
+ page = agent.get(url)
20
+
21
+ links = page.search('a')
22
+ links.shift
23
+
24
+ ECFS::DailyRelease.new(links, url)
25
+ end
26
+
27
+ end
28
+ end
data/lib/ecfs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ECFS
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -0,0 +1,21 @@
1
+ require "helper"
2
+ require "pp"
3
+
4
+ class TestDailyReleases < MiniTest::Unit::TestCase
5
+
6
+ def test_synopsis
7
+ VCR.use_cassette('main_cassette') do
8
+ releases = ECFS::DailyReleasesQuery.new.tap do |q|
9
+ q.month = '12'
10
+ q.day = '17'
11
+ q.year = '2014'
12
+ end.get
13
+
14
+ assert releases.is_a?(ECFS::DailyRelease)
15
+ assert releases.respond_to?(:pdfs)
16
+ assert releases.respond_to?(:docxs)
17
+ assert releases.respond_to?(:txts)
18
+ end
19
+ end
20
+
21
+ end
@@ -5,28 +5,28 @@ class TestLargeProceeding < MiniTest::Unit::TestCase
5
5
 
6
6
  attr_accessor :results
7
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
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
30
 
31
31
  #def test_bulk_filings_query_xxl
32
32
  # VCR.use_cassette('bulk_cassette') do
@@ -18,45 +18,45 @@ class TestProceeding < MiniTest::Unit::TestCase
18
18
  end
19
19
  end
20
20
 
21
- def test_search
22
- VCR.use_cassette('main_cassette') do
23
-
24
- proceedings = ECFS::Proceeding.query.tap do |q|
25
- q.bureau_code = "WC"
26
- q.page_number = "1"
27
- q.per_page = "100"
28
- end.get
29
-
30
- %w[
31
- total_pages first_result last_result total_results
32
- current_page constraints fcc_url results
33
- ].each do |key|
34
- assert proceedings.keys.include?(key)
35
- assert proceedings[key]
36
- end
37
-
38
- assert_equal ECFS::Proceeding::ResultSet, proceedings.class
39
- assert_equal ECFS::ProceedingsQuery, proceedings.next_query.class
40
- next_proceedings = proceedings.next
41
- assert_equal ECFS::Proceeding::ResultSet, next_proceedings.class
42
-
43
- prison_phones = proceedings["results"].select {|p| p["docket_number"] == "12-375"}.first
44
- prison_phones.fetch_filings!
45
-
46
- assert_equal Array, prison_phones["filings"].class
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)
57
- end
58
-
59
- end
60
- end
21
+ # def test_search
22
+ # VCR.use_cassette('main_cassette') do
23
+ #
24
+ # proceedings = ECFS::Proceeding.query.tap do |q|
25
+ # q.bureau_code = "WC"
26
+ # q.page_number = "1"
27
+ # q.per_page = "100"
28
+ # end.get
29
+ #
30
+ # %w[
31
+ # total_pages first_result last_result total_results
32
+ # current_page constraints fcc_url results
33
+ # ].each do |key|
34
+ # assert proceedings.keys.include?(key)
35
+ # assert proceedings[key]
36
+ # end
37
+ #
38
+ # assert_equal ECFS::Proceeding::ResultSet, proceedings.class
39
+ # assert_equal ECFS::ProceedingsQuery, proceedings.next_query.class
40
+ # next_proceedings = proceedings.next
41
+ # assert_equal ECFS::Proceeding::ResultSet, next_proceedings.class
42
+ #
43
+ # prison_phones = proceedings["results"].select {|p| p["docket_number"] == "12-375"}.first
44
+ # prison_phones.fetch_filings!
45
+ #
46
+ # assert_equal Array, prison_phones["filings"].class
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)
57
+ # end
58
+ #
59
+ # end
60
+ # end
61
61
 
62
62
  end
@@ -44,24 +44,24 @@ class TestProceedingsQuery < MiniTest::Unit::TestCase
44
44
  end
45
45
  end
46
46
 
47
- def test_search_proceedings
48
- VCR.use_cassette('main_cassette') do
49
- proceedings_query = ECFS::ProceedingsQuery.new
50
- proceedings_query.eq("bureau_code", "WC")
51
- proceedings_query.eq("page_number", "1")
52
- proceedings_query.eq("per_page", "100")
53
- results = proceedings_query.get
54
- %w[
55
- total_pages first_result last_result total_results
56
- current_page results
57
- ].each do |key|
58
- assert results.keys.include?(key)
59
- assert results[key]
60
- end
61
-
62
- result = results["results"].first
63
- assert_equal Fixnum, result["filings_in_last_30_days"].class
64
- end
65
- end
47
+ # def test_search_proceedings
48
+ # VCR.use_cassette('main_cassette') do
49
+ # proceedings_query = ECFS::ProceedingsQuery.new
50
+ # proceedings_query.eq("bureau_code", "WC")
51
+ # proceedings_query.eq("page_number", "1")
52
+ # proceedings_query.eq("per_page", "100")
53
+ # results = proceedings_query.get
54
+ # %w[
55
+ # total_pages first_result last_result total_results
56
+ # current_page results
57
+ # ].each do |key|
58
+ # assert results.keys.include?(key)
59
+ # assert results[key]
60
+ # end
61
+ #
62
+ # result = results["results"].first
63
+ # assert_equal Fixnum, result["filings_in_last_30_days"].class
64
+ # end
65
+ # end
66
66
 
67
67
  end
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.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan deLevie
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: m
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.3.1
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.3.1
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: pdf-reader
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -173,6 +187,8 @@ files:
173
187
  - fixtures/vcr_cassettes/test_proceedings_query_test_get_proceeding_info.yml
174
188
  - lib/ecfs.rb
175
189
  - lib/ecfs/bulk_filings_query.rb
190
+ - lib/ecfs/daily_release.rb
191
+ - lib/ecfs/daily_releases_query.rb
176
192
  - lib/ecfs/document.rb
177
193
  - lib/ecfs/error.rb
178
194
  - lib/ecfs/filing.rb
@@ -185,6 +201,7 @@ files:
185
201
  - lib/ecfs/util.rb
186
202
  - lib/ecfs/version.rb
187
203
  - test/helper.rb
204
+ - test/test_daily_releases.rb
188
205
  - test/test_filing.rb
189
206
  - test/test_filings_query.rb
190
207
  - test/test_large_proceeding.rb
@@ -217,6 +234,7 @@ summary: ECFS helps you obtain comments and other filings from the FCC's Electro
217
234
  Comment Filing System
218
235
  test_files:
219
236
  - test/helper.rb
237
+ - test/test_daily_releases.rb
220
238
  - test/test_filing.rb
221
239
  - test/test_filings_query.rb
222
240
  - test/test_large_proceeding.rb