patient_zero 0.5.4 → 0.5.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.
- checksums.yaml +4 -4
- data/lib/patient_zero/analytics/base.rb +5 -1
- data/lib/patient_zero/analytics/tumblr.rb +25 -0
- data/lib/patient_zero/analytics.rb +5 -1
- data/lib/patient_zero/message.rb +2 -0
- data/lib/patient_zero/version.rb +1 -1
- data/spec/patient_zero/analytics/base_spec.rb +7 -1
- data/spec/patient_zero/analytics/tumblr_spec.rb +47 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03269ba3e5c9a827db9b792e661a832ae788e935
|
4
|
+
data.tar.gz: b132a2af9830d3916c4d6fe1bad35b226387fdbf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ca2d5e5f070ac5055f6bfc71d0e0cb35a0da384a2bb67b5bceb9d055c1ddf2d0f69ddf76e754969e6dc01c4e948c8cea006a353df691341c7b9fd8a67be93ef
|
7
|
+
data.tar.gz: 8eeed15f2a9325b4db810528e896646e1fbe7d064d43728d2accb6238d39e5308ee0458a2580d2457ef504e3c0b9a7aa49ef9f0284fca9c1a464be58f9077423
|
@@ -21,7 +21,11 @@ module PatientZero
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def messages
|
24
|
-
analytical_data['messages'].map { |message| Message.for_platform message['platform'], message }
|
24
|
+
analytical_data['messages'].map { |message| Message.for_platform message['platform'], message }.compact
|
25
|
+
end
|
26
|
+
|
27
|
+
def total_posts
|
28
|
+
messages.count
|
25
29
|
end
|
26
30
|
|
27
31
|
private
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module PatientZero
|
2
|
+
module Analytics
|
3
|
+
class Tumblr < Base
|
4
|
+
def messages
|
5
|
+
[]
|
6
|
+
end
|
7
|
+
|
8
|
+
def total_posts
|
9
|
+
analytical_data.fetch('total_posts').to_i
|
10
|
+
end
|
11
|
+
|
12
|
+
def engagements
|
13
|
+
likes
|
14
|
+
end
|
15
|
+
|
16
|
+
def followers
|
17
|
+
analytical_data.fetch('total_followers').to_i
|
18
|
+
end
|
19
|
+
|
20
|
+
def likes
|
21
|
+
analytical_data.fetch('total_likes').to_i
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -2,15 +2,19 @@ require 'patient_zero/analytics/base'
|
|
2
2
|
require 'patient_zero/analytics/twitter'
|
3
3
|
require 'patient_zero/analytics/facebook'
|
4
4
|
require 'patient_zero/analytics/instagram'
|
5
|
+
require 'patient_zero/analytics/tumblr'
|
5
6
|
|
6
7
|
module PatientZero
|
7
8
|
module Analytics
|
8
9
|
SOURCE_TYPES = {'twitter' => Twitter,
|
9
10
|
'facebook' => Facebook,
|
10
|
-
'instagram' => Instagram
|
11
|
+
'instagram' => Instagram,
|
12
|
+
'tumblr' => Tumblr}
|
11
13
|
|
12
14
|
def self.for_platform platform, params={}
|
13
15
|
SOURCE_TYPES[platform].new params
|
16
|
+
rescue NoMethodError
|
17
|
+
nil
|
14
18
|
end
|
15
19
|
end
|
16
20
|
end
|
data/lib/patient_zero/message.rb
CHANGED
data/lib/patient_zero/version.rb
CHANGED
@@ -6,7 +6,7 @@ module PatientZero
|
|
6
6
|
let(:source_id) { "12345##{platform}#1234567890" }
|
7
7
|
let(:name) { 'account_name' }
|
8
8
|
let(:platform) { 'account_type' }
|
9
|
-
let(:messages) { [ { 'platform' => 'FB' } ] }
|
9
|
+
let(:messages) { [ { 'platform' => 'FB' }, { 'platform' => '??' } ] }
|
10
10
|
let(:token) { 'token-shmoken' }
|
11
11
|
let(:analytical_data) { { 'stats' => [ { 'id' => source_id, 'platform' => platform, 'name' => name, 'messages' => messages } ] } }
|
12
12
|
subject(:analytics_base) { Base.new token: token, source_id: source_id }
|
@@ -49,6 +49,12 @@ module PatientZero
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
52
|
+
|
53
|
+
describe '#total_posts' do
|
54
|
+
it 'returns the count of messages' do
|
55
|
+
expect(analytics_base.total_posts).to be 1
|
56
|
+
end
|
57
|
+
end
|
52
58
|
end
|
53
59
|
end
|
54
60
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module PatientZero
|
4
|
+
module Analytics
|
5
|
+
describe Tumblr do
|
6
|
+
let(:source_id) { "12345##{platform}#1234567890" }
|
7
|
+
let(:platform) { 'tumblr' }
|
8
|
+
let(:token) { 'token-shmoken' }
|
9
|
+
let(:followers) { '26' }
|
10
|
+
let(:likes) { '89' }
|
11
|
+
let(:posts) { '45' }
|
12
|
+
let(:analytical_data) { { 'total_posts'=>posts, 'total_followers'=>followers, 'total_likes'=>likes } }
|
13
|
+
let(:tumblr_analytics) { Tumblr.new token: token, source_id: source_id }
|
14
|
+
before{ allow(tumblr_analytics).to receive(:analytical_data).and_return analytical_data }
|
15
|
+
|
16
|
+
describe '#messages' do
|
17
|
+
it 'returns an empty array' do
|
18
|
+
expect(tumblr_analytics.messages).to eq []
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#total_posts' do
|
23
|
+
it 'returns the number of posts from the analytical_data hash' do
|
24
|
+
expect(tumblr_analytics.total_posts).to eq posts.to_i
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#engagements' do
|
29
|
+
it 'returns the sum of likes from the analytical_data hash' do
|
30
|
+
expect(tumblr_analytics.engagements).to eq likes.to_i
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe '#followers' do
|
35
|
+
it 'returns the number of followers from the analytical_data hash' do
|
36
|
+
expect(tumblr_analytics.followers).to eq followers.to_i
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '#likes' do
|
41
|
+
it 'returns the number of likes from the analytical_data hash' do
|
42
|
+
expect(tumblr_analytics.likes).to eq likes.to_i
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: patient_zero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Zaninovich
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-05-
|
12
|
+
date: 2015-05-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -128,6 +128,7 @@ files:
|
|
128
128
|
- lib/patient_zero/analytics/base.rb
|
129
129
|
- lib/patient_zero/analytics/facebook.rb
|
130
130
|
- lib/patient_zero/analytics/instagram.rb
|
131
|
+
- lib/patient_zero/analytics/tumblr.rb
|
131
132
|
- lib/patient_zero/analytics/twitter.rb
|
132
133
|
- lib/patient_zero/authorization.rb
|
133
134
|
- lib/patient_zero/client.rb
|
@@ -148,6 +149,7 @@ files:
|
|
148
149
|
- spec/patient_zero/analytics/base_spec.rb
|
149
150
|
- spec/patient_zero/analytics/facebook_spec.rb
|
150
151
|
- spec/patient_zero/analytics/instagram_spec.rb
|
152
|
+
- spec/patient_zero/analytics/tumblr_spec.rb
|
151
153
|
- spec/patient_zero/analytics/twitter_spec.rb
|
152
154
|
- spec/patient_zero/analytics_spec.rb
|
153
155
|
- spec/patient_zero/authorization_spec.rb
|
@@ -189,6 +191,7 @@ test_files:
|
|
189
191
|
- spec/patient_zero/analytics/base_spec.rb
|
190
192
|
- spec/patient_zero/analytics/facebook_spec.rb
|
191
193
|
- spec/patient_zero/analytics/instagram_spec.rb
|
194
|
+
- spec/patient_zero/analytics/tumblr_spec.rb
|
192
195
|
- spec/patient_zero/analytics/twitter_spec.rb
|
193
196
|
- spec/patient_zero/analytics_spec.rb
|
194
197
|
- spec/patient_zero/authorization_spec.rb
|