rsocial 0.3.0 → 0.4.0

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.
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