chillout 0.8.2 → 0.8.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/.travis.yml +5 -5
- data/CHANGELOG.md +7 -0
- data/lib/chillout/client.rb +12 -9
- data/lib/chillout/config.rb +21 -3
- data/lib/chillout/creations_container.rb +26 -0
- data/lib/chillout/job.rb +3 -3
- data/lib/chillout/railtie.rb +21 -4
- data/lib/chillout/server_side/dispatcher.rb +2 -2
- data/lib/chillout/server_side/server_side.rb +12 -11
- data/lib/chillout/subscribers/action_controller_notifications.rb +49 -0
- data/lib/chillout/version.rb +1 -1
- data/lib/chillout/worker.rb +13 -10
- data/lib/chillout.rb +1 -0
- data/test/acceptance/client_sends_controller_performance_test.rb +33 -0
- data/test/acceptance/client_sends_metrics_test.rb +5 -3
- data/test/client_test.rb +14 -1
- data/test/config_test.rb +14 -0
- data/test/creations_container_test.rb +48 -1
- data/test/dispatcher_test.rb +4 -4
- data/test/integration/creations_monitor_rack_test.rb +3 -3
- data/test/server_side_test.rb +0 -12
- data/test/subscribers/action_controller_notifications_test.rb +48 -0
- data/test/support/rails_4_0_0/config/environments/production.rb +7 -1
- data/test/support/rails_4_0_13/config/environments/production.rb +7 -1
- data/test/support/rails_4_1_0/config/environments/production.rb +7 -1
- data/test/support/rails_4_1_16/config/environments/production.rb +7 -1
- data/test/support/rails_4_2_0/config/environments/production.rb +1 -0
- data/test/test_helper.rb +18 -2
- data/test/worker_test.rb +43 -18
- metadata +7 -77
- data/lib/chillout/event_data_builder.rb +0 -34
- data/test/event_data_builder_test.rb +0 -90
- data/test/support/rails_3_2_13/Gemfile +0 -5
- data/test/support/rails_3_2_13/Rakefile +0 -7
- data/test/support/rails_3_2_13/app/controllers/application_controller.rb +0 -3
- data/test/support/rails_3_2_13/app/controllers/entities_controller.rb +0 -70
- data/test/support/rails_3_2_13/app/helpers/application_helper.rb +0 -2
- data/test/support/rails_3_2_13/app/models/entity.rb +0 -3
- data/test/support/rails_3_2_13/app/views/entities/_form.html.erb +0 -21
- data/test/support/rails_3_2_13/app/views/entities/edit.html.erb +0 -6
- data/test/support/rails_3_2_13/app/views/entities/index.html.erb +0 -23
- data/test/support/rails_3_2_13/app/views/entities/new.html.erb +0 -5
- data/test/support/rails_3_2_13/app/views/entities/show.html.erb +0 -10
- data/test/support/rails_3_2_13/app/views/layouts/application.html.erb +0 -14
- data/test/support/rails_3_2_13/config/application.rb +0 -63
- data/test/support/rails_3_2_13/config/boot.rb +0 -6
- data/test/support/rails_3_2_13/config/database.yml +0 -11
- data/test/support/rails_3_2_13/config/environment.rb +0 -5
- data/test/support/rails_3_2_13/config/environments/development.rb +0 -32
- data/test/support/rails_3_2_13/config/environments/production.rb +0 -56
- data/test/support/rails_3_2_13/config/environments/test.rb +0 -37
- data/test/support/rails_3_2_13/config/initializers/backtrace_silencers.rb +0 -7
- data/test/support/rails_3_2_13/config/initializers/inflections.rb +0 -15
- data/test/support/rails_3_2_13/config/initializers/load_schema.rb +0 -4
- data/test/support/rails_3_2_13/config/initializers/mime_types.rb +0 -5
- data/test/support/rails_3_2_13/config/initializers/secret_token.rb +0 -7
- data/test/support/rails_3_2_13/config/initializers/session_store.rb +0 -8
- data/test/support/rails_3_2_13/config/initializers/wrap_parameters.rb +0 -14
- data/test/support/rails_3_2_13/config/locales/en.yml +0 -5
- data/test/support/rails_3_2_13/config/routes.rb +0 -3
- data/test/support/rails_3_2_13/config.ru +0 -4
- data/test/support/rails_3_2_13/db/schema.rb +0 -22
- data/test/support/rails_3_2_13/public/404.html +0 -26
- data/test/support/rails_3_2_13/public/422.html +0 -26
- data/test/support/rails_3_2_13/public/500.html +0 -25
- data/test/support/rails_3_2_13/public/favicon.ico +0 -0
- data/test/support/rails_3_2_13/public/robots.txt +0 -5
- data/test/support/rails_3_2_13/script/rails +0 -6
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'active_job'
|
3
|
+
require 'active_job/test_helper'
|
4
|
+
|
5
|
+
module Chillout
|
6
|
+
module Subscribers
|
7
|
+
class ActionControllerNotificationsTest < ChilloutTestCase
|
8
|
+
include ActiveJob::TestHelper
|
9
|
+
|
10
|
+
def test_as_measurements
|
11
|
+
time = Time.utc(2017, 6, 27, 10, 26, 33)
|
12
|
+
metric = ActionControllerNotifications::RequestMetric.new(
|
13
|
+
ActiveSupport::Notifications::Event.new(
|
14
|
+
"asd", time, time+1, "uniq", {
|
15
|
+
controller: "PostsController",
|
16
|
+
action: "index",
|
17
|
+
params: {"action" => "index", "controller" => "posts"},
|
18
|
+
headers: nil, #ActionDispatch::Http::Headers.new,
|
19
|
+
format: :html,
|
20
|
+
method: "GET",
|
21
|
+
path: "/posts",
|
22
|
+
status: 200,
|
23
|
+
view_runtime: 46.848,
|
24
|
+
db_runtime: 0.157
|
25
|
+
}
|
26
|
+
))
|
27
|
+
|
28
|
+
assert_equal [{
|
29
|
+
timestamp: "2017-06-27T10:26:34Z",
|
30
|
+
series: "request",
|
31
|
+
tags: {
|
32
|
+
controller: "PostsController",
|
33
|
+
action: "index",
|
34
|
+
format: "html",
|
35
|
+
method: "GET",
|
36
|
+
status: 200,
|
37
|
+
},
|
38
|
+
values: {
|
39
|
+
finished: 1,
|
40
|
+
duration: 1000.000,
|
41
|
+
db: 0.157,
|
42
|
+
view: 46.848,
|
43
|
+
},
|
44
|
+
}], metric.as_measurements
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -63,5 +63,11 @@ Rails400::Application.configure do
|
|
63
63
|
# Use default logging formatter so that PID and timestamp are not suppressed.
|
64
64
|
config.log_formatter = ::Logger::Formatter.new
|
65
65
|
|
66
|
-
config.chillout = {
|
66
|
+
config.chillout = {
|
67
|
+
secret: 'secret',
|
68
|
+
ssl: false,
|
69
|
+
port: (ENV['CHILLOUT_PORT'] || 8080).to_i,
|
70
|
+
hostname: 'localhost',
|
71
|
+
strategy: (ENV['STRATEGY'] || :thread).to_sym,
|
72
|
+
}
|
67
73
|
end
|
@@ -63,5 +63,11 @@ Rails400::Application.configure do
|
|
63
63
|
# Use default logging formatter so that PID and timestamp are not suppressed.
|
64
64
|
config.log_formatter = ::Logger::Formatter.new
|
65
65
|
|
66
|
-
config.chillout = {
|
66
|
+
config.chillout = {
|
67
|
+
secret: 'secret',
|
68
|
+
ssl: false,
|
69
|
+
port: (ENV['CHILLOUT_PORT'] || 8080).to_i,
|
70
|
+
hostname: 'localhost',
|
71
|
+
strategy: (ENV['STRATEGY'] || :thread).to_sym,
|
72
|
+
}
|
67
73
|
end
|
@@ -63,5 +63,11 @@ Rails400::Application.configure do
|
|
63
63
|
# Use default logging formatter so that PID and timestamp are not suppressed.
|
64
64
|
config.log_formatter = ::Logger::Formatter.new
|
65
65
|
|
66
|
-
config.chillout = {
|
66
|
+
config.chillout = {
|
67
|
+
secret: 'secret',
|
68
|
+
ssl: false,
|
69
|
+
port: (ENV['CHILLOUT_PORT'] || 8080).to_i,
|
70
|
+
hostname: 'localhost',
|
71
|
+
strategy: (ENV['STRATEGY'] || :thread).to_sym,
|
72
|
+
}
|
67
73
|
end
|
@@ -63,5 +63,11 @@ Rails400::Application.configure do
|
|
63
63
|
# Use default logging formatter so that PID and timestamp are not suppressed.
|
64
64
|
config.log_formatter = ::Logger::Formatter.new
|
65
65
|
|
66
|
-
config.chillout = {
|
66
|
+
config.chillout = {
|
67
|
+
secret: 'secret',
|
68
|
+
ssl: false,
|
69
|
+
port: (ENV['CHILLOUT_PORT'] || 8080).to_i,
|
70
|
+
hostname: 'localhost',
|
71
|
+
strategy: (ENV['STRATEGY'] || :thread).to_sym,
|
72
|
+
}
|
67
73
|
end
|
data/test/test_helper.rb
CHANGED
@@ -71,7 +71,7 @@ end
|
|
71
71
|
|
72
72
|
class TestApp
|
73
73
|
|
74
|
-
def boot
|
74
|
+
def boot(chillout_port:)
|
75
75
|
sample_app_name = ENV['SAMPLE_APP'] || 'rails_4_0_0'
|
76
76
|
sample_app_root = Pathname.new(File.expand_path('../support', __FILE__)).join(sample_app_name)
|
77
77
|
command = [Gem.ruby, sample_app_root.join('script/rails').to_s, 'server'].join(' ')
|
@@ -79,6 +79,7 @@ class TestApp
|
|
79
79
|
process.cwd = sample_app_root.to_s
|
80
80
|
process.environment['BUNDLE_GEMFILE'] = sample_app_root.join('Gemfile').to_s
|
81
81
|
process.environment['RAILS_ENV'] = 'production'
|
82
|
+
process.environment['CHILLOUT_PORT'] = chillout_port.to_s
|
82
83
|
end
|
83
84
|
@executor = Bbq::Spawn::CoordinatedExecutor.new(@executor, :url => 'http://127.0.0.1:3000/', timeout: 15)
|
84
85
|
@executor.start
|
@@ -177,7 +178,22 @@ class TestEndpoint
|
|
177
178
|
def has_one_creation_for_entity_resource
|
178
179
|
10.times do
|
179
180
|
begin
|
180
|
-
|
181
|
+
many = metrics.pop(true)
|
182
|
+
metric = many["measurements"].find{|m| m["series"] == "Entity" }
|
183
|
+
return metric if metric
|
184
|
+
rescue ThreadError
|
185
|
+
sleep(1)
|
186
|
+
end
|
187
|
+
end
|
188
|
+
false
|
189
|
+
end
|
190
|
+
|
191
|
+
def has_one_controller_metric
|
192
|
+
10.times do
|
193
|
+
begin
|
194
|
+
many = metrics.pop(true)
|
195
|
+
metric = many["measurements"].find{|m| m["series"] == "request" }
|
196
|
+
return metric if metric
|
181
197
|
rescue ThreadError
|
182
198
|
sleep(1)
|
183
199
|
end
|
data/test/worker_test.rb
CHANGED
@@ -8,33 +8,58 @@ module Chillout
|
|
8
8
|
@container = stub
|
9
9
|
@logger = stub(info: "", error:"", debug: "")
|
10
10
|
@container_class = stub(:new => @container)
|
11
|
-
@
|
11
|
+
@max_queue = 50
|
12
|
+
@worker = Worker.new(@max_queue, @dispatcher, @queue, @logger, @container_class)
|
12
13
|
end
|
13
14
|
|
14
15
|
def test_get_all_containers_to_process_pops_all_existings_jobs_from_queue
|
15
16
|
@queue.expects(:pop).times(3).returns(:container1, :container2).then.raises(ThreadError)
|
16
|
-
|
17
|
-
assert_equal 2, all_jobs.count
|
18
|
-
assert_includes all_jobs, :container1
|
19
|
-
assert_includes all_jobs, :container2
|
17
|
+
assert_equal [:container1, :container2], @worker.get_all_containers_to_process
|
20
18
|
end
|
21
19
|
|
22
|
-
def
|
23
|
-
@
|
24
|
-
@
|
25
|
-
result = @worker.merge_containers([:container1, :container2])
|
26
|
-
assert_equal @container, result
|
20
|
+
def test_does_not_pop_containers_infinitely
|
21
|
+
@queue.expects(:pop).returns(:bip).times(@max_queue)
|
22
|
+
assert_equal [:bip]*@max_queue, @worker.get_all_containers_to_process
|
27
23
|
end
|
28
24
|
|
29
|
-
def
|
30
|
-
@
|
31
|
-
|
25
|
+
def test_merge_heterogeneous_containers
|
26
|
+
@worker = Worker.new(@max_queue, @dispatcher, @queue, @logger, CreationsContainer)
|
27
|
+
|
28
|
+
result = @worker.merge_containers([
|
29
|
+
CreationsContainer.new.tap{|cc| cc.increment!("User", 2); },
|
30
|
+
nil,
|
31
|
+
other = Object.new,
|
32
|
+
CreationsContainer.new.tap{|cc| cc.increment!("User", 3); },
|
33
|
+
1,
|
34
|
+
])
|
35
|
+
assert_equal [
|
36
|
+
CreationsContainer.new.tap{|cc| cc.increment!("User", 5); },
|
37
|
+
nil,
|
38
|
+
other,
|
39
|
+
1
|
40
|
+
], result
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_merge_homogeneous_containers
|
44
|
+
@worker = Worker.new(@max_queue, @dispatcher, @queue, @logger, CreationsContainer)
|
45
|
+
|
46
|
+
result = @worker.merge_containers([
|
47
|
+
CreationsContainer.new.tap{|cc| cc.increment!("User", 2); },
|
48
|
+
CreationsContainer.new.tap{|cc| cc.increment!("User", 3); },
|
49
|
+
])
|
50
|
+
assert_equal [
|
51
|
+
CreationsContainer.new.tap{|cc| cc.increment!("User", 5); },
|
52
|
+
], result
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_send_measurements_just_send_creations_with_dispatcher
|
56
|
+
@dispatcher.expects(:send_measurements).with(:creations_container)
|
57
|
+
@worker.send_measurements(:creations_container)
|
32
58
|
end
|
33
59
|
|
34
|
-
def
|
35
|
-
@dispatcher.stubs(:
|
36
|
-
@
|
37
|
-
@worker.send_creations(:creations_container)
|
60
|
+
def test_send_measurements_with_interuption
|
61
|
+
@dispatcher.stubs(:send_measurements).raises(Dispatcher::SendCreationsFailed)
|
62
|
+
@worker.send_measurements(:creations_container)
|
38
63
|
end
|
39
64
|
|
40
65
|
def test_send_startup_message_is_delegated_to_dispatcher
|
@@ -42,4 +67,4 @@ module Chillout
|
|
42
67
|
@worker.send_startup_message
|
43
68
|
end
|
44
69
|
end
|
45
|
-
end
|
70
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chillout
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michal Lomnicki
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2017-06-
|
14
|
+
date: 2017-06-29 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: multi_json
|
@@ -207,7 +207,6 @@ files:
|
|
207
207
|
- lib/chillout/creation_listener.rb
|
208
208
|
- lib/chillout/creations_container.rb
|
209
209
|
- lib/chillout/custom_metric.rb
|
210
|
-
- lib/chillout/event_data_builder.rb
|
211
210
|
- lib/chillout/generators/install.rb
|
212
211
|
- lib/chillout/integrations/sidekiq.rb
|
213
212
|
- lib/chillout/job.rb
|
@@ -221,9 +220,11 @@ files:
|
|
221
220
|
- lib/chillout/server_side/http_client.rb
|
222
221
|
- lib/chillout/server_side/plain_http_client.rb
|
223
222
|
- lib/chillout/server_side/server_side.rb
|
223
|
+
- lib/chillout/subscribers/action_controller_notifications.rb
|
224
224
|
- lib/chillout/tasks.rb
|
225
225
|
- lib/chillout/version.rb
|
226
226
|
- lib/chillout/worker.rb
|
227
|
+
- test/acceptance/client_sends_controller_performance_test.rb
|
227
228
|
- test/acceptance/client_sends_metrics_test.rb
|
228
229
|
- test/acceptance/sidekiq_workers_send_metrics_test.rb
|
229
230
|
- test/check_result_test.rb
|
@@ -232,7 +233,6 @@ files:
|
|
232
233
|
- test/creations_container_test.rb
|
233
234
|
- test/custom_metric_test.rb
|
234
235
|
- test/dispatcher_test.rb
|
235
|
-
- test/event_data_builder_test.rb
|
236
236
|
- test/http_client_test.rb
|
237
237
|
- test/integration/client_test.rb
|
238
238
|
- test/integration/creations_monitor_rack_test.rb
|
@@ -243,42 +243,7 @@ files:
|
|
243
243
|
- test/prefixed_logger_test.rb
|
244
244
|
- test/registration_test.rb
|
245
245
|
- test/server_side_test.rb
|
246
|
-
- test/
|
247
|
-
- test/support/rails_3_2_13/Rakefile
|
248
|
-
- test/support/rails_3_2_13/app/controllers/application_controller.rb
|
249
|
-
- test/support/rails_3_2_13/app/controllers/entities_controller.rb
|
250
|
-
- test/support/rails_3_2_13/app/helpers/application_helper.rb
|
251
|
-
- test/support/rails_3_2_13/app/models/entity.rb
|
252
|
-
- test/support/rails_3_2_13/app/views/entities/_form.html.erb
|
253
|
-
- test/support/rails_3_2_13/app/views/entities/edit.html.erb
|
254
|
-
- test/support/rails_3_2_13/app/views/entities/index.html.erb
|
255
|
-
- test/support/rails_3_2_13/app/views/entities/new.html.erb
|
256
|
-
- test/support/rails_3_2_13/app/views/entities/show.html.erb
|
257
|
-
- test/support/rails_3_2_13/app/views/layouts/application.html.erb
|
258
|
-
- test/support/rails_3_2_13/config.ru
|
259
|
-
- test/support/rails_3_2_13/config/application.rb
|
260
|
-
- test/support/rails_3_2_13/config/boot.rb
|
261
|
-
- test/support/rails_3_2_13/config/database.yml
|
262
|
-
- test/support/rails_3_2_13/config/environment.rb
|
263
|
-
- test/support/rails_3_2_13/config/environments/development.rb
|
264
|
-
- test/support/rails_3_2_13/config/environments/production.rb
|
265
|
-
- test/support/rails_3_2_13/config/environments/test.rb
|
266
|
-
- test/support/rails_3_2_13/config/initializers/backtrace_silencers.rb
|
267
|
-
- test/support/rails_3_2_13/config/initializers/inflections.rb
|
268
|
-
- test/support/rails_3_2_13/config/initializers/load_schema.rb
|
269
|
-
- test/support/rails_3_2_13/config/initializers/mime_types.rb
|
270
|
-
- test/support/rails_3_2_13/config/initializers/secret_token.rb
|
271
|
-
- test/support/rails_3_2_13/config/initializers/session_store.rb
|
272
|
-
- test/support/rails_3_2_13/config/initializers/wrap_parameters.rb
|
273
|
-
- test/support/rails_3_2_13/config/locales/en.yml
|
274
|
-
- test/support/rails_3_2_13/config/routes.rb
|
275
|
-
- test/support/rails_3_2_13/db/schema.rb
|
276
|
-
- test/support/rails_3_2_13/public/404.html
|
277
|
-
- test/support/rails_3_2_13/public/422.html
|
278
|
-
- test/support/rails_3_2_13/public/500.html
|
279
|
-
- test/support/rails_3_2_13/public/favicon.ico
|
280
|
-
- test/support/rails_3_2_13/public/robots.txt
|
281
|
-
- test/support/rails_3_2_13/script/rails
|
246
|
+
- test/subscribers/action_controller_notifications_test.rb
|
282
247
|
- test/support/rails_4_0_0/Gemfile
|
283
248
|
- test/support/rails_4_0_0/Rakefile
|
284
249
|
- test/support/rails_4_0_0/app/controllers/application_controller.rb
|
@@ -661,6 +626,7 @@ signing_key:
|
|
661
626
|
specification_version: 4
|
662
627
|
summary: Chillout.io Ruby client
|
663
628
|
test_files:
|
629
|
+
- test/acceptance/client_sends_controller_performance_test.rb
|
664
630
|
- test/acceptance/client_sends_metrics_test.rb
|
665
631
|
- test/acceptance/sidekiq_workers_send_metrics_test.rb
|
666
632
|
- test/check_result_test.rb
|
@@ -669,7 +635,6 @@ test_files:
|
|
669
635
|
- test/creations_container_test.rb
|
670
636
|
- test/custom_metric_test.rb
|
671
637
|
- test/dispatcher_test.rb
|
672
|
-
- test/event_data_builder_test.rb
|
673
638
|
- test/http_client_test.rb
|
674
639
|
- test/integration/client_test.rb
|
675
640
|
- test/integration/creations_monitor_rack_test.rb
|
@@ -680,42 +645,7 @@ test_files:
|
|
680
645
|
- test/prefixed_logger_test.rb
|
681
646
|
- test/registration_test.rb
|
682
647
|
- test/server_side_test.rb
|
683
|
-
- test/
|
684
|
-
- test/support/rails_3_2_13/Rakefile
|
685
|
-
- test/support/rails_3_2_13/app/controllers/application_controller.rb
|
686
|
-
- test/support/rails_3_2_13/app/controllers/entities_controller.rb
|
687
|
-
- test/support/rails_3_2_13/app/helpers/application_helper.rb
|
688
|
-
- test/support/rails_3_2_13/app/models/entity.rb
|
689
|
-
- test/support/rails_3_2_13/app/views/entities/_form.html.erb
|
690
|
-
- test/support/rails_3_2_13/app/views/entities/edit.html.erb
|
691
|
-
- test/support/rails_3_2_13/app/views/entities/index.html.erb
|
692
|
-
- test/support/rails_3_2_13/app/views/entities/new.html.erb
|
693
|
-
- test/support/rails_3_2_13/app/views/entities/show.html.erb
|
694
|
-
- test/support/rails_3_2_13/app/views/layouts/application.html.erb
|
695
|
-
- test/support/rails_3_2_13/config.ru
|
696
|
-
- test/support/rails_3_2_13/config/application.rb
|
697
|
-
- test/support/rails_3_2_13/config/boot.rb
|
698
|
-
- test/support/rails_3_2_13/config/database.yml
|
699
|
-
- test/support/rails_3_2_13/config/environment.rb
|
700
|
-
- test/support/rails_3_2_13/config/environments/development.rb
|
701
|
-
- test/support/rails_3_2_13/config/environments/production.rb
|
702
|
-
- test/support/rails_3_2_13/config/environments/test.rb
|
703
|
-
- test/support/rails_3_2_13/config/initializers/backtrace_silencers.rb
|
704
|
-
- test/support/rails_3_2_13/config/initializers/inflections.rb
|
705
|
-
- test/support/rails_3_2_13/config/initializers/load_schema.rb
|
706
|
-
- test/support/rails_3_2_13/config/initializers/mime_types.rb
|
707
|
-
- test/support/rails_3_2_13/config/initializers/secret_token.rb
|
708
|
-
- test/support/rails_3_2_13/config/initializers/session_store.rb
|
709
|
-
- test/support/rails_3_2_13/config/initializers/wrap_parameters.rb
|
710
|
-
- test/support/rails_3_2_13/config/locales/en.yml
|
711
|
-
- test/support/rails_3_2_13/config/routes.rb
|
712
|
-
- test/support/rails_3_2_13/db/schema.rb
|
713
|
-
- test/support/rails_3_2_13/public/404.html
|
714
|
-
- test/support/rails_3_2_13/public/422.html
|
715
|
-
- test/support/rails_3_2_13/public/500.html
|
716
|
-
- test/support/rails_3_2_13/public/favicon.ico
|
717
|
-
- test/support/rails_3_2_13/public/robots.txt
|
718
|
-
- test/support/rails_3_2_13/script/rails
|
648
|
+
- test/subscribers/action_controller_notifications_test.rb
|
719
649
|
- test/support/rails_4_0_0/Gemfile
|
720
650
|
- test/support/rails_4_0_0/Rakefile
|
721
651
|
- test/support/rails_4_0_0/app/controllers/application_controller.rb
|
@@ -1,34 +0,0 @@
|
|
1
|
-
module Chillout
|
2
|
-
class EventDataBuilder
|
3
|
-
def initialize(config)
|
4
|
-
@config = config
|
5
|
-
end
|
6
|
-
|
7
|
-
def build_from_creations_container(creations_container, timestamp)
|
8
|
-
{
|
9
|
-
:metric => "creations",
|
10
|
-
:timestamp => timestamp,
|
11
|
-
:content => {
|
12
|
-
:creations => build_creations_content(creations_container),
|
13
|
-
:environment => @config.environment
|
14
|
-
},
|
15
|
-
:notifier => build_notifier
|
16
|
-
}
|
17
|
-
end
|
18
|
-
|
19
|
-
def build_creations_content(creations_container)
|
20
|
-
creation_tuples = creations_container.resource_keys.map do |key|
|
21
|
-
[key, creations_container[key]]
|
22
|
-
end
|
23
|
-
Hash[creation_tuples]
|
24
|
-
end
|
25
|
-
|
26
|
-
def build_notifier
|
27
|
-
{
|
28
|
-
:name => @config.notifier_name,
|
29
|
-
:version => @config.version,
|
30
|
-
:url => @config.notifier_url
|
31
|
-
}
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,90 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
require 'chillout/event_data_builder'
|
3
|
-
require 'chillout/creations_container'
|
4
|
-
|
5
|
-
module Chillout
|
6
|
-
class EventDataBuilderTest < ChilloutTestCase
|
7
|
-
def setup
|
8
|
-
super
|
9
|
-
@shell_env = { 'PATH' => '/bin:/usr/bin' }
|
10
|
-
@api_key = "s3cr3t"
|
11
|
-
|
12
|
-
@config = Config.new(@api_key)
|
13
|
-
@config.platform = "rails"
|
14
|
-
@config.environment = "development"
|
15
|
-
@config.notifier_name = "chillout"
|
16
|
-
@config.version = "0.1"
|
17
|
-
@config.notifier_url = "http://github.com/arkency/chillout"
|
18
|
-
|
19
|
-
@timestamp = Time.now.iso8601
|
20
|
-
end
|
21
|
-
|
22
|
-
def build_from_creations_container
|
23
|
-
@creations_container = CreationsContainer.new
|
24
|
-
5.times { @creations_container.increment!("User") }
|
25
|
-
3.times { @creations_container.increment!("Cart") }
|
26
|
-
8.times { @creations_container.increment!("CartItem") }
|
27
|
-
|
28
|
-
@event_data_builder = EventDataBuilder.new(@config)
|
29
|
-
@event_data = @event_data_builder.build_from_creations_container(@creations_container, @timestamp)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_metric_type
|
33
|
-
build_from_creations_container
|
34
|
-
assert_param :metric, "creations"
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_timestamp
|
38
|
-
build_from_creations_container
|
39
|
-
assert_param :timestamp, @timestamp
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_each_counter
|
43
|
-
build_from_creations_container
|
44
|
-
assert_creations :User, 5
|
45
|
-
assert_creations :Cart, 3
|
46
|
-
assert_creations :CartItem, 8
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_environment
|
50
|
-
build_from_creations_container
|
51
|
-
assert_content :environment, "development"
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_notifier_name
|
55
|
-
build_from_creations_container
|
56
|
-
assert_notifier :name, "chillout"
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_notifier_version
|
60
|
-
build_from_creations_container
|
61
|
-
assert_notifier :version, "0.1"
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_notifier_url
|
65
|
-
build_from_creations_container
|
66
|
-
assert_notifier :url, "http://github.com/arkency/chillout"
|
67
|
-
end
|
68
|
-
|
69
|
-
private
|
70
|
-
def event_data
|
71
|
-
@event_data
|
72
|
-
end
|
73
|
-
|
74
|
-
def assert_param(key, value)
|
75
|
-
assert_equal value, event_data[key]
|
76
|
-
end
|
77
|
-
|
78
|
-
def assert_content(key, value)
|
79
|
-
assert_equal value, event_data[:content][key]
|
80
|
-
end
|
81
|
-
|
82
|
-
def assert_creations(key, value)
|
83
|
-
assert_equal value, event_data[:content][:creations][key]
|
84
|
-
end
|
85
|
-
|
86
|
-
def assert_notifier(key, value)
|
87
|
-
assert_equal value, event_data[:notifier][key]
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
@@ -1,7 +0,0 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
|
-
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
3
|
-
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
4
|
-
|
5
|
-
require File.expand_path('../config/application', __FILE__)
|
6
|
-
|
7
|
-
Rails3213::Application.load_tasks
|
@@ -1,70 +0,0 @@
|
|
1
|
-
class EntitiesController < ApplicationController
|
2
|
-
def index
|
3
|
-
@entities = Entity.all
|
4
|
-
|
5
|
-
respond_to do |format|
|
6
|
-
format.html # index.html.erb
|
7
|
-
format.json { render :json => @entities }
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def show
|
12
|
-
@entity = Entity.find(params[:id])
|
13
|
-
|
14
|
-
respond_to do |format|
|
15
|
-
format.html # show.html.erb
|
16
|
-
format.json { render :json => @entity }
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def new
|
21
|
-
@entity = Entity.new
|
22
|
-
|
23
|
-
respond_to do |format|
|
24
|
-
format.html # new.html.erb
|
25
|
-
format.json { render :json => @entity }
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def edit
|
30
|
-
@entity = Entity.find(params[:id])
|
31
|
-
end
|
32
|
-
|
33
|
-
def create
|
34
|
-
@entity = Entity.new(params[:entity])
|
35
|
-
|
36
|
-
respond_to do |format|
|
37
|
-
if @entity.save
|
38
|
-
format.html { redirect_to @entity, :notice => 'Entity was successfully created.' }
|
39
|
-
format.json { render :json => @entity, :status => :created, :location => @entity }
|
40
|
-
else
|
41
|
-
format.html { render :action => "new" }
|
42
|
-
format.json { render :json => @entity.errors, :status => :unprocessable_entity }
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def update
|
48
|
-
@entity = Entity.find(params[:id])
|
49
|
-
|
50
|
-
respond_to do |format|
|
51
|
-
if @entity.update_attributes(params[:entity])
|
52
|
-
format.html { redirect_to @entity, :notice => 'Entity was successfully updated.' }
|
53
|
-
format.json { head :no_content }
|
54
|
-
else
|
55
|
-
format.html { render :action => "edit" }
|
56
|
-
format.json { render :json => @entity.errors, :status => :unprocessable_entity }
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def destroy
|
62
|
-
@entity = Entity.find(params[:id])
|
63
|
-
@entity.destroy
|
64
|
-
|
65
|
-
respond_to do |format|
|
66
|
-
format.html { redirect_to entities_url }
|
67
|
-
format.json { head :no_content }
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
<%= form_for(@entity) do |f| %>
|
2
|
-
<% if @entity.errors.any? %>
|
3
|
-
<div id="error_explanation">
|
4
|
-
<h2><%= pluralize(@entity.errors.count, "error") %> prohibited this entity from being saved:</h2>
|
5
|
-
|
6
|
-
<ul>
|
7
|
-
<% @entity.errors.full_messages.each do |msg| %>
|
8
|
-
<li><%= msg %></li>
|
9
|
-
<% end %>
|
10
|
-
</ul>
|
11
|
-
</div>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<div class="field">
|
15
|
-
<%= f.label :name %><br />
|
16
|
-
<%= f.text_field :name %>
|
17
|
-
</div>
|
18
|
-
<div class="actions">
|
19
|
-
<%= f.submit %>
|
20
|
-
</div>
|
21
|
-
<% end %>
|
@@ -1,23 +0,0 @@
|
|
1
|
-
<h1>Listing entities</h1>
|
2
|
-
|
3
|
-
<table>
|
4
|
-
<tr>
|
5
|
-
<th>Name</th>
|
6
|
-
<th></th>
|
7
|
-
<th></th>
|
8
|
-
<th></th>
|
9
|
-
</tr>
|
10
|
-
|
11
|
-
<% @entities.each do |entity| %>
|
12
|
-
<tr>
|
13
|
-
<td><%= entity.name %></td>
|
14
|
-
<td><%= link_to 'Show', entity %></td>
|
15
|
-
<td><%= link_to 'Edit', edit_entity_path(entity) %></td>
|
16
|
-
<td><%= link_to 'Destroy', entity, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
17
|
-
</tr>
|
18
|
-
<% end %>
|
19
|
-
</table>
|
20
|
-
|
21
|
-
<br />
|
22
|
-
|
23
|
-
<%= link_to 'New Entity', new_entity_path %>
|