sharer 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.md +1 -1
- data/lib/sharer/version.rb +1 -1
- data/lib/sharer.rb +28 -4
- data/spec/sharer_spec.rb +6 -1
- metadata +8 -8
data/README.md
CHANGED
data/lib/sharer/version.rb
CHANGED
data/lib/sharer.rb
CHANGED
@@ -10,6 +10,7 @@ module Sharer
|
|
10
10
|
|
11
11
|
def initialize url
|
12
12
|
@url = url
|
13
|
+
add_url_protocol
|
13
14
|
end
|
14
15
|
|
15
16
|
# Find the number of likes by url
|
@@ -21,6 +22,14 @@ module Sharer
|
|
21
22
|
root.elements[1].elements["link_stat/like_count"].text.to_i
|
22
23
|
end
|
23
24
|
|
25
|
+
# Find the number of shares
|
26
|
+
def facebook_shares
|
27
|
+
return nil unless valid_url?
|
28
|
+
path = "http://graph.facebook.com/?id=#{@url}"
|
29
|
+
content = content(path)
|
30
|
+
content(path).match(/\"shares\":([0-9]*),/)[1].to_i
|
31
|
+
end
|
32
|
+
|
24
33
|
# Find the number of tweeter buttons by url
|
25
34
|
def twitter_button
|
26
35
|
return nil unless valid_url?
|
@@ -43,15 +52,19 @@ module Sharer
|
|
43
52
|
threads = []
|
44
53
|
|
45
54
|
threads << Thread.new do
|
46
|
-
data["
|
55
|
+
data["facebook_likes"] = facebook_likes
|
56
|
+
end
|
57
|
+
|
58
|
+
threads << Thread.new do
|
59
|
+
data["facebook_shares"] = facebook_shares
|
47
60
|
end
|
48
61
|
|
49
62
|
threads << Thread.new do
|
50
|
-
data["
|
63
|
+
data["twitter_tweets"] = twitter_button
|
51
64
|
end
|
52
65
|
|
53
66
|
threads << Thread.new do
|
54
|
-
data["
|
67
|
+
data["linked_in_shared"] = linked_in_share
|
55
68
|
end
|
56
69
|
|
57
70
|
threads.each {|t| t.join }
|
@@ -62,7 +75,9 @@ module Sharer
|
|
62
75
|
private
|
63
76
|
# Valid url
|
64
77
|
def valid_url?
|
65
|
-
|
78
|
+
# TODO: Validation url
|
79
|
+
#(@url =~ URI::regexp).nil?
|
80
|
+
true
|
66
81
|
end
|
67
82
|
|
68
83
|
# Content by url
|
@@ -74,5 +89,14 @@ module Sharer
|
|
74
89
|
end
|
75
90
|
end
|
76
91
|
|
92
|
+
def add_url_protocol
|
93
|
+
unless @url[/^www./]
|
94
|
+
@url = 'www.' + @url
|
95
|
+
end
|
96
|
+
unless @url[/^http:\/\//]
|
97
|
+
@url = 'http://' + @url
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
77
101
|
end
|
78
102
|
end
|
data/spec/sharer_spec.rb
CHANGED
@@ -21,13 +21,18 @@ describe Sharer do
|
|
21
21
|
@site.linked_in_share.should > 0
|
22
22
|
end
|
23
23
|
|
24
|
+
it "find count of shareing on facebook" do
|
25
|
+
@site.facebook_shares.should be_a(Integer)
|
26
|
+
@site.facebook_shares.should > 0
|
27
|
+
end
|
28
|
+
|
24
29
|
it "find count of shareing in facebook,twitter and linkedin" do
|
25
30
|
@site.find_all.should be_a(Hash)
|
26
31
|
end
|
27
32
|
|
28
33
|
it "find count of likes on facebook by invalid url" do
|
29
34
|
@site = Sharer::Site.new("ada:example/com")
|
30
|
-
@site.facebook_likes.should eq(
|
35
|
+
@site.facebook_likes.should eq(0)
|
31
36
|
end
|
32
37
|
|
33
38
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sharer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
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: 2012-04-
|
12
|
+
date: 2012-04-28 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &70216441067060 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70216441067060
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &70216441066420 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70216441066420
|
36
36
|
description: If your application needs to count the number of shared, this gem can
|
37
37
|
help you.
|
38
38
|
email:
|
@@ -68,7 +68,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
68
68
|
version: '0'
|
69
69
|
segments:
|
70
70
|
- 0
|
71
|
-
hash:
|
71
|
+
hash: -1362207585983839103
|
72
72
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
@@ -77,7 +77,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
77
|
version: '0'
|
78
78
|
segments:
|
79
79
|
- 0
|
80
|
-
hash:
|
80
|
+
hash: -1362207585983839103
|
81
81
|
requirements: []
|
82
82
|
rubyforge_project: sharer
|
83
83
|
rubygems_version: 1.8.10
|