share_counts 0.0.4 → 0.0.5
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/README.rdoc +5 -0
- data/lib/share_counts/common.rb +2 -2
- data/lib/share_counts/reddit.rb +19 -0
- data/lib/share_counts.rb +6 -4
- data/share_counts.gemspec +1 -1
- metadata +15 -5
data/README.rdoc
CHANGED
data/lib/share_counts/common.rb
CHANGED
@@ -51,7 +51,7 @@ module ShareCounts
|
|
51
51
|
attempts = 1
|
52
52
|
|
53
53
|
begin
|
54
|
-
timeout(
|
54
|
+
timeout(3) do
|
55
55
|
url = args.shift
|
56
56
|
params = args.inject({}) { |r, c| r.merge! c }
|
57
57
|
response = RestClient.get url, { :params => params }
|
@@ -97,7 +97,7 @@ module ShareCounts
|
|
97
97
|
# so to extract the share count.
|
98
98
|
#
|
99
99
|
#
|
100
|
-
def
|
100
|
+
def extract_info *args
|
101
101
|
json = args.shift
|
102
102
|
result = args.first.to_a.flatten.last.split("/").inject( json.is_a?(Array) ? json.first : json ) {
|
103
103
|
|r, c| r[c].is_a?(Array) ? r[c].first : r[c]
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module ShareCounts
|
2
|
+
module Reddit
|
3
|
+
extend Common
|
4
|
+
extend Caching
|
5
|
+
|
6
|
+
def self.info_for url
|
7
|
+
try("reddit-details", url) {
|
8
|
+
data = extract_info from_json( "http://www.reddit.com/api/info.json", :url => url ), :selector => "data/children/data"
|
9
|
+
|
10
|
+
data.reject{ |key, value|
|
11
|
+
%w( media_embed levenshtein selftext_html selftext likes saved clicked media over_18
|
12
|
+
hidden thumbnail subreddit_id is_self created subreddit_id created_utc num_comments
|
13
|
+
domain subreddit id author downs name url title ups
|
14
|
+
).include? key
|
15
|
+
}
|
16
|
+
}
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/share_counts.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
|
-
%w(rest_client json nokogiri redis timeout).each{|
|
2
|
-
|
3
|
-
require File.expand_path(File.dirname(__FILE__) + "/share_counts/common")
|
4
|
-
require File.expand_path(File.dirname(__FILE__) + "/share_counts/caching")
|
1
|
+
%w( rest_client json nokogiri redis timeout ).each{ |lib| require lib }
|
2
|
+
%w( caching common reddit ).each{ |file| load File.expand_path( File.join( File.dirname( __FILE__ ), "share_counts", "#{file}.rb" ) ) } # TODO: replace load with require
|
5
3
|
|
6
4
|
module ShareCounts
|
7
5
|
|
8
6
|
extend Common
|
9
7
|
extend Caching
|
10
8
|
|
9
|
+
def self.extract_count *args
|
10
|
+
extract_info *args
|
11
|
+
end
|
12
|
+
|
11
13
|
def self.supported_networks
|
12
14
|
%w(reddit digg twitter facebook fblike linkedin googlebuzz stumbleupon)
|
13
15
|
end
|
data/share_counts.gemspec
CHANGED
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: share_counts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 21
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
9
|
+
- 5
|
10
|
+
version: 0.0.5
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Vito Botta
|
@@ -14,7 +15,7 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2011-
|
18
|
+
date: 2011-02-06 00:00:00 +00:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
@@ -25,6 +26,7 @@ dependencies:
|
|
25
26
|
requirements:
|
26
27
|
- - ">="
|
27
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
28
30
|
segments:
|
29
31
|
- 0
|
30
32
|
version: "0"
|
@@ -38,6 +40,7 @@ dependencies:
|
|
38
40
|
requirements:
|
39
41
|
- - ">="
|
40
42
|
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
41
44
|
segments:
|
42
45
|
- 0
|
43
46
|
version: "0"
|
@@ -51,6 +54,7 @@ dependencies:
|
|
51
54
|
requirements:
|
52
55
|
- - ">="
|
53
56
|
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
54
58
|
segments:
|
55
59
|
- 0
|
56
60
|
version: "0"
|
@@ -64,6 +68,7 @@ dependencies:
|
|
64
68
|
requirements:
|
65
69
|
- - ">="
|
66
70
|
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
67
72
|
segments:
|
68
73
|
- 0
|
69
74
|
version: "0"
|
@@ -77,6 +82,7 @@ dependencies:
|
|
77
82
|
requirements:
|
78
83
|
- - ">="
|
79
84
|
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
80
86
|
segments:
|
81
87
|
- 0
|
82
88
|
version: "0"
|
@@ -90,6 +96,7 @@ dependencies:
|
|
90
96
|
requirements:
|
91
97
|
- - ">="
|
92
98
|
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
93
100
|
segments:
|
94
101
|
- 0
|
95
102
|
version: "0"
|
@@ -113,6 +120,7 @@ files:
|
|
113
120
|
- lib/share_counts.rb
|
114
121
|
- lib/share_counts/caching.rb
|
115
122
|
- lib/share_counts/common.rb
|
123
|
+
- lib/share_counts/reddit.rb
|
116
124
|
- share_counts.gemspec
|
117
125
|
- spec/share_count_spec.rb
|
118
126
|
- spec/test_helper.rb
|
@@ -130,6 +138,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
130
138
|
requirements:
|
131
139
|
- - ">="
|
132
140
|
- !ruby/object:Gem::Version
|
141
|
+
hash: 3
|
133
142
|
segments:
|
134
143
|
- 0
|
135
144
|
version: "0"
|
@@ -138,13 +147,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
147
|
requirements:
|
139
148
|
- - ">="
|
140
149
|
- !ruby/object:Gem::Version
|
150
|
+
hash: 3
|
141
151
|
segments:
|
142
152
|
- 0
|
143
153
|
version: "0"
|
144
154
|
requirements: []
|
145
155
|
|
146
156
|
rubyforge_project: share_counts
|
147
|
-
rubygems_version: 1.
|
157
|
+
rubygems_version: 1.4.1
|
148
158
|
signing_key:
|
149
159
|
specification_version: 3
|
150
160
|
summary: The easiest way to check how many times a URL has been shared on Reddit, Digg, Twitter, Facebook, LinkedIn, GoogleBuzz and StumbleUpon!
|