sensor 0.0.2 → 0.0.3
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 +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
|