rsocial 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a6ceb4c05880310a6785c3294323410b5d035814
4
- data.tar.gz: 5edf7be3e7c480080241482c4256cabd96c67ccd
3
+ metadata.gz: fb0ca6b81936691af1ffc1e2f334ca29fdf0798a
4
+ data.tar.gz: efd1216219679676c8328bf8fe9b9a641f761e0d
5
5
  SHA512:
6
- metadata.gz: 181e51d71f9c600c15bb1f0b60a47e064201ce113bedcb4eaf0bfd6f5d43fdacdf34c50d0f2e3f970dffb4ce2897bf42a2de46c48fccf7322737bfb96b4a6832
7
- data.tar.gz: 2a1ddb118bfd863eab6428876a6c1c8a459958c7a6cca14a853945d02c477c6a0a70a64ed2eda5bdae9595c780a53e28636913d9b39da927517ef4acc30a5fa5
6
+ metadata.gz: 52aa382675120e078e5769eba733502b4ae50804f5bc8aec779721699742fd275f264791323648ca3be784c45209b15906e99a5c98e8f55d44f3a446754721d9
7
+ data.tar.gz: f7af2227b1c7e0619eff6f055216670b818974df5c8fc44235fd62941a1cb15e664fb812061fe5f5d42fa836cec5c433f8c7dcf234f968d008f69cb4ddbf91e8
data/Gemfile CHANGED
@@ -1,11 +1,3 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- gem 'headless'
4
- gem 'selenium-webdriver'
5
-
6
- group :development do
7
- gem "rdoc"
8
- gem "rake"
9
- gem "rspec"
10
- gem "bundler"
11
- end
3
+ gemspec
@@ -0,0 +1,9 @@
1
+ require 'rspec/core/rake_task'
2
+ require 'bundler/gem_tasks'
3
+
4
+ # Default directory to look in is `/specs`
5
+ # Run with `rake spec`
6
+ RSpec::Core::RakeTask.new(:spec) do |task|
7
+ end
8
+
9
+ task :default => :spec
@@ -1,3 +1,4 @@
1
+ require 'rsocial/utils'
1
2
  require 'rsocial/driver'
2
3
  require 'rsocial/runner'
3
4
  require 'rsocial/instagram'
@@ -10,5 +11,5 @@ require 'rsocial/youtube'
10
11
  require 'rsocial/youtube/client'
11
12
 
12
13
  module RSocial
13
- VERSION = '0.3.0'
14
+ VERSION = '0.4.0'
14
15
  end
@@ -1,7 +1,7 @@
1
1
  require 'headless'
2
2
 
3
3
  module RSocial
4
- class Runner
4
+ class Runner < Utils
5
5
  def initialize(options={})
6
6
  @options = options
7
7
  end
@@ -41,7 +41,7 @@ module RSocial
41
41
 
42
42
  def execute(script)
43
43
  begin
44
- Driver.instance.firefox.execute_script(script)
44
+ h2n(Driver.instance.firefox.execute_script(script))
45
45
  rescue Selenium::WebDriver::Error::JavascriptError
46
46
  "Javascript Error"
47
47
  rescue Selenium::WebDriver::Error::UnknownError
@@ -0,0 +1,18 @@
1
+ require 'headless'
2
+
3
+ module RSocial
4
+ class Utils
5
+ def human_to_number(human)
6
+ result = human.gsub(/likes/,"")
7
+ if result.upcase.include? "K"
8
+ result = result.upcase.gsub("K","").gsub(/\D/,"").to_f*1000
9
+ elsif result.upcase.include? "M"
10
+ result = result.upcase.gsub("M","").gsub(/\D/,"").to_f*1000000
11
+ else
12
+ result = result.gsub(/\D/,"")
13
+ end
14
+ result.to_i
15
+ end
16
+ alias_method :h2n, :human_to_number
17
+ end
18
+ end
@@ -4,8 +4,14 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'rsocial'
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.add_development_dependency('rake', '~> 0.9.2.2')
8
- s.add_development_dependency('rspec', '~> 2.4')
7
+ s.add_development_dependency "rake"
8
+ s.add_development_dependency "rspec"
9
+ s.add_development_dependency "rspec-nc"
10
+ s.add_development_dependency "guard"
11
+ s.add_development_dependency "guard-rspec"
12
+ s.add_development_dependency "pry"
13
+ s.add_development_dependency "pry-remote"
14
+ s.add_development_dependency "pry-nav"
9
15
  s.add_runtime_dependency('selenium-webdriver', '~> 2.53', '>= 2.53.4')
10
16
  s.add_runtime_dependency('headless', '~> 2.3', '>= 2.3.0')
11
17
  s.description = "A ruby social media stat crawler"
