statement 0.9.1 → 0.9.3
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/.gitignore +1 -0
- data/README.md +10 -1
- data/lib/statement/facebook.rb +32 -0
- data/lib/statement/feed.rb +0 -1
- data/lib/statement/version.rb +1 -1
- data/lib/statement.rb +1 -1
- data/statement.gemspec +2 -0
- metadata +35 -12
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -28,15 +28,24 @@ $ gem install statement
|
|
28
28
|
|
29
29
|
## Usage
|
30
30
|
|
31
|
+
Statement provides access to press releases and Facebook status updates from members of Congress. Most congressional offices have RSS feeds but some require HTML scraping. To parse an RSS feed, simply pass the URL to Statement's Feed class:
|
32
|
+
|
31
33
|
```ruby
|
32
34
|
require 'rubygems'
|
33
35
|
require 'statement'
|
34
36
|
|
35
|
-
results = Statement::
|
37
|
+
results = Statement::Feed.from_rss('http://blumenauer.house.gov/index.php?option=com_bca-rss-syndicator&feed_id=1')
|
36
38
|
puts results.first
|
37
39
|
{:source=>"http://blumenauer.house.gov/index.php?option=com_bca-rss-syndicator&feed_id=1", :url=>"http://blumenauer.house.gov/index.php?option=com_content&view=article&id=2203:blumenauer-qwe-need-a-national-system-that-speaks-to-the-transportation-challenges-of-todayq&catid=66:2013-press-releases", :title=>"Blumenauer: "We need a national system that speaks to the transportation challenges of ...", :date=>#<Date: 2013-04-24 ((2456407j,0s,0n),+0s,2299161j)>, :domain=>"blumenauer.house.gov"}
|
38
40
|
```
|
39
41
|
|
42
|
+
The sites that require HTML scraping are detailed in individual methods, and can be called individually or in bulk:
|
43
|
+
|
44
|
+
```
|
45
|
+
`results = Statement::Scraper.billnelson`
|
46
|
+
`all_scraped_members = Statement::Scraper.member_scrapers`
|
47
|
+
```
|
48
|
+
|
40
49
|
## Tests
|
41
50
|
|
42
51
|
Statement uses MiniTest, to run tests:
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'koala'
|
2
|
+
require 'oj'
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
module Statement
|
6
|
+
class Facebook
|
7
|
+
|
8
|
+
attr_accessor :graph, :feed, :batch
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@@config = YAML.load_file("config.yml") rescue nil || {}
|
12
|
+
app_id = ENV['APP_ID'] || @@config['app_id']
|
13
|
+
app_secret = ENV['APP_SECRET'] || @@config['app_secret']
|
14
|
+
oauth = Koala::Facebook::OAuth.new(app_id, app_secret)
|
15
|
+
@graph = Koala::Facebook::API.new(oauth.get_app_access_token)
|
16
|
+
end
|
17
|
+
|
18
|
+
def feed(member_id)
|
19
|
+
graph.get_connection(member_id, 'feed')
|
20
|
+
end
|
21
|
+
|
22
|
+
# given an array of congressional facebook ids, pulls feeds in batches of 50.
|
23
|
+
def batch(member_ids, slice)
|
24
|
+
results = []
|
25
|
+
member_ids.each_slice(slice) do |members|
|
26
|
+
results << graph.batch {|batch_api| members.each {|member| batch_api.get_connection(member, 'feed')}}
|
27
|
+
end
|
28
|
+
results
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
data/lib/statement/feed.rb
CHANGED
data/lib/statement/version.rb
CHANGED
data/lib/statement.rb
CHANGED
data/statement.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statement
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
16
|
-
requirement: &
|
16
|
+
requirement: &2151865900 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.3'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2151865900
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &2151865380 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2151865380
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: webmock
|
38
|
-
requirement: &
|
38
|
+
requirement: &2151864860 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2151864860
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: american_date
|
49
|
-
requirement: &
|
49
|
+
requirement: &2151864300 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2151864300
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: nokogiri
|
60
|
-
requirement: &
|
60
|
+
requirement: &2151863820 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,29 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2151863820
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: koala
|
71
|
+
requirement: &2151863260 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *2151863260
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: oj
|
82
|
+
requirement: &2151877300 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *2151877300
|
69
91
|
description: Crawls congressional websites for press releases.
|
70
92
|
email:
|
71
93
|
- dwillis@gmail.com
|
@@ -79,6 +101,7 @@ files:
|
|
79
101
|
- README.md
|
80
102
|
- Rakefile
|
81
103
|
- lib/statement.rb
|
104
|
+
- lib/statement/facebook.rb
|
82
105
|
- lib/statement/feed.rb
|
83
106
|
- lib/statement/scraper.rb
|
84
107
|
- lib/statement/utils.rb
|