pushpop-keen 0.2 → 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 +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -4
- data/README.md +3 -2
- data/lib/pushpop-keen.rb +6 -0
- data/lib/pushpop-keen/version.rb +1 -1
- data/spec/pushpop-keen_spec.rb +27 -22
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b76cb926fd8fe661fc862fd055769473f844e7bd
|
4
|
+
data.tar.gz: 96571c39cf9191e6c54ebe1b73be0111d6dd2811
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1889e66f20cb170e09b9fb2d2fd2fc89ef6a5e95cbb030dd28d7ff14976729c91ce780eb16ef3d188f7bd61b36ceb406bdd257236a91634cbd9f4de4c1a90d14
|
7
|
+
data.tar.gz: 2092041f9e0c8285acc17ee0b30e28663a5f9ee501949d79a577635cddefaa8b419b9390b35b70c7b585806a249caef1004bf938c3323992247c9657c42e0e4c
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -7,18 +7,18 @@ GEM
|
|
7
7
|
minitest (~> 5.1)
|
8
8
|
thread_safe (~> 0.1)
|
9
9
|
tzinfo (~> 1.1)
|
10
|
-
addressable (2.3.
|
10
|
+
addressable (2.3.8)
|
11
11
|
clockwork (0.7.5)
|
12
12
|
activesupport
|
13
13
|
tzinfo
|
14
14
|
diff-lcs (1.2.5)
|
15
15
|
i18n (0.6.9)
|
16
16
|
json (1.8.1)
|
17
|
-
keen (0.
|
17
|
+
keen (0.9.2)
|
18
18
|
addressable (~> 2.3.5)
|
19
19
|
multi_json (~> 1.3)
|
20
20
|
minitest (5.3.4)
|
21
|
-
multi_json (1.
|
21
|
+
multi_json (1.11.2)
|
22
22
|
pushpop (0.1.1)
|
23
23
|
clockwork
|
24
24
|
rake (10.3.2)
|
@@ -42,7 +42,7 @@ PLATFORMS
|
|
42
42
|
ruby
|
43
43
|
|
44
44
|
DEPENDENCIES
|
45
|
-
keen
|
45
|
+
keen (>= 0.9.2)
|
46
46
|
pushpop
|
47
47
|
rake
|
48
48
|
rspec
|
data/README.md
CHANGED
@@ -33,7 +33,8 @@ job 'average response time for successful requests last month' do
|
|
33
33
|
target_property 'request.duration'
|
34
34
|
group_by 'check.name'
|
35
35
|
interval 'daily'
|
36
|
-
timeframe 'last_month'
|
36
|
+
timeframe 'last_month'
|
37
|
+
max_age '300', #cache the query for 5 minutes
|
37
38
|
filters [{ property_name: "response.successful",
|
38
39
|
operator: "eq",
|
39
40
|
property_value: true }]
|
@@ -67,4 +68,4 @@ The `keen` plugin requires that the following environment variables are set:
|
|
67
68
|
|
68
69
|
### Contributing
|
69
70
|
|
70
|
-
Code
|
71
|
+
Code, documentation issues, and pull requests welcome!
|
data/lib/pushpop-keen.rb
CHANGED
@@ -18,6 +18,7 @@ module Pushpop
|
|
18
18
|
attr_accessor :_filters
|
19
19
|
attr_accessor :_steps
|
20
20
|
attr_accessor :_analyses
|
21
|
+
attr_accessor :_max_age
|
21
22
|
|
22
23
|
def run(last_response=nil, step_responses=nil)
|
23
24
|
ret = self.configure(last_response, step_responses)
|
@@ -46,6 +47,7 @@ module Pushpop
|
|
46
47
|
interval: self._interval,
|
47
48
|
filters: self._filters,
|
48
49
|
analyses: self._analyses,
|
50
|
+
max_age: self._max_age,
|
49
51
|
steps: self._steps
|
50
52
|
}.delete_if { |_, v| v.nil? }
|
51
53
|
end
|
@@ -86,6 +88,10 @@ module Pushpop
|
|
86
88
|
self._analyses = analyses
|
87
89
|
end
|
88
90
|
|
91
|
+
def max_age(max_age)
|
92
|
+
self._max_age = max_age
|
93
|
+
end
|
94
|
+
|
89
95
|
end
|
90
96
|
|
91
97
|
end
|
data/lib/pushpop-keen/version.rb
CHANGED
data/spec/pushpop-keen_spec.rb
CHANGED
@@ -4,7 +4,7 @@ describe Pushpop::Keen do
|
|
4
4
|
|
5
5
|
describe '#configure' do
|
6
6
|
|
7
|
-
it '
|
7
|
+
it 'sets various params' do
|
8
8
|
|
9
9
|
step = Pushpop::Keen.new do
|
10
10
|
event_collection 'pageviews'
|
@@ -13,6 +13,7 @@ describe Pushpop::Keen do
|
|
13
13
|
target_property 'trinkets'
|
14
14
|
group_by 'referer'
|
15
15
|
interval 'hourly'
|
16
|
+
max_age '300'
|
16
17
|
filters [{ property_value: 'referer',
|
17
18
|
operator: 'ne',
|
18
19
|
property_value: 'yahoo.com' }]
|
@@ -23,22 +24,23 @@ describe Pushpop::Keen do
|
|
23
24
|
|
24
25
|
step.configure
|
25
26
|
|
26
|
-
step._event_collection.
|
27
|
-
step._analysis_type.
|
28
|
-
step._timeframe.
|
29
|
-
step._group_by.
|
30
|
-
step._interval.
|
31
|
-
step.
|
27
|
+
expect(step._event_collection).to eq('pageviews')
|
28
|
+
expect(step._analysis_type).to eq('count')
|
29
|
+
expect(step._timeframe).to eq('last_3_days')
|
30
|
+
expect(step._group_by).to eq('referer')
|
31
|
+
expect(step._interval).to eq('hourly')
|
32
|
+
expect(step._max_age).to eq('300')
|
33
|
+
expect(step._steps).to eq([{
|
32
34
|
event_collection: 'pageviews',
|
33
35
|
actor_property: 'user.id'
|
34
|
-
}]
|
35
|
-
step._analyses.
|
36
|
+
}])
|
37
|
+
expect(step._analyses).to eq([{ analysis_type: 'count' }])
|
36
38
|
end
|
37
39
|
|
38
40
|
end
|
39
41
|
|
40
42
|
describe '#record' do
|
41
|
-
it '
|
43
|
+
it 'records an event with properties' do
|
42
44
|
step = Pushpop::Keen.new do
|
43
45
|
record 'Pageview', useragent: 'Chrome'
|
44
46
|
end
|
@@ -49,21 +51,23 @@ describe Pushpop::Keen do
|
|
49
51
|
end
|
50
52
|
|
51
53
|
describe '#run' do
|
52
|
-
it '
|
53
|
-
Keen.
|
54
|
-
|
55
|
-
|
54
|
+
it 'runs the query based on the analysis type' do
|
55
|
+
allow(Keen).to receive(:count) { 365 }
|
56
|
+
#Keen.stub(:count).with('pageviews', {
|
57
|
+
# timeframe: 'last_3_days'
|
58
|
+
#}).and_return(365)
|
56
59
|
|
57
60
|
step = Pushpop::Keen.new('one') do
|
58
61
|
event_collection 'pageviews'
|
59
62
|
analysis_type 'count'
|
60
63
|
timeframe 'last_3_days'
|
61
64
|
end
|
65
|
+
|
62
66
|
response = step.run
|
63
|
-
response.
|
67
|
+
expect(response).to eq(365)
|
64
68
|
end
|
65
69
|
|
66
|
-
it '
|
70
|
+
it 'don\'t run a query if the analysis type isnt set' do
|
67
71
|
step = Pushpop::Keen.new do
|
68
72
|
group_by 'something'
|
69
73
|
end
|
@@ -74,7 +78,7 @@ describe Pushpop::Keen do
|
|
74
78
|
step.run
|
75
79
|
end
|
76
80
|
|
77
|
-
it '
|
81
|
+
it 'run funnels directly, instead of using send' do
|
78
82
|
step = Pushpop::Keen.new('one') do
|
79
83
|
analysis_type 'funnel'
|
80
84
|
steps [
|
@@ -99,7 +103,7 @@ describe Pushpop::Keen do
|
|
99
103
|
end
|
100
104
|
|
101
105
|
describe '#to_analysis_options' do
|
102
|
-
it '
|
106
|
+
it 'includes various options' do
|
103
107
|
step = Pushpop::Keen.new('one') do end
|
104
108
|
step._timeframe = 'last_4_days'
|
105
109
|
step._group_by = 'referer'
|
@@ -111,7 +115,8 @@ describe Pushpop::Keen do
|
|
111
115
|
step._steps = [{ event_collection: 'pageviews',
|
112
116
|
actor_property: 'user.id' }]
|
113
117
|
step._analyses = [{ analysis_type: 'count' }]
|
114
|
-
|
118
|
+
|
119
|
+
expect(step.to_analysis_options).to eq({
|
115
120
|
timeframe: 'last_4_days',
|
116
121
|
target_property: 'trinkets',
|
117
122
|
group_by: 'referer',
|
@@ -122,12 +127,12 @@ describe Pushpop::Keen do
|
|
122
127
|
steps: [{ event_collection: 'pageviews',
|
123
128
|
actor_property: 'user.id' }],
|
124
129
|
analyses: [{ analysis_type: 'count' }]
|
125
|
-
}
|
130
|
+
})
|
126
131
|
end
|
127
132
|
|
128
|
-
it '
|
133
|
+
it 'doesn\'t include nils' do
|
129
134
|
step = Pushpop::Keen.new('one') do end
|
130
|
-
step.to_analysis_options.
|
135
|
+
expect(step.to_analysis_options).to eq({})
|
131
136
|
end
|
132
137
|
end
|
133
138
|
end
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pushpop-keen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.3'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Dzielak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pushpop
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: keen
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
description:
|
@@ -44,7 +44,7 @@ executables: []
|
|
44
44
|
extensions: []
|
45
45
|
extra_rdoc_files: []
|
46
46
|
files:
|
47
|
-
- .travis.yml
|
47
|
+
- ".travis.yml"
|
48
48
|
- Gemfile
|
49
49
|
- Gemfile.lock
|
50
50
|
- LICENSE
|
@@ -64,17 +64,17 @@ require_paths:
|
|
64
64
|
- lib
|
65
65
|
required_ruby_version: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- -
|
72
|
+
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
75
|
requirements: []
|
76
76
|
rubyforge_project:
|
77
|
-
rubygems_version: 2.
|
77
|
+
rubygems_version: 2.2.2
|
78
78
|
signing_key:
|
79
79
|
specification_version: 4
|
80
80
|
summary: Pushpop Keen IO plugin for querying and recording events
|