@@ -0,0 +1,16 @@
1
+ describe RSocial::Facebook::Client::Pages do
2
+ describe 'Facebook.client.page()' do
3
+
4
+ before(:each) do
5
+ @client = RSocial::Facebook.client({})
6
+ @user = @client.page("RyanBingham")
7
+ end
8
+
9
+ #{:followers=>"149,207 likes", :handle=>"RyanBingham"}
10
+ it 'should find page stats' do
11
+ expect(@user[:followers]).to be_an Integer
12
+ expect(@user[:handle]).to be_an String
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,18 @@
1
+ describe RSocial::Instagram::Client::Users do
2
+ describe 'Instagram.client.user()' do
3
+
4
+ before(:each) do
5
+ @client = RSocial::Instagram.client({})
6
+ @user = @client.user("ryanbingham_official")
7
+ end
8
+
9
+ #{:posts=>"1,458", :followers=>"43.8k", :following=>"171", :handle=>"ryanbingham_official"}
10
+ it 'should find user stats' do
11
+ expect(@user[:posts]).to be_an Integer
12
+ expect(@user[:following]).to be_an Integer
13
+ expect(@user[:followers]).to be_an Integer
14
+ expect(@user[:handle]).to be_an String
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,19 @@
1
+ describe RSocial::Twitter::Client::Users do
2
+ describe 'Twitter.client.user()' do
3
+
4
+ before(:each) do
5
+ @client = RSocial::Twitter.client({})
6
+ @user = @client.user("RyanBingham")
7
+ end
8
+
9
+ #{:tweets=>"5,668", :following=>"633", :followers=>"39.8K", :likes=>"14.8K", :handle=>"RyanBingham"}
10
+ it 'should find user stats' do
11
+ expect(@user[:tweets]).to be_an Integer
12
+ expect(@user[:following]).to be_an Integer
13
+ expect(@user[:followers]).to be_an Integer
14
+ expect(@user[:likes]).to be_an Integer
15
+ expect(@user[:handle]).to be_an String
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ describe RSocial::Twitter do
2
+ describe 'Twiter.client' do
3
+
4
+ before(:each) do
5
+ @client = RSocial::Twitter.client({})
6
+ end
7
+
8
+ it 'should handle client' do
9
+ expect(@client.class.to_s).to eq "RSocial::Twitter::Client"
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ describe RSocial::Youtube::Client::Channels do
2
+ describe 'Youtube.client.channel()' do
3
+
4
+ before(:each) do
5
+ @client = RSocial::Youtube.client({})
6
+ @channel = @client.channel("UCXScCWtV6cFkiIMRioSWMEA")
7
+ end
8
+
9
+ #{:subscribers=>"5,016", :channel_id=>"UCXScCWtV6cFkiIMRioSWMEA"}
10
+ it 'should find user stats' do
11
+ expect(@channel[:subscribers]).to be_an Integer
12
+ expect(@channel[:channel_id]).to be_an String
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ describe RSocial::Youtube::Client::Users do
2
+ describe 'Youtube.client.user()' do
3
+
4
+ before(:each) do
5
+ @client = RSocial::Youtube.client({})
6
+ @user = @client.user("ryanbingham")
7
+ end
8
+
9
+ #{:subscribers=>"11,131", :handle=>"ryanbingham"}
10
+ it 'should find user stats' do
11
+ expect(@user[:subscribers]).to be_an Integer
12
+ expect(@user[:handle]).to be_an String
13
+ end
14
+
15
+ end
16
+ end
@@ -0,0 +1,2 @@
1
+ describe RSocial do
2
+ end
metadata CHANGED
@@ -1,43 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsocial
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Richards
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-08-26 00:00:00.000000000 Z
11
+ date: 2016-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.2.2
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.9.2.2
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '2.4'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-nc
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
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: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-remote
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry-nav
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
39
123
  - !ruby/object:Gem::Version
40
- version: '2.4'
124
+ version: '0'
41
125
  - !ruby/object:Gem::Dependency
42
126
  name: selenium-webdriver
43
127
  requirement: !ruby/object:Gem::Requirement
@@ -87,6 +171,7 @@ files:
87
171
  - ".gitignore"
88
172
  - Gemfile
89
173
  - README.md
174
+ - Rakefile
90
175
  - lib/rsocial.rb
91
176
  - lib/rsocial/driver.rb
92
177
  - lib/rsocial/facebook.rb
@@ -99,11 +184,19 @@ files:
99
184
  - lib/rsocial/twitter.rb
100
185
  - lib/rsocial/twitter/client.rb
101
186
  - lib/rsocial/twitter/client/users.rb
187
+ - lib/rsocial/utils.rb
102
188
  - lib/rsocial/youtube.rb
103
189
  - lib/rsocial/youtube/client.rb
104
190
  - lib/rsocial/youtube/client/channels.rb
105
191
  - lib/rsocial/youtube/client/users.rb
106
192
  - rsocial.gemspec
193
+ - spec/rsocial/facebook/client/pages_spec.rb
194
+ - spec/rsocial/instagram/client/users_spec.rb
195
+ - spec/rsocial/twitter/client/users_spec.rb
196
+ - spec/rsocial/twitter_spec.rb
197
+ - spec/rsocial/youtube/client/channels_spec.rb
198
+ - spec/rsocial/youtube/client/users_spec.rb
199
+ - spec/rsocial_spec.rb
107
200
  homepage: http://www.github.com/advectus/rsocial
108
201
  licenses:
109
202
  - MIT
@@ -128,4 +221,11 @@ rubygems_version: 2.5.1
128
221
  signing_key:
129
222
  specification_version: 4
130
223
  summary: A ruby social media stat crawler
131
- test_files: []
224
+ test_files:
225
+ - spec/rsocial/facebook/client/pages_spec.rb
226
+ - spec/rsocial/instagram/client/users_spec.rb
227
+ - spec/rsocial/twitter/client/users_spec.rb
228
+ - spec/rsocial/twitter_spec.rb
229
+ - spec/rsocial/youtube/client/channels_spec.rb
230
+ - spec/rsocial/youtube/client/users_spec.rb
231
+ - spec/rsocial_spec.rb