ecfs 0.3.0 → 0.3.1

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
@@ -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