sharer 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -14,7 +14,7 @@ gem "sharer"
14
14
  Sharer's Git repo is available on GitHub, which can be browsed at:
15
15
 
16
16
  ```ruby
17
- http://github.com/14113/Sharer
17
+ http://github.com/14113/sharer
18
18
  ```
19
19
 
20
20
  and cloned with:
@@ -1,3 +1,3 @@
1
1
  module Sharer
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
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["facebook"] = facebook_likes
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["google"] = self.twitter_button
63
+ data["twitter_tweets"] = twitter_button
51
64
  end
52
65
 
53
66
  threads << Thread.new do
54
- data["twitter"] = self.linked_in_share
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
- (@url =~ URI::regexp).nil?
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(nil)
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
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-22 00:00:00.000000000Z
12
+ date: 2012-04-28 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70151408387920 !ruby/object:Gem::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: *70151408387920
24
+ version_requirements: *70216441067060
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70151408387400 !ruby/object:Gem::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: *70151408387400
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: 699410974308642925
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: 699410974308642925
80
+ hash: -1362207585983839103
81
81
  requirements: []
82
82
  rubyforge_project: sharer
83
83
  rubygems_version: 1.8.10