popularity 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.rspec +3 -0
  4. data/Gemfile +21 -0
  5. data/Gemfile.lock +126 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.rdoc +92 -0
  8. data/Rakefile +54 -0
  9. data/VERSION +1 -0
  10. data/lib/.DS_Store +0 -0
  11. data/lib/popularity.rb +92 -0
  12. data/lib/popularity/crawler.rb +76 -0
  13. data/lib/popularity/facebook.rb +26 -0
  14. data/lib/popularity/github.rb +28 -0
  15. data/lib/popularity/google_plus.rb +22 -0
  16. data/lib/popularity/medium.rb +33 -0
  17. data/lib/popularity/pinterest.rb +21 -0
  18. data/lib/popularity/reddit_comment.rb +32 -0
  19. data/lib/popularity/reddit_post.rb +47 -0
  20. data/lib/popularity/reddit_share.rb +72 -0
  21. data/lib/popularity/results_container.rb +70 -0
  22. data/lib/popularity/search.rb +79 -0
  23. data/lib/popularity/soundcloud.rb +44 -0
  24. data/lib/popularity/twitter.rb +21 -0
  25. data/popularity.gemspec +124 -0
  26. data/spec/cassettes/facebook.yml +50 -0
  27. data/spec/cassettes/github-valid.yml +105 -0
  28. data/spec/cassettes/google_plus.yml +89 -0
  29. data/spec/cassettes/medium-valid.yml +110 -0
  30. data/spec/cassettes/pinterest.yml +44 -0
  31. data/spec/cassettes/reddit-comment.yml +207 -0
  32. data/spec/cassettes/reddit-post.yml +174 -0
  33. data/spec/cassettes/reddit.yml +183 -0
  34. data/spec/cassettes/result-container-test.yml +97 -0
  35. data/spec/cassettes/search-multi.yml +1211 -0
  36. data/spec/cassettes/search.yml +598 -0
  37. data/spec/cassettes/soundcloud-valid.yml +682 -0
  38. data/spec/cassettes/twitter.yml +64 -0
  39. data/spec/cassettes/unknown-reddit-post.yml +68 -0
  40. data/spec/facebook_spec.rb +23 -0
  41. data/spec/github_spec.rb +39 -0
  42. data/spec/google_plus_spec.rb +27 -0
  43. data/spec/medium_spec.rb +47 -0
  44. data/spec/pinterest_spec.rb +27 -0
  45. data/spec/reddit_comment_spec.rb +60 -0
  46. data/spec/reddit_post_spec.rb +64 -0
  47. data/spec/reddit_spec.rb +89 -0
  48. data/spec/results_container_spec.rb +61 -0
  49. data/spec/search_spec.rb +79 -0
  50. data/spec/soundcloud_spec.rb +66 -0
  51. data/spec/spec_helper.rb +95 -0
  52. data/spec/twitter_spec.rb +19 -0
  53. data/test/facebook_test.rb +28 -0
  54. data/test/fixtures/vcr_cassettes/facebook.yml +50 -0
  55. data/test/fixtures/vcr_cassettes/google.yml +425 -0
  56. data/test/helper.rb +34 -0
  57. data/test/test_non_specific.rb +27 -0
  58. data/test/test_twitter.rb +28 -0
  59. metadata +242 -0
