ecfs 0.4.0 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95767cb5a02a676bcb02c3a28999ad717d37e754
4
- data.tar.gz: f7e2085bcd71d228b15cdaaebbb52f6356bc1a0e
3
+ metadata.gz: fa5da38c0c5348fa0c845d28c0f9c2516cf33bb3
4
+ data.tar.gz: 30aed783337f289d994d490d26240bb43b6266e4
5
5
  SHA512:
6
- metadata.gz: 0fda14c85e1e0376cd8046a67441e6d72d0b02a2d2f1abbba6548deb8fa0d972657613449b6a11aa1b59a1a0ee49ae842de0d2c26dd9f063fd60257b991dd52a
7
- data.tar.gz: 7b45427927b845289db6b7b17d159c39c5203c60c9bdaa4d1aa553418ef92607b548b8c7e462666c83d42747cf42db175e443fc6185a575a48fb10624858dc49
6
+ metadata.gz: e91e0878401399171a6f346d72049a3d3c71975d2a6ca1671e7775a8f49e5a7bfac62e84765a7ec27b500e95599c2a8df77e684fe3e4885ee2e0a1dc9446432e
7
+ data.tar.gz: 0fd4b2971174f2c3317016d85282a056b046ea3f06702349b92de6b5f50804ddf35591aa0e41f10f70e260fbfe28d009e2e2147cf3e8fd1eaa73b8ab960d4d41
data/README.md CHANGED
@@ -256,6 +256,23 @@ p filings.first
256
256
  }
257
257
  ```
258
258
 
259
+ Options:
260
+
261
+ ```ruby
262
+ filings = ECFS::SolrScrapeQuery.new.tap do |q|
263
+ q.docket_number = '12-83'
264
+
265
+ # a minimum date, inclusive. mm/dd/yyyy
266
+ q.received_min_date = '03/30/2012'
267
+
268
+ # an after_scrape block
269
+ q.after_scrape = Proc.new do |filings|
270
+ p "Fetched asynchronyously: #{filings.length}"
271
+ end
272
+ # This is handy for large scrapes.
273
+ end.get
274
+ ```
275
+
259
276
  ### Daily Releases
260
277
 
261
278
  This feature parses these types of pages: http://transition.fcc.gov/Daily_Releases/Daily_Business/2014/db0917/.
@@ -7,8 +7,9 @@ module ECFS
7
7
  class SolrScrapeQuery
8
8
  attr_accessor :docket_number
9
9
  attr_accessor :received_min_date
10
+ attr_accessor :after_scrape
10
11
 
11
- def filings_from_docket_number(docket_number, start=0, received_min_date=nil)
12
+ def filings_from_docket_number(docket_number, start=0, received_min_date=nil, after_scrape=nil)
12
13
  url = "http://apps.fcc.gov/ecfs/solr/search?sort=dateRcpt&proceeding=#{docket_number}&dir=asc&start=#{start}"
13
14
 
14
15
  if received_min_date
@@ -46,6 +47,10 @@ module ECFS
46
47
  }
47
48
  end
48
49
 
50
+ if after_scrape
51
+ after_scrape.call(filings)
52
+ end
53
+
49
54
  return filings, total
50
55
  end
51
56
 
@@ -72,7 +77,7 @@ module ECFS
72
77
  url = "http://apps.fcc.gov/ecfs/solr/search?sort=dateRcpt&proceeding=#{@docket_number}&dir=asc&start=0"
73
78
  filings = []
74
79
 
75
- first_page_of_filings, total = filings_from_docket_number(@docket_number, 0, @received_min_date)
80
+ first_page_of_filings, total = filings_from_docket_number(@docket_number, 0, @received_min_date, @after_scrape)
76
81
 
77
82
  pages = (total.to_f/20.0).ceil.to_i.times.map {|n| n*20} # divide, round up, then map *20
78
83
  pages.shift
@@ -80,7 +85,7 @@ module ECFS
80
85
  filings.concat first_page_of_filings
81
86
 
82
87
  pages.each do |page|
83
- filings.concat filings_from_docket_number(@docket_number, page, @received_min_date)[0]
88
+ filings.concat filings_from_docket_number(@docket_number, page, @received_min_date, @after_scrape)[0]
84
89
  end
85
90
 
86
91
  filings.each do |filing|
@@ -1,3 +1,3 @@
1
1
  module ECFS
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -33,5 +33,39 @@ class TestSolrScrape < MiniTest::Unit::TestCase
33
33
  assert filing_date > min_date
34
34
  end
35
35
  end
36
+
37
+ class FakeArrayThing
38
+ def initialize
39
+ @filings = []
40
+ end
41
+
42
+ def concat(filings)
43
+ @filings.concat(filings)
44
+ end
45
+
46
+ def filings
47
+ @filings
48
+ end
49
+ end
50
+
51
+ def test_after_scrape
52
+ VCR.use_cassette('solr_cassette') do
53
+
54
+ @fake_array_thing = FakeArrayThing.new
55
+
56
+ filings = ECFS::SolrScrapeQuery.new.tap do |q|
57
+ q.docket_number = '12-83'
58
+ q.after_scrape = Proc.new do |filings|
59
+ @fake_array_thing.concat(filings)
60
+ end
61
+ end.get
62
+
63
+ assert filings.first.is_a?(Hash)
64
+ assert filings.first.has_key?('docket_number')
65
+ assert filings.first.has_key?('citation')
66
+
67
+ assert_equal filings.length, @fake_array_thing.filings.length
68
+ end
69
+ end
36
70
 
37
71
  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.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan deLevie