engagement 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/engagement.gemspec +1 -0
- data/lib/engagement/comment_counter.rb +1 -0
- data/lib/engagement/comment_counter/twitter.rb +22 -0
- data/lib/engagement/version.rb +1 -1
- data/spec/cassettes/Engagement_CommentCounter_Twitter/returns_the_number_of_comments_for_the_given_url.yml +240 -0
- data/spec/engagement/comment_counter/twitter_spec.rb +15 -0
- data/spec/spec_helper.rb +18 -0
- metadata +22 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7add977384c5339a6051057a45a5898b5739983a
|
4
|
+
data.tar.gz: 48fe8059a1958eb67ca6a8e788839b045e04bbb1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efb02af994ce02d858e23e193173a44127e4a32ce09ec99d473dddbfa61f9206a25edaffb011077ef7e1b8603aec6be3aaadd2a1c3b9ae7e698b0f455a929fb0
|
7
|
+
data.tar.gz: 45144352d7073083f763366e16b739262dae977e75ff07f004edbd390af81919705a6e523c64ff23306b660fd509a5ffaaf9c6add997868ae6dedda13df47def
|
data/engagement.gemspec
CHANGED
@@ -5,6 +5,7 @@ module Engagement
|
|
5
5
|
autoload :HackerNews, 'engagement/comment_counter/hacker_news'
|
6
6
|
autoload :Reddit, 'engagement/comment_counter/reddit'
|
7
7
|
autoload :Disqus, 'engagement/comment_counter/disqus'
|
8
|
+
autoload :Twitter, 'engagement/comment_counter/twitter'
|
8
9
|
|
9
10
|
def initialize(places)
|
10
11
|
@places = places
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'twitter'
|
2
|
+
|
3
|
+
module Engagement
|
4
|
+
class CommentCounter
|
5
|
+
class Twitter
|
6
|
+
|
7
|
+
def initialize(credentials)
|
8
|
+
::Twitter.configure do |config|
|
9
|
+
config.consumer_key = credentials[:consumer_key]
|
10
|
+
config.consumer_secret = credentials[:consumer_secret]
|
11
|
+
config.oauth_token = credentials[:oauth_token]
|
12
|
+
config.oauth_token_secret = credentials[:oauth_token_secret]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# FYI, Twitter only returns 6-9 days worth of tweet data
|
17
|
+
def comments_count(url)
|
18
|
+
::Twitter.search(url)[:statuses].count
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/engagement/version.rb
CHANGED
@@ -0,0 +1,240 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.twitter.com/1.1/search/tweets.json?q=http://gaslight.co/blog/angular-backed-svgs
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ""
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/json
|
12
|
+
User-Agent:
|
13
|
+
- Twitter Ruby Gem 4.8.1
|
14
|
+
Authorization:
|
15
|
+
- OAuth oauth_consumer_key="<TWITTER_CONSUMER_KEY>", oauth_nonce="f1b4c5784f02798d41a6676feb35201b", oauth_signature="nBEy1XNK7JNSQh2KXRvb%2FmUz7ds%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1376420828", oauth_token="<TWITTER_OAUTH_TOKEN>", oauth_version="1.0"
|
16
|
+
Accept-Encoding:
|
17
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
Cache-Control:
|
24
|
+
- no-cache, no-store, must-revalidate, pre-check=0, post-check=0
|
25
|
+
Content-Type:
|
26
|
+
- application/json;charset=utf-8
|
27
|
+
Date:
|
28
|
+
- Tue, 13 Aug 2013 19:07:08 GMT
|
29
|
+
Expires:
|
30
|
+
- Tue, 31 Mar 1981 05:00:00 GMT
|
31
|
+
Last-Modified:
|
32
|
+
- Tue, 13 Aug 2013 19:07:08 GMT
|
33
|
+
Pragma:
|
34
|
+
- no-cache
|
35
|
+
Server:
|
36
|
+
- tfe
|
37
|
+
Set-Cookie:
|
38
|
+
- guest_id=v1%3A137642082886962920; Domain=.twitter.com; Path=/; Expires=Thu, 13-Aug-2015 19:07:08 UTC
|
39
|
+
- lang=en
|
40
|
+
Status:
|
41
|
+
- 200 OK
|
42
|
+
Strict-Transport-Security:
|
43
|
+
- max-age=631138519
|
44
|
+
X-Access-Level:
|
45
|
+
- read
|
46
|
+
X-Frame-Options:
|
47
|
+
- SAMEORIGIN
|
48
|
+
X-Rate-Limit-Limit:
|
49
|
+
- "180"
|
50
|
+
X-Rate-Limit-Remaining:
|
51
|
+
- "176"
|
52
|
+
X-Rate-Limit-Reset:
|
53
|
+
- "1376421148"
|
54
|
+
X-Transaction:
|
55
|
+
- 6abce9b078fd66a2
|
56
|
+
Content-Encoding:
|
57
|
+
- gzip
|
58
|
+
Connection:
|
59
|
+
- close
|
60
|
+
body:
|
61
|
+
encoding: ASCII-8BIT
|
62
|
+
string: !binary |
|
63
|
+
H4sIAAAAAAAAAOyYW3PbNhaA/wpGL/uwqgwSvIic6Uxky9rpJW3auJu0VYYD
|
64
|
+
kpAEiwIYArSsZvzf94AUJeoWO4ncnd2JHmwJ5+DCc/2IDx2lqS4VU53wzw+d
|
65
|
+
BdM0pZp2wg+dgqky05Fe5awTwq+ECd3pdriSUUbFtKRTFiUyNUImOg/dTlIw
|
66
|
+
qlkaUQ1Dr6lGg3KKLIywHTpeaBP0TwwfZGOLmHXSTkg8D9u+bwW2g22M4b8Z
|
67
|
+
j5QuYIVDIczS7L5a/d//QgsqeF5mVHMpEBdIzxiKC7lUrEBcIYpyyreCUmvz
|
68
|
+
B81Ywf4BUoHYPV3kGUNygkrFxRQN4KEyWnz/GmkJq8+ZQlwjRhVnRQ/NtM7D
|
69
|
+
8cX4QvcSOb74I32f24EavMdwKiXLIjGGWLLYHLIoRWJM0QknNFMMHkpEBcuz
|
70
|
+
VaRlVBs8Ms8vyiw7IayNcKgAripOzF2LTs1U4B8mIkEXrBGbGcbVZj3bdl2M
|
71
|
+
+9htuWAzBg9Vz+u8YhrsOyy4EFSYR2+v2smNNN0IM5lU7gHJz1rTJYWxlMEU
|
72
|
+
nq+H37AYLVgyA18mPfQSPJat1u64gtj6bio4rNhFP9I7WrCsi97IIs0hNFUX
|
73
|
+
XUqp4Zw0725d10Xfg2YX/JuiDMTGu4NX3ynYuCwy2HDPjdd/TS+X/eCtdwMa
|
74
|
+
EOBcc5MKH2rt6l+dGU+YfZ/DrhD/e6rL5bKXp3c80bKAWQtjA67yjK7WmntC
|
75
|
+
LlKeVPmIu7b97uHdw57RNqd69wCivJCaJe1gm8gsk0tWKEjPEnI29AgMFpyJ
|
76
|
+
dDNkeZBqGVcmX5uhIxk8ZAmyLGT1Q+KEjr/NYBP1E3oHcQ/+Ua0lSp1EcjJR
|
77
|
+
TDdBpvmCRX9JsYm6KZMREzTOzJkhV+DId6zgE956hqYqNSsTG+LSlJ262sBR
|
78
|
+
pdAFh4yW8Jyb1Zp0UxHEhVBQHGSxGQVLTXjGopgm82kB65pHz2Qd6I7nXnaO
|
79
|
+
6vCFqXR7TqW4p5d8MTU+G1+cmqXGFyaBXMt3PdBa+zmCmRqiuqXeu82nj+we
|
80
|
+
mb3V+gyqOoTif9cpNPxufNWIP8EuzTFsEviEYDcIxhe3t3Obl4XOBU6oFfgz
|
81
|
+
N/UiIYsFzeAcrH2Qz7DBF+6YcTHfBAdUQOfSaUkVT1lMwXJQi8CAjd6gf+WP
|
82
|
+
/CN68CPbaF3h4ej6qqVlWtpGSqpPSwpJcODQxhMpm1DTote6m0DfG28m7ZQH
|
83
|
+
blJpZwQ6xfuSKR0p0+gbmZAaMrMu42o9+lDlcJPOiQQzcAGFQzVDUNwStpVv
|
84
|
+
M7UZK5heMqab7MZ1MTG1pFVK2uV4RtVM02lV9aA6rBaxzNY/Pl6id/r0qRI9
|
85
|
+
pSrj01k9I87kFAK57ijfGNuz9Bt1N1UHhftj08aljW1vp5xbltu1iA8Vve68
|
86
|
+
0cI8YWXWP02Rb0ywrWNrM7VGcqkUj6Ghg5MUWOdu69dtdXzoPhfJ4dCxT5Ac
|
87
|
+
pJjnWrbnY9cmJCA7JLcv3JLcrzfohWnZr6v+NqQ8W4Xbdr42PwLeU+E+gpX3
|
88
|
+
859+fjtfMaeNYOMSY5JQNCvY5NtxKxzqcleXiVQuRSZpOr7g+Qxa07iDgC5A
|
89
|
+
Xcg6Gcb1OuymnoUmEqDyVaVarQ+erhX+V3HPgh7uBpZjtR21HdwC3yBDv5vI
|
90
|
+
2kc9ClOkoKWmsNwO6v3Eluh3Wcy7qPl2gH1KTvQSgA6l7K6HbkvBwb4vEFTB
|
91
|
+
chFzimAAkAACfNVDMcRiLO/Bdacg7o9bfG2Pli/frj4H4nZnfwTiKPCSFCsw
|
92
|
+
xlGMOxCfH+QcfABygbvPcWQvf0cFrznOQdgPsRc6/W3+2kc5ztvlOAteAfAO
|
93
|
+
yHUG8FIlTEXcgbn1uR+lOcv2n5PmoMVeXw+fg+aI3+/j6uNi0veJS6DwY0qY
|
94
|
+
G9iTNLWJN/EmNHFiL2BxP8VBjJN9tjg73J35UGdiPeJDubcCxwXysijBPmYp
|
95
|
+
dTyfpbHjEidI2MTqp33Lhd/n574z7B5TIaDCbh+63jiP1XG/GG3YeVtD4Tvx
|
96
|
+
gr5tkaD/pWxZ+/cxthxC3I+8r2xZQ9O6u5o6ez4aupmVFQ3hPrLskLghPk5D
|
97
|
+
jgtV0/X6juu6vu/t0tCecEtDzwE+cTmZsILmeRWwp0DnstL6P4EbSHvbd11i
|
98
|
+
tcy+GduizZY7UQWeB4yzB6a7mHMANZUOai0q2FLVN1GQ8qqHBkiZTl0gmlSN
|
99
|
+
0NwzmsvJ1pQ3jM1hETMzYxV5mvkUvbiSMmfFK3PzhSD30jIxu55Eol/e619e
|
100
|
+
+jc/XDmfg0S7s08g0S2cun78ZXXouh4eYNExtWeBIzvwiH/AR451cM8F7yF7
|
101
|
+
Sf1SCnCCQDhAFgkdEmL3MUSyP/2q6+l0ROznxCPXurq8HD3PZVefEKtPPIgO
|
102
|
+
FU97uXjmW60nbneu6yubBHYQ4MA3G6Ym3eGlXzb8sLv9l1xafco+Ozhh+f7A
|
103
|
+
u34cJ0b4ejgcPIYTo+FoNMJfcaJ9VWV5h3dVrn2my6qdxv7fvayySddx/46r
|
104
|
+
qqcYGH+qfY8c+8Ojvf00FTyFKbamI10rqBvaU8x0lms7IQ9A1bz2V6AaQBML
|
105
|
+
bRfayvFrO2L5ASauHdjY3QfVPeEBqKIWpu5TqrwfWfKutO7Tr5R6lFI9F97V
|
106
|
+
+17b5M1Q6/pNpAVboh/kHc2YmMsDRk1WMYTeLpr+Ni8oF6yLhsAiWh3ev90w
|
107
|
+
ukA/Mpr+BwAA///s231vmzgYAPCv4vtnu9OlxAbzVmm6pVnT16g9Ze26KdLk
|
108
|
+
gEO8gukIJEs//T0mS1MgLFnanLSpaSVKgFA5xv7xPA8qt9pbBOPe8QkPFTNz
|
109
|
+
dKrU7GkmbwXX+klfvufeCAVAOA1dJnGQsChSWVrmQ7dPNXQeT3iO2VEMbB2n
|
110
|
+
DRSy+TLIe+U4rbXqu/NOzF1pnd1sY9Xi0TVjphrvtHlLadAilcGxun0HWVir
|
111
|
+
moV1KtE7XHMZE4p0oqJ3Jn64jLG7SRZ2RfTubCYm5djdpolYw8a7xCkxiEms
|
112
|
+
neDUNg2HQqv1m9hOmOlOdDmghojuv/kTQneO1W1P/0x4JSY1HQK/tN8Un1n0
|
113
|
+
WV/GvZ7JrZueYsvI2mJwVHE1k+rEsQyzPq7mwms9hA/z1zoIH3bUzwuE1+Rs
|
114
|
+
f5ppNUN6QQ61QzpQQAtnqtedH5xMg+qYXt3hEW9xg+o75m2Osh2Rjph5TR1e
|
115
|
+
STrHIhYh2CK6hfVSTV1540+Rzku/ptfWVfwpeyHdStLB5OVSGOcL2e/Fe0vU
|
116
|
+
HSU8QK0w5NUKutOjViaKmjvmSRSPGTrgzBs1ULtVjTwu4KYh1IFPg77k8X6z
|
117
|
+
DT0auhuTaf43TMSq8KffnI6gXWGm1/qyL98CA+WJvEiCBjqNVaZ1nuy+6DXQ
|
118
|
+
tYCePc7Xu8xroC//ZjyZoYNMhL6So2IiwfhvBOeWaN4hUCgGCQPnjFEsUSDS
|
119
|
+
UTaopV+r3f523+1e30y2oV/x6Lrb5fl/kE8pXwKmGl03qnfHNXvtIExJ9KoD
|
120
|
+
XafsQLtchZFJpXEEd3HEUQ4kZHntk9UOpEUI7ummXpbgJfPUVIHew3voz6se
|
121
|
+
eoXaTMJ49deWPiTU3mmlno1dw7W39uGCKnCnEj0sQRSDQAvE8Mn+2+bj08cM
|
122
|
+
eErCFZsWtW3XsPtNBzTh+ZTovjkcWobBbGzpvu+Z3LIMB/MdJFyffvYC4Dod
|
123
|
+
w1iZ8CwBzrFatGWtA1wLt822/QK4/wlwBSesB5x9EGS69wPAPezwKwFuRfL4
|
124
|
+
MeDoPjb2cQ3gDNPCLoV7YQMuGFoCXHHjEnC9dBaqkEwutylMaKjd62noOA5n
|
125
|
+
yAOHoRTm/ddjFHApsvEfZdwFp72Pl4Nr/+4KzePBaCIYeptyFi1ix5uoT6SZ
|
126
|
+
5GMN2Bfy+VCRwfAAqw8leLCPT7FrO3CH5vwTpW+IvlH9HRDkN2EiocTVHVoo
|
127
|
+
vfv+1hKJH1iSgKqOYaEKyypSHGUySGYR9wUrerEtpKeewEhFA10cV7DYUs/G
|
128
|
+
TPkAvgYJTQsmhK6vCvG+x/5eIfjW4OJQwDsBzd1ylace8fAO3fFYPTEzSFQ3
|
129
|
+
g7lNgBN9zsZqh1AMuQYHwHo4730qGjgUvg/db6AYqbSoHqtRGyI0jZNbIKNa
|
130
|
+
mSE/lq9TNGIqhhjXYVGObo6c2dn9WXcbLBaP/kGZ37xd9/KGXVnot2KH52ei
|
131
|
+
aVSZaFC3zERafmpDDTFduIvT86c2dHufust4obPaiVap3m+PUFqG4iFTlQvy
|
132
|
+
+aBo/wcAAP//7Jxbb9s2FMe/iuA97MVJSIpXP61ObWQdirbu0C1FgEHXRLlI
|
133
|
+
riTbcD79DpW4utueI9XdOj8EAUlbEsXL7/zPOSQc9yokvsJjfLiXu5HkVL+g
|
134
|
+
uOPnOwNFMDcQwcBkV2ee61rEtrCpiGdZiHKKiHCx7RJYnU2/j8i8l1/90Mi8
|
135
|
+
5yU20w+VJGCWt8blkek5KSl+LfiJJYyznfohGF6UqDb85NnnR8NP3B9+5iRz
|
136
|
+
dDc6lUOBGjG16o+ucNZGKcpLNDgwyiVGouiD3hSVLivEUKH9fdBHyCopoDBi
|
137
|
+
sEmNWLN7WmDMEMNMCv23omVWKnMU/uXOWwZhHDl3qyhygUqsJFnAxrWOFsZd
|
138
|
+
GK0My44WKbBHkIyMS9gPjXvY3wzd6Tp3OJl796mxiiPAnCg0Ni/h1JicXtcy
|
139
|
+
gUM/nn+ZORf4z8FxMoElVYxRSrcQ6mDTZrCFUwelThtUkFUwQQRYHkVm3ZTl
|
140
|
+
4xW4HHOkGeFT4FpJDVoTqFo+1xSQ9bN1HXv20DiPIyiqpwn/Ci8DxrChY6G0
|
141
|
+
sqjNgcprkAKnb8NP1spu40c7+jy9eMeVYx3Cj+Vvtywq8NKcuwjYx4fFdWP9
|
142
|
+
ZJsPhT1AML3xeyebDiivLHt8t2GB2cWbLU9T6q1WGvZsuL8UOvshC0I7jeK6
|
143
|
+
m6WlUd1S3xN8lckaspVpDXyrMZybNDUkssBsc490ZcpkGXxFTR99GphVxN03
|
144
|
+
klMvZX0yrvZyjotc0ZmzXBJiEmkqdHXm2o5yfSaE7xDTZRK7WFAPCWJZvu8J
|
145
|
+
1LfjvJNb6Yydv+ba6HxGpjCHMsJdx8LYJMJGHmfIwcK2BdwnIZ6pzD6yWzq7
|
146
|
+
i5rXfLyH13yafXZRr2ITuSXT+dxUtCjw/hDU26PoWuKQ41KvModAZnthb5U5
|
147
|
+
not/08XGLC+vgE4j1+R7IqbfNfwWkogIGRE5YqoRfjlCjHGmEKWSU1SG30pl
|
148
|
+
Dr+/A9Vqip3Ds6ZrA0btfU3svVhfBsuU3b97c5jKW8qmznpUn7AThVuEXGhj
|
149
|
+
jJ8a/TdUXH1AEUZUVA8tysryoQyQED5GdpA+1mi4VFXA4Y9WaEyBBJwgcaIa
|
150
|
+
DM8W9lqbJTPAraQQtHkC/yfBdWhMwvRmkQTaojkx3gePjzBo4yA7kSebzk+P
|
151
|
+
Ulx0XqZVClUjNsLMXZGNehJ89OYGwhrYsBgRssujzftLulG9RjW+0Gu9V/Iv
|
152
|
+
VorpWG1YoAGJOKPSxJYCThK+Bijbsm0fUMmnvRNbt/fUWfwjMfVWIeXV2fvA
|
153
|
+
SRex9xftPHXnH1ylRF4mmYwV7oq8Xp9P2f9nzHwz8so306OTF8FDan57vZHK
|
154
|
+
Icf/FuTCaoTEiIlG5GJUKU4kVhRzsK7KyFWpHJROsbmNEm9+A73qJaMMugwr
|
155
|
+
TgNHnzAYap/8z89O+Z/ycwYr42j9x8N0eXuxkB+OpCR27uc2CcGMiyKxfy3L
|
156
|
+
B92b4MF4ym+uEdJt8JDeeNCb88H25Os20Q+tZhMsyOsvl4eIfuVvt8xsPeiS
|
157
|
+
4AG65FRP0GQepY1+4/Z23buPsWhQ0UQVyVRDHvSreZwFGfKRnidyl4aGqjGG
|
158
|
+
MDMqGtpb3VKfxbnbd7x3ijT/ng+QaXTu4sy52wV5HfLzXelfBAsluIkVIN11
|
159
|
+
bC21ZXGgvvU3AAAA///sXV1v2jAU/SuW9jQpWh07dmze2LR1TOuEVE196Yvz
|
160
|
+
pYQWwpLQju7P75oV8kkSGJRu4tVOSGRb3HPOvffkME/Zy02ltr8v7qbSOPx6
|
161
|
+
QdQLmKlwXazCms1UGJYcGAWXlrCYVamHq0zmQfmAMfgsg7SYrQAcxCYpQqX1
|
162
|
+
UCHExz76qKFRPcLnsKkqgtxn6KuuF/sQZctawP+UwHFFEN8KpWvasTaexmg0
|
163
|
+
c98ZaH6/SGAVNZxFapGFcWIgF4bgfGtb4MrGS+fh23CcLKLJqlBt41DnJirI
|
164
|
+
0imEjzCaI/8BTrWvo+jWngaM5eWP2ex6Ge6FOEp3b+MSvn+X6oO8whG6Y/X2
|
165
|
+
YhL760WsMIj2i/86lZgvXMsb6wZgLwGgP5ukjeCo4YL8zQCHC7t/CtHSJbNV
|
166
|
+
QYrWBCldYVf6O7rxvT89FvaqZR4DYurqtdVGdseSpKg4g5yTgBxKsDSFxPC4
|
167
|
+
eeRuMmdfxpcHSt/1+f0zsDlxNRrdqg79qtm1lTUY23h2+d1BQyrhjtNqSFQY
|
168
|
+
vLlm7djWL7tIdB2bACiRWf/wJjBm2M1W0VUhrwygGvBWN0gredew16PjRV2U
|
169
|
+
gdIBaU6dMtPEAiiBFMAJeJUylCdzylDgBa0OjE/vnccZ//45xOhNwS9o8LYP
|
170
|
+
adBNBkXi0Kf35Qa2KH5M0f9kQW2ZgtikJA6uh4qFAH6ShRHSnwjxElWjD8/z
|
171
|
+
+XSBQYzgWCvDgUOlILT5NQpxFT9BWFToOlt4cAjRcOqoNFUeEAVtfrPJrBrD
|
172
|
+
8Uj3Vau7Y2VQTVyX6xipfaKjyRzmSi0RIbqfjIkB453mMALvjlh7tnSI4wJW
|
173
|
+
bGJqDvcGrC0JS2JyqfUDcnvxM6AmcXzqYsE9WEWLM5sHNiWSSRmQYPcvdfwG
|
174
|
+
AAD//8ydTQ+CMAyG/xAha/fR7ihGz949Aks4+f9vdhphIxiCsuh5XdPT+jRv
|
175
|
+
u27TTncJZfduNyCyqCj+tNibzjAp1+o+SIWiQheCB4JWDhy7ULDb7fsoPpwc
|
176
|
+
eT1LcXKENGvwmIr5GapL8Ym8tAVkPrhsD+CbBbsM1fnoT81bVIczIKVq8D8r
|
177
|
+
uQJsz5R/uQ2PjJ9h+xWw9pKUGZGFfGpnMDYPYESRzHDFTXK1SlxGN0W3kqzg
|
178
|
+
qKpAkLoarSZomOuo1m+l1glGfk6tApim9IKToZA0fAcAAP//Gh2FHtKNydFR
|
179
|
+
6NFR6NFR6BEwCg0AAAD//+ydUXOaQBDHvwpvfbHkDu4O8CnRSWNaM9qJnb7k
|
180
|
+
BQUTTQoZ0cTm02cXRTnASjGMaXrjjDoHDCjn+uPP7n+VCq1UaKVCKxX66Ork
|
181
|
+
HpSMHRpJsTrJHLhYtZmwMI0QLnjk7jDyQjnL8Ji98lBiCydeKcHybL3ux6BL
|
182
|
+
ygScEDtd6ZEMbenSf/BH8PPMseV2PMWVLRdOwUMY5Gude0HckxrdcwbPofZl
|
183
|
+
MbpHu52NGhkhYJ4aYwDOCI254UsE1vz0KyFQXPl0Djt9DGdYABK3v4Z4pj27
|
184
|
+
v9GoJ7qLgRKiEUztnfx4MW/95PScdCsVS8tb/8FsJzlOfRIWwFh6WQ05koyU
|
185
|
+
smJ0sl6MSGgouxJLI06TkabJ9nvsZPIk86XGFzhnIMZ42aTIkuorhA2mSO0o
|
186
|
+
SZHcNi3OqM1uTsaCvzAesImYPs7M5Yu7sJ7evkFMpR0qlvsgqZKq79w7xQTV
|
187
|
+
d071nVN953YBhOo7V5UvVN+5/758VfWdU33n3l/fuT2gajY5SRvQSqBqEcqZ
|
188
|
+
IwThhtwELb+wRgnsX66uFURAtJYc+dZD21l1ViBITRcwY5gjY2Ubk+h8xMQG
|
189
|
+
0GA0164XUeQvG9qPbznivFwbNvtPfhD7Keq6hk1FVjJUiArUnT/zdRiOf+KG
|
190
|
+
NgDchK96dVNzDsyfLOgMrrrazQlalePL1/g5gNmlTyN82+/0k1Uz57Pb60ed
|
191
|
+
2ff7zmQXjA4vr+eTZe/2alwFRuWtdwRFiAj6rZcLepvhg+9rSp9y11F48Ocx
|
192
|
+
HCZ+6yutUT6gojVSfk1Ogxq0/K1Nk5MC4SxPvNn6YmxigrHBpFiED7GB833C
|
193
|
+
GRdmxqTPzBUYd8PAiw3SK8lmllGrbHbexkct1GtyKpjF+Eaw/wzXb7XD71/u
|
194
|
+
9c1uhwrDchxKOYX57lim67uOT3xixXYMtmd53BDmeDxyqV1DDuLhe6/qWr0O
|
195
|
+
6Zh7KGxssiLS8Cu7yJgt2jJKYHg5FxnA8PahLjLFvH0Ih78CAAD//+xd227a
|
196
|
+
QBD9FX8AFXuz167UB1BCpD6klZqoqkIffCNBXEyNoeLvO7PcvF6cEss0QK1I
|
197
|
+
G7PM2gb2cvZ4Zk5D6zW0XkPrNbReQ+s1tF5D6zW03kXCiYbWuyRa7/y/XyFa
|
198
|
+
jnNUuPC58I/v7J3HMe0yOaw5IhwhUKVISBQJ4gWwrb+pU5MKV/jTYLIjJTU5
|
199
|
+
5Q9F6N17ufsxGt0u/eOSLvuzIMnm+TiPJHs9yAMMtnK+VwLGJWU214RgNjX7
|
200
|
+
npyuEus39BhANrEBwlN070917P2QjFZmnuX+ghPfUaXEMlLHjouliNSxtz2W
|
201
|
+
nAXWJwvOaI2TJRKgyHaq3pekyIJyEodYBqpJpJoPuKrZnPx7HOBBqF4G6+uK
|
202
|
+
vRmhqt7e14dwJx4R0Mq21/ZoYzMAMAsxsMN9K5+pcqDOEGxvw/ViOLMjPbK3
|
203
|
+
LL/6t9svyMfCCJzBxLKWDMRs0y3YhWSxNYFv+3kyzVq7aqgYr7JhOAeLuFTU
|
204
|
+
r3v/a/mYPNqjeZWdhd66ZAae+SnM8LAKrwfOrgPoE26Z1Qn8DolnRns73ND2
|
205
|
+
k0W/Q5y/MDKEuaiZRHg+hymRh/0OaYE8ZYay37bzV9tcEInPbk63u+g5AC7z
|
206
|
+
fmq17S4kRQEpj7F+W8jIkXHE/AEMmyCyJfzzmYiYCGIWc9ek8mreetRzL3Vl
|
207
|
+
ymYeZYxyavfbsIw/D6eUw/rouoxIqD5B0uxKF6zIp25WCyUCyAVh1MtvSfRQ
|
208
|
+
btaV9IhQ7mPp1NP5SF7a9ucfsKkA8FhZkmfhcCo4dARpS88WRYCnvWmwqXUi
|
209
|
+
OnSBD1NAwoCGsy2n2i6FdHnTK4FzlBDb9aiuhbyt20O6p3A4e4nTnwac2yHu
|
210
|
+
A4jO+tz52rk3cN1iBr0ttoIkGU38dDS3kul4VUp9dl1y50m+yh4qARStdZkS
|
211
|
+
+jBTOueTFX6oobkZPGBQPyzhjvlQlxQxCcp6GLEQN3FocRxjAC8+MvG3aFVy
|
212
|
+
YkjiEnpSwrPXwb/KkOSKAyFQ+4a4rpd7NrwZn7VjhrdeSg9+uBHUOUbnrPhL
|
213
|
+
H+Y1i8v///yc9JVQ1vLkKW+j3bQl9p1pTdYS4uxTJVZ3VsyvruZKfMz6rdGD
|
214
|
+
vA73xD8AAAD//6JmE9HQzMrEFEcT0dDUwsjM1NDcGPMeEDRJGi5PJHGHLjBq
|
215
|
+
QOcDErNBN3M4HSVoCFotipwCQXxEmg1ITSnKV3BOLE4sTQIvFENN5RUFwDYF
|
216
|
+
KBegnf0SkFpUkJmel5hni3u3rjMocYFGw0BJrkgPdNV0rkIiaBAwFXy+S2Je
|
217
|
+
pQKw5ZWRB6wO0oFM0CrJnNSSYoXcVGA0JJcWK2TmQcYJM8syS3A3Q9MtMxOD
|
218
|
+
/VPcCo3JaYai6sazHxcRFHqgWhZUAmKUkdjVUK1BCgAAAP//7J1da9swFIb/
|
219
|
+
iti1m+jrSDq5S4fXpdDdrIVeBIbs2Kuhm0PTLOTfT3IL9edWUhv2IXJly7FE
|
220
|
+
4iivXj3nnJeycqabP4V3CgGzHsbwU/mDUCBuASjYgtUYQ9XPGLZ23888YtiS
|
221
|
+
pB/twRbFqZrUTYdTKlJcxjI2QZH+Incgl1KDQsD1XILlaa70xmAOKCwkKbUb
|
222
|
+
LRhNuM2pHl2rjjeIUxlCPx1WACHjhgsYBAj9IHudrHbyQn3+XvZFDzeEcezu
|
223
|
+
hXUcsSGMnyoEBscr8IOBHwz8YOAHAz8Y+MHADwZ+MPCDgR8M/OCfzg/yBcAC
|
224
|
+
6IDYVoIpjSCEVNAR243GCb3Dvzm0GdEYzhqhzc+n3jXKBq+qP59OzeAvRXW+
|
225
|
+
Jo8vqi/ygVyXPmNzSZbuuCOZ4+/uku1DscvIVZkU98XjMSLLe/d8Xn6OqlBl
|
226
|
+
iHyksohqIjnyMcoRuVmt5ze3EblYuUsPrrM7H0m93R3Tu8r6i0i223q9XM6e
|
227
|
+
7kS+7o/e/LNkty8eh5Tz9eWVOhxyJranKOfmu4eUc/Ft5j6v3Sy1fYL5pXUS
|
228
|
+
nSz7bD7oJOET0P4x7jPyIUuIW/Ay7VNtAv42TTK0QonPmOzsPcfWr4leU6z4
|
229
|
+
tQHGXE9q/lHhXnWXZTxCTnHOJAWn+4ALaoHTlIMns5RJ8zRRkOk8M4D5ZnpC
|
230
|
+
bpSxjGYrSqeHJRVg1nPMsowaBA3UbgxP0SI3WmCqE4oGpwhGfnvvpxqJz5Nw
|
231
|
+
5SVS1ysyNiT+QepzVW99Ez3HOEc2uMmujVoC/C/iP3iJwUsMXmLwEoOXGLzE
|
232
|
+
f89L/AkAAP//Gh1LHB1LHB1LHMLhO1zHEkERkppYlJwRj9zmBhZzBTngNnkm
|
233
|
+
sGo30DMwtNBRyk2siIe0ls0MjMxBO7tMDIwMDIA0TA7eYkZXAAoEUFkEacuD
|
234
|
+
Cld7iA5bjMFDU7VCW1Dcqho7qhq5ARFSRAF5oJgCUlhiWC0zLzmnNCU1Hpb0
|
235
|
+
bEGhByx3iiqhyYVkI5VA4ZoGdHQGNNHYFwMtSYW4G92P1HU3LHeZAuMHaic4
|
236
|
+
X8E40KA2UKqtBQAAAP//AwApUq4P794AAA==
|
237
|
+
|
238
|
+
http_version:
|
239
|
+
recorded_at: Tue, 13 Aug 2013 19:07:09 GMT
|
240
|
+
recorded_with: VCR 2.5.0
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Engagement::CommentCounter::Twitter do
|
4
|
+
|
5
|
+
if twitter_credentials_present?
|
6
|
+
let(:counter) { Engagement::CommentCounter::Twitter.new(twitter_credentials) }
|
7
|
+
let(:url) { 'http://gaslight.co/blog/angular-backed-svgs' }
|
8
|
+
|
9
|
+
it 'returns the number of comments for the given url', :vcr do
|
10
|
+
counter.comments_count(url).should == 15
|
11
|
+
end
|
12
|
+
else
|
13
|
+
puts 'Skipping Twitter test, please set the TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_OAUTH_TOKEN, TWITTER_OAUTH_TOKEN_SECRET environment variables.'
|
14
|
+
end
|
15
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -6,11 +6,29 @@ def disqus_forum_api_key
|
|
6
6
|
ENV['DISQUS_FORUM_API_KEY']
|
7
7
|
end
|
8
8
|
|
9
|
+
def twitter_credentials
|
10
|
+
{
|
11
|
+
consumer_key: ENV['TWITTER_CONSUMER_KEY'],
|
12
|
+
consumer_secret: ENV['TWITTER_CONSUMER_SECRET'],
|
13
|
+
oauth_token: ENV['TWITTER_OAUTH_TOKEN'],
|
14
|
+
oauth_token_secret: ENV['TWITTER_OAUTH_TOKEN_SECRET'],
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
def twitter_credentials_present?
|
19
|
+
twitter_credentials[:consumer_key] &&
|
20
|
+
twitter_credentials[:consumer_secret] &&
|
21
|
+
twitter_credentials[:oauth_token] &&
|
22
|
+
twitter_credentials[:oauth_token_secret]
|
23
|
+
end
|
24
|
+
|
9
25
|
VCR.configure do |c|
|
10
26
|
c.cassette_library_dir = 'spec/cassettes'
|
11
27
|
c.hook_into :webmock
|
12
28
|
c.configure_rspec_metadata!
|
13
29
|
c.filter_sensitive_data('<FILTERED>') { disqus_forum_api_key }
|
30
|
+
c.filter_sensitive_data('<TWITTER_CONSUMER_KEY>') { twitter_credentials[:consumer_key] }
|
31
|
+
c.filter_sensitive_data('<TWITTER_OAUTH_TOKEN>') { twitter_credentials[:oauth_token] }
|
14
32
|
end
|
15
33
|
|
16
34
|
RSpec.configure do |c|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: engagement
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Guterl
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - '>='
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: twitter
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
139
153
|
description: A ruby gem for measuring the engagement of URLs on various social sites.
|
140
154
|
email:
|
141
155
|
- michael@diminishing.org
|
@@ -155,6 +169,7 @@ files:
|
|
155
169
|
- lib/engagement/comment_counter/hacker_news.rb
|
156
170
|
- lib/engagement/comment_counter/reddit.rb
|
157
171
|
- lib/engagement/comment_counter/threaded.rb
|
172
|
+
- lib/engagement/comment_counter/twitter.rb
|
158
173
|
- lib/engagement/version.rb
|
159
174
|
- spec/cassettes/Engagement_CommentCounter_Disqus/when_we_don_t_own_the_url/returns_zero_when_we_don_t_own_the_url.yml
|
160
175
|
- spec/cassettes/Engagement_CommentCounter_Disqus/when_we_own_the_url/returns_the_number_of_comments_for_the_given_url.yml
|
@@ -162,9 +177,11 @@ files:
|
|
162
177
|
- spec/cassettes/Engagement_CommentCounter_Reddit/with_a_single_listing_returned/.yml
|
163
178
|
- spec/cassettes/Engagement_CommentCounter_Reddit/with_multiple_listings_returned/.yml
|
164
179
|
- spec/cassettes/Engagement_CommentCounter_Reddit/with_no_results/.yml
|
180
|
+
- spec/cassettes/Engagement_CommentCounter_Twitter/returns_the_number_of_comments_for_the_given_url.yml
|
165
181
|
- spec/engagement/comment_counter/disqus_spec.rb
|
166
182
|
- spec/engagement/comment_counter/hacker_news_spec.rb
|
167
183
|
- spec/engagement/comment_counter/reddit_spec.rb
|
184
|
+
- spec/engagement/comment_counter/twitter_spec.rb
|
168
185
|
- spec/engagement/comment_counter_spec.rb
|
169
186
|
- spec/engagement/threaded_comment_counter_spec.rb
|
170
187
|
- spec/spec_helper.rb
|
@@ -188,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
205
|
version: '0'
|
189
206
|
requirements: []
|
190
207
|
rubyforge_project:
|
191
|
-
rubygems_version: 2.0.
|
208
|
+
rubygems_version: 2.0.6
|
192
209
|
signing_key:
|
193
210
|
specification_version: 4
|
194
211
|
summary: Get comment counts from Reddit, HackerNews, and Disqus.
|
@@ -199,9 +216,11 @@ test_files:
|
|
199
216
|
- spec/cassettes/Engagement_CommentCounter_Reddit/with_a_single_listing_returned/.yml
|
200
217
|
- spec/cassettes/Engagement_CommentCounter_Reddit/with_multiple_listings_returned/.yml
|
201
218
|
- spec/cassettes/Engagement_CommentCounter_Reddit/with_no_results/.yml
|
219
|
+
- spec/cassettes/Engagement_CommentCounter_Twitter/returns_the_number_of_comments_for_the_given_url.yml
|
202
220
|
- spec/engagement/comment_counter/disqus_spec.rb
|
203
221
|
- spec/engagement/comment_counter/hacker_news_spec.rb
|
204
222
|
- spec/engagement/comment_counter/reddit_spec.rb
|
223
|
+
- spec/engagement/comment_counter/twitter_spec.rb
|
205
224
|
- spec/engagement/comment_counter_spec.rb
|
206
225
|
- spec/engagement/threaded_comment_counter_spec.rb
|
207
226
|
- spec/spec_helper.rb
|