@@ -0,0 +1,34 @@
1
+ require 'simplecov'
2
+
3
+ module SimpleCov::Configuration
4
+ def clean_filters
5
+ @filters = []
6
+ end
7
+ end
8
+
9
+ SimpleCov.configure do
10
+ clean_filters
11
+ load_adapter 'test_frameworks'
12
+ end
13
+
14
+ ENV["COVERAGE"] && SimpleCov.start do
15
+ add_filter "/.rvm/"
16
+ end
17
+ require 'rubygems'
18
+ require 'bundler'
19
+ begin
20
+ Bundler.setup(:default, :development)
21
+ rescue Bundler::BundlerError => e
22
+ $stderr.puts e.message
23
+ $stderr.puts "Run `bundle install` to install missing gems"
24
+ exit e.status_code
25
+ end
26
+ require 'minitest/autorun'
27
+ require 'shoulda'
28
+ require 'webmock'
29
+ require 'vcr'
30
+
31
+
32
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
33
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
34
+ require 'popularity'
@@ -0,0 +1,27 @@
1
+ require 'helper'
2
+
3
+ VCR.configure do |config|
4
+ config.cassette_library_dir = "test/fixtures/vcr_cassettes"
5
+ config.hook_into :webmock
6
+ end
7
+
8
+ class NonSpecificUrlTest < Minitest::Test
9
+ def setup
10
+
11
+ end
12
+
13
+ def test_total
14
+ VCR.use_cassette("google") do
15
+ p = Popularity.search('http://google.com')
16
+ assert_match 23405566, p.total
17
+ end
18
+ end
19
+
20
+ def test_search_info
21
+ VCR.use_cassette("google") do
22
+ p = Popularity.search('http://google.com')
23
+ assert_match 23405566, p.total
24
+ end
25
+ end
26
+ end
27
+
@@ -0,0 +1,28 @@
1
+ require 'helper'
2
+
3
+ class FacebookTest < Minitest::Test
4
+ def test_total
5
+ VCR.use_cassette("facebook") do
6
+ @p = Popularity::Facebook.new('http://google.com')
7
+
8
+ assert_equal (@p.shares + @p.comments), @p.total
9
+ end
10
+ end
11
+
12
+ def test_comments
13
+ VCR.use_cassette("facebook") do
14
+ @p = Popularity::Facebook.new('http://google.com')
15
+
16
+ assert_equal 10121, @p.comments
17
+ end
18
+ end
19
+
20
+ def test_shares
21
+ VCR.use_cassette("facebook") do
22
+ @p = Popularity::Facebook.new('http://google.com')
23
+
24
+ assert_equal 12081903, @p.shares
25
+ end
26
+ end
27
+ end
28
+
metadata ADDED
@@ -0,0 +1,242 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: popularity
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jeff Keen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-09 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: open_uri_redirections
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.8'
41
+ - !ruby/object:Gem::Dependency
42
+ name: unirest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.10'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: shoulda
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rdoc
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.12'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.12'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: jeweler
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: awesome_print
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.6'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.6'
153
+ description: ''
154
+ email: jeff@keen.me
155
+ executables: []
156
+ extensions: []
157
+ extra_rdoc_files:
158
+ - LICENSE.txt
159
+ - README.rdoc
160
+ files:
161
+ - ".document"
162
+ - ".rspec"
163
+ - Gemfile
164
+ - Gemfile.lock
165
+ - LICENSE.txt
166
+ - README.rdoc
167
+ - Rakefile
168
+ - VERSION
169
+ - lib/.DS_Store
170
+ - lib/popularity.rb
171
+ - lib/popularity/crawler.rb
172
+ - lib/popularity/facebook.rb
173
+ - lib/popularity/github.rb
174
+ - lib/popularity/google_plus.rb
175
+ - lib/popularity/medium.rb
176
+ - lib/popularity/pinterest.rb
177
+ - lib/popularity/reddit_comment.rb
178
+ - lib/popularity/reddit_post.rb
179
+ - lib/popularity/reddit_share.rb
180
+ - lib/popularity/results_container.rb
181
+ - lib/popularity/search.rb
182
+ - lib/popularity/soundcloud.rb
183
+ - lib/popularity/twitter.rb
184
+ - popularity.gemspec
185
+ - spec/cassettes/facebook.yml
186
+ - spec/cassettes/github-valid.yml
187
+ - spec/cassettes/google_plus.yml
188
+ - spec/cassettes/medium-valid.yml
189
+ - spec/cassettes/pinterest.yml
190
+ - spec/cassettes/reddit-comment.yml
191
+ - spec/cassettes/reddit-post.yml
192
+ - spec/cassettes/reddit.yml
193
+ - spec/cassettes/result-container-test.yml
194
+ - spec/cassettes/search-multi.yml
195
+ - spec/cassettes/search.yml
196
+ - spec/cassettes/soundcloud-valid.yml
197
+ - spec/cassettes/twitter.yml
198
+ - spec/cassettes/unknown-reddit-post.yml
199
+ - spec/facebook_spec.rb
200
+ - spec/github_spec.rb
201
+ - spec/google_plus_spec.rb
202
+ - spec/medium_spec.rb
203
+ - spec/pinterest_spec.rb
204
+ - spec/reddit_comment_spec.rb
205
+ - spec/reddit_post_spec.rb
206
+ - spec/reddit_spec.rb
207
+ - spec/results_container_spec.rb
208
+ - spec/search_spec.rb
209
+ - spec/soundcloud_spec.rb
210
+ - spec/spec_helper.rb
211
+ - spec/twitter_spec.rb
212
+ - test/facebook_test.rb
213
+ - test/fixtures/vcr_cassettes/facebook.yml
214
+ - test/fixtures/vcr_cassettes/google.yml
215
+ - test/helper.rb
216
+ - test/test_non_specific.rb
217
+ - test/test_twitter.rb
218
+ homepage: http://github.com/jkeen/popularity
219
+ licenses:
220
+ - MIT
221
+ metadata: {}
222
+ post_install_message:
223
+ rdoc_options: []
224
+ require_paths:
225
+ - lib
226
+ required_ruby_version: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ required_rubygems_version: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ version: '0'
236
+ requirements: []
237
+ rubyforge_project:
238
+ rubygems_version: 2.2.2
239
+ signing_key:
240
+ specification_version: 4
241
+ summary: Popularity searches social networks for urls and returns the metrics.L
242
+ test_files: []