sensor 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.env.example +1 -0
- data/lib/sensor/actuator/twitter_retrieval.rb +6 -2
- data/lib/sensor/configuration.rb +30 -0
- data/lib/sensor/payload.rb +6 -5
- data/lib/sensor/version.rb +1 -1
- data/lib/sensor.rb +19 -5
- data/spec/sensor/configuration_spec.rb +17 -0
- data/spec/sensor_spec.rb +31 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDBiYmRkOWNkYzAzZTkwZGI3MzAyZjNiYjQxMDQ4YWE1ZjU1ZDA1Zg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NWY0NGQyOGQ3NTVhYzk1YWU2MjJiYTJhNDNjZWQwZTZlNWE3NzhiYQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDhjMTJhMzkwM2QwOTZmNTVjZTFhMjA3ZjMxODBhYTY5MWI3ZDI1ODY5NDMx
|
10
|
+
ODFhOGViMDhjOWE2YjMwYTVhZjVjYjk3ZjdiZjhkZjdjMzI3Nzg3ODZkY2I4
|
11
|
+
MjM0ZDg1MDk1YjZjNjE4NjhhMzVmODkyY2IxZjJiMGVmZTZiZmE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MDhjMTlhZTg2NWRhOGQ2ODZiNTkxZDFhZmQ5ZTk1NWYxNWZjNDZiNDM4Zjhl
|
14
|
+
NWYwYzJlNTIxZmIxMTZlZTUyMjVmMzhlZWYyZTQwY2I3MDliMmUzNDI2YzJl
|
15
|
+
NzFjZTQ5OWQyMjk1ZDExYWVkODk2MDY4MGNhNWFmOWJkNTUyYWY=
|
data/.env.example
CHANGED
@@ -31,18 +31,22 @@ module Sensor
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def tweet_count
|
34
|
-
search = client.search("from
|
34
|
+
search = client.search("from:#{account}",
|
35
35
|
search_options
|
36
36
|
)
|
37
37
|
search.entries.count
|
38
38
|
end
|
39
39
|
|
40
40
|
def mention_count
|
41
|
-
search = client.search("
|
41
|
+
search = client.search("@#{account} -from:#{account}",
|
42
42
|
search_options)
|
43
43
|
search.entries.count
|
44
44
|
end
|
45
45
|
|
46
|
+
def account
|
47
|
+
ENV['TWITTER_ACCOUNT']
|
48
|
+
end
|
49
|
+
|
46
50
|
def client
|
47
51
|
if !@client
|
48
52
|
@client = Twitter::REST::Client.new do |config|
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Sensor
|
2
|
+
class Configuration
|
3
|
+
attr_accessor :actuators
|
4
|
+
|
5
|
+
def initialize(&block)
|
6
|
+
yield(self) if block_given?
|
7
|
+
|
8
|
+
assign_defaults!
|
9
|
+
end
|
10
|
+
|
11
|
+
def append_actuator(actuator_class)
|
12
|
+
@actuators ||= []
|
13
|
+
unless @actuators.include?(actuator_class)
|
14
|
+
@actuators << actuator_class
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
protected
|
19
|
+
def assign_defaults!
|
20
|
+
Sensor.require("analytics_retrieval")
|
21
|
+
Sensor.require("facebook_retrieval")
|
22
|
+
Sensor.require("twitter_retrieval")
|
23
|
+
self.actuators = [
|
24
|
+
Sensor::Actuator::AnalyticsRetrieval,
|
25
|
+
Sensor::Actuator::FacebookRetrieval,
|
26
|
+
Sensor::Actuator::TwitterRetrieval
|
27
|
+
]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/sensor/payload.rb
CHANGED
@@ -17,11 +17,7 @@ module Sensor
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def acquire
|
20
|
-
|
21
|
-
Sensor::Actuator::AnalyticsRetrieval,
|
22
|
-
Sensor::Actuator::TwitterRetrieval,
|
23
|
-
Sensor::Actuator::FacebookRetrieval
|
24
|
-
].each do |actuator|
|
20
|
+
actuator_classes.each do |actuator|
|
25
21
|
@data.merge!(actuator.new(@time_range).acquire)
|
26
22
|
end
|
27
23
|
|
@@ -31,5 +27,10 @@ module Sensor
|
|
31
27
|
def distribute
|
32
28
|
Sensor::OutputDistribution::FlowDock.new(self).distribute
|
33
29
|
end
|
30
|
+
|
31
|
+
protected
|
32
|
+
def actuator_classes
|
33
|
+
Sensor.configuration.actuators
|
34
|
+
end
|
34
35
|
end
|
35
36
|
end
|
data/lib/sensor/version.rb
CHANGED
data/lib/sensor.rb
CHANGED
@@ -1,9 +1,23 @@
|
|
1
|
+
require 'sensor/configuration'
|
2
|
+
|
1
3
|
module Sensor
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
class << self
|
5
|
+
attr_accessor :configuration
|
6
|
+
|
7
|
+
def configure(&block)
|
8
|
+
@configuration = Sensor::Configuration.new(&block)
|
9
|
+
end
|
10
|
+
|
11
|
+
def configuration
|
12
|
+
@configuration ||= Sensor::Configuration.new
|
13
|
+
end
|
14
|
+
|
15
|
+
def require(path)
|
16
|
+
begin
|
17
|
+
super("sensor/actuator/#{path}")
|
18
|
+
rescue LoadError
|
19
|
+
super("sensor/output_distribution/#{path}")
|
20
|
+
end
|
7
21
|
end
|
8
22
|
end
|
9
23
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Sensor::Configuration do
|
4
|
+
let(:config) { Sensor::Configuration.new }
|
5
|
+
let(:actuator) { Sensor::Actuator::TwitterRetrieval }
|
6
|
+
it 'appends actuators' do
|
7
|
+
config.append_actuator(actuator)
|
8
|
+
expect(config.actuators).to include(actuator)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'appends actuators only once' do
|
12
|
+
config.actuators = []
|
13
|
+
2.times { config.append_actuator(actuator) }
|
14
|
+
expect(config.actuators).to include(actuator)
|
15
|
+
expect(config.actuators.size).to eql(1)
|
16
|
+
end
|
17
|
+
end
|
data/spec/sensor_spec.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
Sensor.require("twitter_retrieval")
|
4
|
+
Sensor.require("facebook_retrieval")
|
5
|
+
Sensor.require("flow_dock")
|
6
|
+
|
7
|
+
describe Sensor do
|
8
|
+
before do
|
9
|
+
@old_config = Sensor.configuration
|
10
|
+
end
|
11
|
+
|
12
|
+
after do
|
13
|
+
Sensor.configuration = @old_config
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'allows me to set desired actuators' do
|
17
|
+
Sensor.configure do |config|
|
18
|
+
config.actuators = [
|
19
|
+
Sensor::Actuator::TwitterRetrieval,
|
20
|
+
Sensor::Actuator::FacebookRetrieval
|
21
|
+
]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'defaults to the whole collection' do
|
26
|
+
Sensor.configure do |config|
|
27
|
+
end
|
28
|
+
|
29
|
+
expect(Sensor.configuration.actuators.size).to_not eql(0)
|
30
|
+
end
|
31
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Pickett
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chronic
|
@@ -213,6 +213,7 @@ files:
|
|
213
213
|
- lib/sensor/actuator/analytics_retrieval.rb
|
214
214
|
- lib/sensor/actuator/facebook_retrieval.rb
|
215
215
|
- lib/sensor/actuator/twitter_retrieval.rb
|
216
|
+
- lib/sensor/configuration.rb
|
216
217
|
- lib/sensor/output_distribution/flow_dock.rb
|
217
218
|
- lib/sensor/payload.rb
|
218
219
|
- lib/sensor/rake_task.rb
|
@@ -223,7 +224,9 @@ files:
|
|
223
224
|
- spec/sensor/actuator/analytics_retrieval_spec.rb
|
224
225
|
- spec/sensor/actuator/facebook_retrieval_spec.rb
|
225
226
|
- spec/sensor/actuator/twitter_retrieval_spec.rb
|
227
|
+
- spec/sensor/configuration_spec.rb
|
226
228
|
- spec/sensor/time_range_spec.rb
|
229
|
+
- spec/sensor_spec.rb
|
227
230
|
- spec/spec_helper.rb
|
228
231
|
homepage: ''
|
229
232
|
licenses:
|
@@ -254,5 +257,7 @@ test_files:
|
|
254
257
|
- spec/sensor/actuator/analytics_retrieval_spec.rb
|
255
258
|
- spec/sensor/actuator/facebook_retrieval_spec.rb
|
256
259
|
- spec/sensor/actuator/twitter_retrieval_spec.rb
|
260
|
+
- spec/sensor/configuration_spec.rb
|
257
261
|
- spec/sensor/time_range_spec.rb
|
262
|
+
- spec/sensor_spec.rb
|
258
263
|
- spec/spec_helper.rb
|