dashing-rails 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +13 -2
- data/Rakefile +4 -3
- data/app/controllers/dashing/application_controller.rb +8 -0
- data/app/controllers/dashing/events_controller.rb +3 -3
- data/lib/dashing.rb +1 -1
- data/lib/dashing/configuration.rb +32 -13
- data/lib/dashing/version.rb +1 -1
- data/lib/generators/templates/initializer.rb +9 -2
- data/spec/controllers/dashing/application_controller_spec.rb +21 -0
- data/spec/dummy/log/test.log +371 -3
- data/spec/lib/dashing/configuration_spec.rb +43 -35
- data/spec/lib/dashing_spec.rb +15 -3
- data/spec/spec_helper.rb +5 -1
- metadata +36 -18
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Dashing
|
2
2
|
|
3
3
|
[![Code Climate](https://codeclimate.com/github/gottfrois/dashing-rails.png)](https://codeclimate.com/github/gottfrois/dashing-rails)
|
4
|
+
[![Coverage Status](https://coveralls.io/repos/gottfrois/dashing-rails/badge.png?branch=master)](https://coveralls.io/r/gottfrois/dashing-rails?branch=master)
|
5
|
+
[![Build Status](https://travis-ci.org/gottfrois/dashing-rails.png?branch=master)](https://travis-ci.org/gottfrois/dashing-rails)
|
4
6
|
|
5
7
|
Dashing-rails is the Rails Engine version of [Dashing by Shopify](http://shopify.github.io/dashing/).
|
6
8
|
A huge thanks to Shopify for their great work with the Sinatra version.
|
@@ -21,6 +23,7 @@ Key features:
|
|
21
23
|
|
22
24
|
## Requirements
|
23
25
|
|
26
|
+
* Ruby >=1.9.3
|
24
27
|
* Rails 4
|
25
28
|
* Redis
|
26
29
|
* Multi Threaded server ([puma](https://github.com/puma/puma), [rainbows](http://rainbows.rubyforge.org/))
|
@@ -101,9 +104,11 @@ Dashing uses [Redis](http://redis.io/) to push and pull data and feed your widge
|
|
101
104
|
|
102
105
|
This way you can have a seperate Rails 4 application (with puma) running your dashboards and push your data to redis from your main Rails 3 application for example.
|
103
106
|
|
104
|
-
You can specify Dashing redis
|
107
|
+
You can specify Dashing redis credentials in `config/initializers/dashing.rb`:
|
105
108
|
|
106
|
-
config.
|
109
|
+
config.redis_host = '127.0.0.1'
|
110
|
+
config.redis_port = '6379'
|
111
|
+
config.redis_password = '123456'
|
107
112
|
|
108
113
|
By default Dashing subscribed to the following namespace in redis:
|
109
114
|
|
@@ -160,6 +165,12 @@ Does not work in Internet Explorer because it relies on [Server Sent Events](htt
|
|
160
165
|
|
161
166
|
All contributions are more than welcome; especially new widgets!
|
162
167
|
|
168
|
+
Please add spec to your Pull Requests and run them using:
|
169
|
+
|
170
|
+
rake
|
171
|
+
|
172
|
+
You can use the following [demo application](https://github.com/gottfrois/dashing-rails-demo) to test dashing-rails in development.
|
173
|
+
|
163
174
|
## License
|
164
175
|
|
165
176
|
Dashing is released under the [MIT license](https://github.com/Shopify/dashing/blob/master/MIT-LICENSE)
|
data/Rakefile
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'rspec/core/rake_task'
|
3
3
|
|
4
|
-
RSpec::Core::RakeTask.new('
|
5
|
-
|
6
|
-
|
4
|
+
RSpec::Core::RakeTask.new('spec')
|
5
|
+
|
6
|
+
task default: :spec
|
7
|
+
task test: :spec
|
@@ -1,8 +1,16 @@
|
|
1
1
|
module Dashing
|
2
2
|
class ApplicationController < ActionController::Base
|
3
3
|
|
4
|
+
before_filter :authentication_with_devise
|
5
|
+
|
4
6
|
private
|
5
7
|
|
8
|
+
def authentication_with_devise
|
9
|
+
Dashing.config.devise_allowed_models.each do |model|
|
10
|
+
self.send("authenticate_#{model.to_s}!")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
6
14
|
def check_accessibility
|
7
15
|
auth_token = params.delete(:auth_token)
|
8
16
|
if !Dashing.config.auth_token || auth_token == Dashing.config.auth_token
|
@@ -8,8 +8,8 @@ module Dashing
|
|
8
8
|
response.headers['Content-Type'] = 'text/event-stream'
|
9
9
|
response.headers['X-Accel-Buffering'] = 'no'
|
10
10
|
|
11
|
-
redis =
|
12
|
-
redis.psubscribe("#{Dashing.config.redis_namespace}.*") do |on|
|
11
|
+
@redis = Dashing.redis
|
12
|
+
@redis.psubscribe("#{Dashing.config.redis_namespace}.*") do |on|
|
13
13
|
on.pmessage do |pattern, event, data|
|
14
14
|
response.stream.write("data: #{data}\n\n")
|
15
15
|
end
|
@@ -17,7 +17,7 @@ module Dashing
|
|
17
17
|
rescue IOError
|
18
18
|
logger.info "[Dashing][#{Time.now.utc.to_s}] Stream closed"
|
19
19
|
ensure
|
20
|
-
redis.quit
|
20
|
+
@redis.quit
|
21
21
|
response.stream.close
|
22
22
|
end
|
23
23
|
|
data/lib/dashing.rb
CHANGED
@@ -1,26 +1,45 @@
|
|
1
1
|
require 'rufus-scheduler'
|
2
2
|
require 'redis'
|
3
|
+
require 'connection_pool'
|
3
4
|
|
4
5
|
module Dashing
|
5
6
|
class Configuration
|
6
7
|
|
7
|
-
|
8
|
+
attr_reader :redis
|
9
|
+
attr_accessor :scheduler, :view_path, :jobs_path, :redis_namespace,
|
8
10
|
:engine_path, :dashboards_path, :dashboard_layout,
|
9
|
-
:widgets_path, :default_dashboard, :auth_token
|
11
|
+
:widgets_path, :default_dashboard, :auth_token, :devise_allowed_models,
|
12
|
+
:redis_host, :redis_port, :redis_password
|
10
13
|
|
11
14
|
def initialize
|
12
|
-
@scheduler
|
13
|
-
@
|
14
|
-
@
|
15
|
-
@
|
16
|
-
@
|
17
|
-
@
|
18
|
-
@
|
19
|
-
@
|
20
|
-
@
|
21
|
-
@
|
22
|
-
@
|
15
|
+
@scheduler = ::Rufus::Scheduler.new
|
16
|
+
@redis_host = '127.0.0.1'
|
17
|
+
@redis_port = '6379'
|
18
|
+
@redis_password = nil
|
19
|
+
@redis_namespace = 'dashing_events'
|
20
|
+
@view_path = 'app/views/dashing/'
|
21
|
+
@jobs_path = 'app/jobs/'
|
22
|
+
@engine_path = '/dashing'
|
23
|
+
@dashboards_path = 'app/views/dashing/dashboards/'
|
24
|
+
@dashboard_layout = 'dashing/dashboard'
|
25
|
+
@widgets_path = 'app/views/dashing/widgets/'
|
26
|
+
@default_dashboard = nil
|
27
|
+
@auth_token = nil
|
28
|
+
@devise_allowed_models = []
|
23
29
|
end
|
24
30
|
|
31
|
+
def redis
|
32
|
+
@redis ||= ::ConnectionPool::Wrapper.new(size: request_thread_count, timeout: 3) { ::Redis.new(host: redis_host, port: redis_port, password: redis_password) }
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def request_thread_count
|
38
|
+
if defined?(::Puma) && ::Puma.respond_to?(:cli_config)
|
39
|
+
::Puma.cli_config.options.fetch(:max_threads, 5).to_i
|
40
|
+
else
|
41
|
+
5
|
42
|
+
end
|
43
|
+
end
|
25
44
|
end
|
26
45
|
end
|
data/lib/dashing/version.rb
CHANGED
@@ -3,8 +3,11 @@ Dashing.configure do |config|
|
|
3
3
|
# Scheduler instance.
|
4
4
|
# config.scheduler = ::Rufus::Scheduler.new
|
5
5
|
|
6
|
-
# Redis
|
7
|
-
#
|
6
|
+
# Redis credentials.
|
7
|
+
# See https://devcenter.heroku.com/articles/redistogo to configure redis for heroku.
|
8
|
+
# config.redis_host = '127.0.0.1'
|
9
|
+
# config.redis_port = '6379'
|
10
|
+
# config.redis_password = nil
|
8
11
|
|
9
12
|
# Redis namespace when pushing new data.
|
10
13
|
# config.redis_namespace = 'dashing_events'
|
@@ -47,4 +50,8 @@ Dashing.configure do |config|
|
|
47
50
|
# Put nil if you don't want to use authentication.
|
48
51
|
# You can use SecureRandom.hex to generate a hex.
|
49
52
|
# config.auth_token = nil
|
53
|
+
|
54
|
+
# List of Devise models that should access the whole dashboard.
|
55
|
+
# List the models. E.g: '[ :user, :admin ]'
|
56
|
+
# config.devise_allowed_models = []
|
50
57
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Dashing::ApplicationController do
|
4
|
+
|
5
|
+
describe '#authentication_with_devise' do
|
6
|
+
|
7
|
+
let(:models) { [:user, :admin] }
|
8
|
+
|
9
|
+
before do
|
10
|
+
Dashing.stub_chain(:config, :devise_allowed_models).and_return(models)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'calls devise authenticate method' do
|
14
|
+
expect(controller).to receive("authenticate_#{models.first.to_s}!")
|
15
|
+
expect(controller).to receive("authenticate_#{models.last.to_s}!")
|
16
|
+
controller.send(:authentication_with_devise)
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
data/spec/dummy/log/test.log
CHANGED
@@ -1,27 +1,395 @@
|
|
1
|
+
Processing by Dashing::WidgetsController#show as HTML
|
2
|
+
Parameters: {"name"=>"foo"}
|
3
|
+
Rendered dashing/widgets/foo/foo.html (0.2ms)
|
4
|
+
Completed 200 OK in 27ms (Views: 26.5ms | ActiveRecord: 0.0ms)
|
5
|
+
Processing by Dashing::WidgetsController#show as HTML
|
6
|
+
Parameters: {"name"=>"text"}
|
7
|
+
Completed 200 OK in 3ms (Views: 2.5ms | ActiveRecord: 0.0ms)
|
8
|
+
Processing by Dashing::WidgetsController#show as HTML
|
9
|
+
Completed 500 Internal Server Error in 0ms
|
10
|
+
Processing by Dashing::WidgetsController#show as HTML
|
11
|
+
Parameters: {"name"=>"bar"}
|
12
|
+
Completed 500 Internal Server Error in 2ms
|
13
|
+
Processing by Dashing::WidgetsController#update as HTML
|
14
|
+
Parameters: {"name"=>"foo"}
|
15
|
+
Completed 200 OK in 4ms (Views: 2.0ms | ActiveRecord: 0.0ms)
|
16
|
+
Processing by Dashing::WidgetsController#update as HTML
|
17
|
+
Completed 500 Internal Server Error in 0ms
|
18
|
+
Processing by Dashing::DashboardsController#index as HTML
|
19
|
+
Completed 200 OK in 5ms (Views: 4.1ms | ActiveRecord: 0.0ms)
|
20
|
+
Processing by Dashing::DashboardsController#show as HTML
|
21
|
+
Parameters: {"name"=>"foo"}
|
22
|
+
Completed 200 OK in 1ms (Views: 0.5ms | ActiveRecord: 0.0ms)
|
23
|
+
Processing by Dashing::DashboardsController#show as HTML
|
24
|
+
Completed 500 Internal Server Error in 0ms
|
25
|
+
Processing by Dashing::DashboardsController#show as HTML
|
26
|
+
Parameters: {"name"=>"bar"}
|
27
|
+
Completed 500 Internal Server Error in 2ms
|
28
|
+
Processing by Dashing::DashboardsController#show as HTML
|
29
|
+
Parameters: {"name"=>"bar"}
|
30
|
+
Completed 500 Internal Server Error in 11ms
|
31
|
+
Processing by Dashing::DashboardsController#show as HTML
|
32
|
+
Completed 500 Internal Server Error in 0ms
|
33
|
+
Processing by Dashing::DashboardsController#show as HTML
|
34
|
+
Parameters: {"name"=>"foo"}
|
35
|
+
Completed 200 OK in 24ms (Views: 23.2ms | ActiveRecord: 0.0ms)
|
36
|
+
Processing by Dashing::DashboardsController#index as HTML
|
37
|
+
Completed 200 OK in 1ms (Views: 0.5ms | ActiveRecord: 0.0ms)
|
38
|
+
Processing by Dashing::WidgetsController#update as HTML
|
39
|
+
Completed 500 Internal Server Error in 0ms
|
40
|
+
Processing by Dashing::WidgetsController#update as HTML
|
41
|
+
Parameters: {"name"=>"foo"}
|
42
|
+
Completed 500 Internal Server Error in 2ms
|
43
|
+
Processing by Dashing::WidgetsController#show as HTML
|
44
|
+
Parameters: {"name"=>"text"}
|
45
|
+
Completed 200 OK in 5ms (Views: 4.4ms | ActiveRecord: 0.0ms)
|
46
|
+
Processing by Dashing::WidgetsController#show as HTML
|
47
|
+
Parameters: {"name"=>"foo"}
|
48
|
+
Completed 200 OK in 3ms (Views: 2.1ms | ActiveRecord: 0.0ms)
|
49
|
+
Processing by Dashing::WidgetsController#show as HTML
|
50
|
+
Parameters: {"name"=>"bar"}
|
51
|
+
Completed 500 Internal Server Error in 2ms
|
52
|
+
Processing by Dashing::WidgetsController#show as HTML
|
53
|
+
Completed 500 Internal Server Error in 0ms
|
1
54
|
Processing by Dashing::DashboardsController#index as HTML
|
2
55
|
Rendered dashing/dashboards/foo.erb within layouts/dashing/dashboard (1.9ms)
|
3
|
-
Completed 200 OK in
|
56
|
+
Completed 200 OK in 27ms (Views: 26.4ms | ActiveRecord: 0.0ms)
|
4
57
|
Processing by Dashing::DashboardsController#show as HTML
|
5
58
|
Parameters: {"name"=>"foo"}
|
6
|
-
Completed 200 OK in 1ms (Views: 0.
|
59
|
+
Completed 200 OK in 1ms (Views: 0.4ms | ActiveRecord: 0.0ms)
|
7
60
|
Processing by Dashing::DashboardsController#show as HTML
|
8
61
|
Completed 500 Internal Server Error in 0ms
|
9
62
|
Processing by Dashing::DashboardsController#show as HTML
|
10
63
|
Parameters: {"name"=>"bar"}
|
11
64
|
Completed 500 Internal Server Error in 2ms
|
65
|
+
Processing by Dashing::WidgetsController#show as HTML
|
66
|
+
Parameters: {"name"=>"text"}
|
67
|
+
Completed 500 Internal Server Error in 1ms
|
68
|
+
Processing by Dashing::WidgetsController#show as HTML
|
69
|
+
Completed 500 Internal Server Error in 1ms
|
70
|
+
Processing by Dashing::WidgetsController#show as HTML
|
71
|
+
Parameters: {"name"=>"bar"}
|
72
|
+
Completed 500 Internal Server Error in 1ms
|
12
73
|
Processing by Dashing::WidgetsController#show as HTML
|
13
74
|
Parameters: {"name"=>"foo"}
|
75
|
+
Completed 500 Internal Server Error in 1ms
|
76
|
+
Processing by Dashing::WidgetsController#update as HTML
|
77
|
+
Parameters: {"name"=>"foo"}
|
78
|
+
Completed 500 Internal Server Error in 1ms
|
79
|
+
Processing by Dashing::WidgetsController#update as HTML
|
80
|
+
Completed 500 Internal Server Error in 1ms
|
81
|
+
Processing by Dashing::DashboardsController#index as HTML
|
82
|
+
Completed 200 OK in 11ms (Views: 10.5ms | ActiveRecord: 0.0ms)
|
83
|
+
Processing by Dashing::DashboardsController#show as HTML
|
84
|
+
Parameters: {"name"=>"foo"}
|
85
|
+
Completed 200 OK in 1ms (Views: 0.4ms | ActiveRecord: 0.0ms)
|
86
|
+
Processing by Dashing::DashboardsController#show as HTML
|
87
|
+
Completed 500 Internal Server Error in 0ms
|
88
|
+
Processing by Dashing::DashboardsController#show as HTML
|
89
|
+
Parameters: {"name"=>"bar"}
|
90
|
+
Completed 500 Internal Server Error in 2ms
|
91
|
+
Processing by Dashing::WidgetsController#show as HTML
|
92
|
+
Parameters: {"name"=>"text"}
|
93
|
+
Completed 200 OK in 4ms (Views: 3.7ms | ActiveRecord: 0.0ms)
|
94
|
+
Processing by Dashing::WidgetsController#show as HTML
|
95
|
+
Completed 500 Internal Server Error in 0ms
|
96
|
+
Processing by Dashing::WidgetsController#show as HTML
|
97
|
+
Parameters: {"name"=>"bar"}
|
98
|
+
Completed 500 Internal Server Error in 2ms
|
99
|
+
Processing by Dashing::WidgetsController#show as HTML
|
100
|
+
Parameters: {"name"=>"foo"}
|
101
|
+
Completed 200 OK in 3ms (Views: 2.1ms | ActiveRecord: 0.0ms)
|
102
|
+
Processing by Dashing::WidgetsController#update as HTML
|
103
|
+
Parameters: {"name"=>"foo"}
|
104
|
+
Completed 200 OK in 5ms (Views: 3.4ms | ActiveRecord: 0.0ms)
|
105
|
+
Processing by Dashing::WidgetsController#update as HTML
|
106
|
+
Completed 500 Internal Server Error in 0ms
|
107
|
+
Processing by Dashing::DashboardsController#index as HTML
|
108
|
+
Completed 200 OK in 14ms (Views: 13.3ms | ActiveRecord: 0.0ms)
|
109
|
+
Processing by Dashing::DashboardsController#show as HTML
|
110
|
+
Parameters: {"name"=>"foo"}
|
111
|
+
Completed 200 OK in 1ms (Views: 0.5ms | ActiveRecord: 0.0ms)
|
112
|
+
Processing by Dashing::DashboardsController#show as HTML
|
113
|
+
Completed 500 Internal Server Error in 0ms
|
114
|
+
Processing by Dashing::DashboardsController#show as HTML
|
115
|
+
Parameters: {"name"=>"bar"}
|
116
|
+
Completed 500 Internal Server Error in 2ms
|
117
|
+
Processing by Dashing::WidgetsController#show as HTML
|
118
|
+
Completed 500 Internal Server Error in 0ms
|
119
|
+
Processing by Dashing::WidgetsController#show as HTML
|
120
|
+
Parameters: {"name"=>"bar"}
|
121
|
+
Completed 500 Internal Server Error in 2ms
|
122
|
+
Processing by Dashing::WidgetsController#show as HTML
|
123
|
+
Parameters: {"name"=>"foo"}
|
124
|
+
Completed 200 OK in 4ms (Views: 3.4ms | ActiveRecord: 0.0ms)
|
125
|
+
Processing by Dashing::WidgetsController#show as HTML
|
126
|
+
Parameters: {"name"=>"text"}
|
127
|
+
Completed 200 OK in 3ms (Views: 2.2ms | ActiveRecord: 0.0ms)
|
128
|
+
Processing by Dashing::WidgetsController#update as HTML
|
129
|
+
Parameters: {"name"=>"foo"}
|
130
|
+
Completed 500 Internal Server Error in 2ms
|
131
|
+
Processing by Dashing::WidgetsController#update as HTML
|
132
|
+
Completed 500 Internal Server Error in 0ms
|
133
|
+
Processing by Dashing::WidgetsController#show as HTML
|
134
|
+
Parameters: {"name"=>"text"}
|
135
|
+
Rendered /Users/pierrelouisgottfrois/Code/dashing-rails/app/views/dashing/default_widgets/text/text.html (0.2ms)
|
136
|
+
Completed 200 OK in 27ms (Views: 26.5ms | ActiveRecord: 0.0ms)
|
137
|
+
Processing by Dashing::WidgetsController#show as HTML
|
138
|
+
Parameters: {"name"=>"foo"}
|
139
|
+
Completed 200 OK in 3ms (Views: 2.2ms | ActiveRecord: 0.0ms)
|
140
|
+
Processing by Dashing::WidgetsController#show as HTML
|
141
|
+
Completed 500 Internal Server Error in 0ms
|
142
|
+
Processing by Dashing::WidgetsController#show as HTML
|
143
|
+
Parameters: {"name"=>"bar"}
|
144
|
+
Completed 500 Internal Server Error in 2ms
|
145
|
+
Processing by Dashing::WidgetsController#update as HTML
|
146
|
+
Parameters: {"name"=>"foo"}
|
147
|
+
Completed 200 OK in 6ms (Views: 4.7ms | ActiveRecord: 0.0ms)
|
148
|
+
Processing by Dashing::WidgetsController#update as HTML
|
149
|
+
Completed 500 Internal Server Error in 0ms
|
150
|
+
Processing by Dashing::DashboardsController#index as HTML
|
151
|
+
Completed 200 OK in 4ms (Views: 3.9ms | ActiveRecord: 0.0ms)
|
152
|
+
Processing by Dashing::DashboardsController#show as HTML
|
153
|
+
Parameters: {"name"=>"foo"}
|
154
|
+
Completed 200 OK in 1ms (Views: 0.5ms | ActiveRecord: 0.0ms)
|
155
|
+
Processing by Dashing::DashboardsController#show as HTML
|
156
|
+
Completed 500 Internal Server Error in 0ms
|
157
|
+
Processing by Dashing::DashboardsController#show as HTML
|
158
|
+
Parameters: {"name"=>"bar"}
|
159
|
+
Completed 500 Internal Server Error in 2ms
|
160
|
+
Processing by Dashing::WidgetsController#show as HTML
|
161
|
+
Completed 500 Internal Server Error in 0ms
|
162
|
+
Processing by Dashing::WidgetsController#show as HTML
|
163
|
+
Parameters: {"name"=>"bar"}
|
164
|
+
Completed 500 Internal Server Error in 8ms
|
165
|
+
Processing by Dashing::WidgetsController#show as HTML
|
166
|
+
Parameters: {"name"=>"foo"}
|
167
|
+
Completed 200 OK in 4ms (Views: 3.2ms | ActiveRecord: 0.0ms)
|
168
|
+
Processing by Dashing::WidgetsController#show as HTML
|
169
|
+
Parameters: {"name"=>"text"}
|
170
|
+
Completed 200 OK in 3ms (Views: 2.2ms | ActiveRecord: 0.0ms)
|
171
|
+
Processing by Dashing::WidgetsController#update as HTML
|
172
|
+
Parameters: {"name"=>"foo"}
|
173
|
+
Completed 200 OK in 3ms (Views: 1.5ms | ActiveRecord: 0.0ms)
|
174
|
+
Processing by Dashing::WidgetsController#update as HTML
|
175
|
+
Completed 500 Internal Server Error in 0ms
|
176
|
+
Processing by Dashing::DashboardsController#index as HTML
|
14
177
|
Completed 200 OK in 5ms (Views: 4.1ms | ActiveRecord: 0.0ms)
|
178
|
+
Processing by Dashing::DashboardsController#show as HTML
|
179
|
+
Parameters: {"name"=>"foo"}
|
180
|
+
Completed 200 OK in 1ms (Views: 0.4ms | ActiveRecord: 0.0ms)
|
181
|
+
Processing by Dashing::DashboardsController#show as HTML
|
182
|
+
Completed 500 Internal Server Error in 0ms
|
183
|
+
Processing by Dashing::DashboardsController#show as HTML
|
184
|
+
Parameters: {"name"=>"bar"}
|
185
|
+
Completed 500 Internal Server Error in 2ms
|
15
186
|
Processing by Dashing::WidgetsController#show as HTML
|
16
187
|
Completed 500 Internal Server Error in 0ms
|
17
188
|
Processing by Dashing::WidgetsController#show as HTML
|
18
189
|
Parameters: {"name"=>"bar"}
|
190
|
+
Completed 500 Internal Server Error in 8ms
|
191
|
+
Processing by Dashing::WidgetsController#show as HTML
|
192
|
+
Parameters: {"name"=>"foo"}
|
193
|
+
Completed 200 OK in 4ms (Views: 3.5ms | ActiveRecord: 0.0ms)
|
194
|
+
Processing by Dashing::WidgetsController#show as HTML
|
195
|
+
Parameters: {"name"=>"text"}
|
196
|
+
Completed 200 OK in 3ms (Views: 2.4ms | ActiveRecord: 0.0ms)
|
197
|
+
Processing by Dashing::WidgetsController#update as HTML
|
198
|
+
Parameters: {"name"=>"foo"}
|
199
|
+
Completed 200 OK in 3ms (Views: 1.7ms | ActiveRecord: 0.0ms)
|
200
|
+
Processing by Dashing::WidgetsController#update as HTML
|
201
|
+
Completed 500 Internal Server Error in 0ms
|
202
|
+
Processing by Dashing::DashboardsController#index as HTML
|
203
|
+
Completed 200 OK in 5ms (Views: 4.6ms | ActiveRecord: 0.0ms)
|
204
|
+
Processing by Dashing::DashboardsController#show as HTML
|
205
|
+
Parameters: {"name"=>"foo"}
|
206
|
+
Completed 200 OK in 1ms (Views: 0.7ms | ActiveRecord: 0.0ms)
|
207
|
+
Processing by Dashing::DashboardsController#show as HTML
|
208
|
+
Completed 500 Internal Server Error in 0ms
|
209
|
+
Processing by Dashing::DashboardsController#show as HTML
|
210
|
+
Parameters: {"name"=>"bar"}
|
211
|
+
Completed 500 Internal Server Error in 2ms
|
212
|
+
Processing by Dashing::DashboardsController#index as HTML
|
213
|
+
Rendered dashing/dashboards/foo.erb within layouts/dashing/dashboard (2.0ms)
|
214
|
+
Completed 200 OK in 11ms (Views: 10.7ms | ActiveRecord: 0.0ms)
|
215
|
+
Processing by Dashing::DashboardsController#show as HTML
|
216
|
+
Parameters: {"name"=>"foo"}
|
217
|
+
Completed 200 OK in 1ms (Views: 0.6ms | ActiveRecord: 0.0ms)
|
218
|
+
Processing by Dashing::DashboardsController#show as HTML
|
219
|
+
Completed 500 Internal Server Error in 0ms
|
220
|
+
Processing by Dashing::DashboardsController#show as HTML
|
221
|
+
Parameters: {"name"=>"bar"}
|
19
222
|
Completed 500 Internal Server Error in 2ms
|
223
|
+
Processing by Dashing::WidgetsController#show as HTML
|
224
|
+
Parameters: {"name"=>"text"}
|
225
|
+
Completed 200 OK in 5ms (Views: 4.2ms | ActiveRecord: 0.0ms)
|
226
|
+
Processing by Dashing::WidgetsController#show as HTML
|
227
|
+
Completed 500 Internal Server Error in 0ms
|
228
|
+
Processing by Dashing::WidgetsController#show as HTML
|
229
|
+
Parameters: {"name"=>"bar"}
|
230
|
+
Completed 500 Internal Server Error in 2ms
|
231
|
+
Processing by Dashing::WidgetsController#show as HTML
|
232
|
+
Parameters: {"name"=>"foo"}
|
233
|
+
Completed 200 OK in 3ms (Views: 2.3ms | ActiveRecord: 0.0ms)
|
234
|
+
Processing by Dashing::WidgetsController#update as HTML
|
235
|
+
Parameters: {"name"=>"foo"}
|
236
|
+
Completed 200 OK in 3ms (Views: 1.8ms | ActiveRecord: 0.0ms)
|
237
|
+
Processing by Dashing::WidgetsController#update as HTML
|
238
|
+
Completed 500 Internal Server Error in 0ms
|
239
|
+
Processing by Dashing::WidgetsController#show as HTML
|
240
|
+
Completed 500 Internal Server Error in 0ms
|
241
|
+
Processing by Dashing::WidgetsController#show as HTML
|
242
|
+
Parameters: {"name"=>"bar"}
|
243
|
+
Completed 500 Internal Server Error in 8ms
|
244
|
+
Processing by Dashing::WidgetsController#show as HTML
|
245
|
+
Parameters: {"name"=>"foo"}
|
246
|
+
Completed 200 OK in 4ms (Views: 3.5ms | ActiveRecord: 0.0ms)
|
20
247
|
Processing by Dashing::WidgetsController#show as HTML
|
21
248
|
Parameters: {"name"=>"text"}
|
22
249
|
Completed 200 OK in 3ms (Views: 2.6ms | ActiveRecord: 0.0ms)
|
23
250
|
Processing by Dashing::WidgetsController#update as HTML
|
24
251
|
Parameters: {"name"=>"foo"}
|
25
|
-
Completed 200 OK in
|
252
|
+
Completed 200 OK in 4ms (Views: 1.7ms | ActiveRecord: 0.0ms)
|
253
|
+
Processing by Dashing::WidgetsController#update as HTML
|
254
|
+
Completed 500 Internal Server Error in 0ms
|
255
|
+
Processing by Dashing::DashboardsController#index as HTML
|
256
|
+
Completed 200 OK in 5ms (Views: 4.4ms | ActiveRecord: 0.0ms)
|
257
|
+
Processing by Dashing::DashboardsController#show as HTML
|
258
|
+
Parameters: {"name"=>"foo"}
|
259
|
+
Completed 200 OK in 1ms (Views: 0.5ms | ActiveRecord: 0.0ms)
|
260
|
+
Processing by Dashing::DashboardsController#show as HTML
|
261
|
+
Completed 500 Internal Server Error in 0ms
|
262
|
+
Processing by Dashing::DashboardsController#show as HTML
|
263
|
+
Parameters: {"name"=>"bar"}
|
264
|
+
Completed 500 Internal Server Error in 24ms
|
265
|
+
Processing by Dashing::WidgetsController#show as HTML
|
266
|
+
Parameters: {"name"=>"foo"}
|
267
|
+
Rendered dashing/widgets/foo/foo.html (0.3ms)
|
268
|
+
Completed 200 OK in 10ms (Views: 9.6ms | ActiveRecord: 0.0ms)
|
269
|
+
Processing by Dashing::WidgetsController#show as HTML
|
270
|
+
Parameters: {"name"=>"text"}
|
271
|
+
Completed 200 OK in 3ms (Views: 2.4ms | ActiveRecord: 0.0ms)
|
272
|
+
Processing by Dashing::WidgetsController#show as HTML
|
273
|
+
Completed 500 Internal Server Error in 0ms
|
274
|
+
Processing by Dashing::WidgetsController#show as HTML
|
275
|
+
Parameters: {"name"=>"bar"}
|
276
|
+
Completed 500 Internal Server Error in 2ms
|
277
|
+
Processing by Dashing::WidgetsController#update as HTML
|
278
|
+
Parameters: {"name"=>"foo"}
|
279
|
+
Completed 200 OK in 3ms (Views: 1.6ms | ActiveRecord: 0.0ms)
|
280
|
+
Processing by Dashing::WidgetsController#update as HTML
|
281
|
+
Completed 500 Internal Server Error in 0ms
|
282
|
+
Processing by Dashing::DashboardsController#index as HTML
|
283
|
+
Completed 200 OK in 5ms (Views: 4.2ms | ActiveRecord: 0.0ms)
|
284
|
+
Processing by Dashing::DashboardsController#show as HTML
|
285
|
+
Parameters: {"name"=>"foo"}
|
286
|
+
Completed 200 OK in 1ms (Views: 0.5ms | ActiveRecord: 0.0ms)
|
287
|
+
Processing by Dashing::DashboardsController#show as HTML
|
288
|
+
Completed 500 Internal Server Error in 0ms
|
289
|
+
Processing by Dashing::DashboardsController#show as HTML
|
290
|
+
Parameters: {"name"=>"bar"}
|
291
|
+
Completed 500 Internal Server Error in 2ms
|
292
|
+
Processing by Dashing::WidgetsController#show as HTML
|
293
|
+
Completed 500 Internal Server Error in 0ms
|
294
|
+
Processing by Dashing::WidgetsController#show as HTML
|
295
|
+
Parameters: {"name"=>"bar"}
|
296
|
+
Completed 500 Internal Server Error in 8ms
|
297
|
+
Processing by Dashing::WidgetsController#show as HTML
|
298
|
+
Parameters: {"name"=>"text"}
|
299
|
+
Completed 200 OK in 4ms (Views: 3.8ms | ActiveRecord: 0.0ms)
|
300
|
+
Processing by Dashing::WidgetsController#show as HTML
|
301
|
+
Parameters: {"name"=>"foo"}
|
302
|
+
Completed 200 OK in 3ms (Views: 2.3ms | ActiveRecord: 0.0ms)
|
303
|
+
Processing by Dashing::WidgetsController#update as HTML
|
304
|
+
Parameters: {"name"=>"foo"}
|
305
|
+
Completed 200 OK in 4ms (Views: 1.6ms | ActiveRecord: 0.0ms)
|
26
306
|
Processing by Dashing::WidgetsController#update as HTML
|
27
307
|
Completed 500 Internal Server Error in 0ms
|
308
|
+
Processing by Dashing::DashboardsController#index as HTML
|
309
|
+
Completed 200 OK in 5ms (Views: 4.5ms | ActiveRecord: 0.0ms)
|
310
|
+
Processing by Dashing::DashboardsController#show as HTML
|
311
|
+
Parameters: {"name"=>"foo"}
|
312
|
+
Completed 200 OK in 1ms (Views: 0.7ms | ActiveRecord: 0.0ms)
|
313
|
+
Processing by Dashing::DashboardsController#show as HTML
|
314
|
+
Completed 500 Internal Server Error in 0ms
|
315
|
+
Processing by Dashing::DashboardsController#show as HTML
|
316
|
+
Parameters: {"name"=>"bar"}
|
317
|
+
Completed 500 Internal Server Error in 2ms
|
318
|
+
Processing by Dashing::WidgetsController#update as HTML
|
319
|
+
Completed 500 Internal Server Error in 0ms
|
320
|
+
Processing by Dashing::WidgetsController#update as HTML
|
321
|
+
Parameters: {"name"=>"foo"}
|
322
|
+
Completed 200 OK in 10ms (Views: 8.6ms | ActiveRecord: 0.0ms)
|
323
|
+
Processing by Dashing::WidgetsController#show as HTML
|
324
|
+
Parameters: {"name"=>"text"}
|
325
|
+
Completed 200 OK in 4ms (Views: 3.8ms | ActiveRecord: 0.0ms)
|
326
|
+
Processing by Dashing::WidgetsController#show as HTML
|
327
|
+
Parameters: {"name"=>"bar"}
|
328
|
+
Completed 500 Internal Server Error in 2ms
|
329
|
+
Processing by Dashing::WidgetsController#show as HTML
|
330
|
+
Completed 500 Internal Server Error in 0ms
|
331
|
+
Processing by Dashing::WidgetsController#show as HTML
|
332
|
+
Parameters: {"name"=>"foo"}
|
333
|
+
Completed 200 OK in 3ms (Views: 2.4ms | ActiveRecord: 0.0ms)
|
334
|
+
Processing by Dashing::DashboardsController#show as HTML
|
335
|
+
Parameters: {"name"=>"bar"}
|
336
|
+
Completed 500 Internal Server Error in 2ms
|
337
|
+
Processing by Dashing::DashboardsController#show as HTML
|
338
|
+
Completed 500 Internal Server Error in 0ms
|
339
|
+
Processing by Dashing::DashboardsController#show as HTML
|
340
|
+
Parameters: {"name"=>"foo"}
|
341
|
+
Completed 200 OK in 27ms (Views: 26.4ms | ActiveRecord: 0.0ms)
|
342
|
+
Processing by Dashing::DashboardsController#index as HTML
|
343
|
+
Completed 200 OK in 1ms (Views: 0.6ms | ActiveRecord: 0.0ms)
|
344
|
+
Processing by Dashing::WidgetsController#show as HTML
|
345
|
+
Completed 500 Internal Server Error in 0ms
|
346
|
+
Processing by Dashing::WidgetsController#show as HTML
|
347
|
+
Parameters: {"name"=>"bar"}
|
348
|
+
Completed 500 Internal Server Error in 30ms
|
349
|
+
Processing by Dashing::WidgetsController#show as HTML
|
350
|
+
Parameters: {"name"=>"foo"}
|
351
|
+
Completed 200 OK in 4ms (Views: 3.8ms | ActiveRecord: 0.0ms)
|
352
|
+
Processing by Dashing::WidgetsController#show as HTML
|
353
|
+
Parameters: {"name"=>"text"}
|
354
|
+
Completed 200 OK in 3ms (Views: 2.6ms | ActiveRecord: 0.0ms)
|
355
|
+
Processing by Dashing::WidgetsController#update as HTML
|
356
|
+
Parameters: {"name"=>"foo"}
|
357
|
+
Completed 200 OK in 4ms (Views: 2.1ms | ActiveRecord: 0.0ms)
|
358
|
+
Processing by Dashing::WidgetsController#update as HTML
|
359
|
+
Completed 500 Internal Server Error in 0ms
|
360
|
+
Processing by Dashing::DashboardsController#index as HTML
|
361
|
+
Completed 200 OK in 6ms (Views: 4.9ms | ActiveRecord: 0.0ms)
|
362
|
+
Processing by Dashing::DashboardsController#show as HTML
|
363
|
+
Parameters: {"name"=>"foo"}
|
364
|
+
Completed 200 OK in 1ms (Views: 0.7ms | ActiveRecord: 0.0ms)
|
365
|
+
Processing by Dashing::DashboardsController#show as HTML
|
366
|
+
Completed 500 Internal Server Error in 0ms
|
367
|
+
Processing by Dashing::DashboardsController#show as HTML
|
368
|
+
Parameters: {"name"=>"bar"}
|
369
|
+
Completed 500 Internal Server Error in 2ms
|
370
|
+
Processing by Dashing::WidgetsController#show as HTML
|
371
|
+
Parameters: {"name"=>"text"}
|
372
|
+
Completed 200 OK in 12ms (Views: 11.1ms | ActiveRecord: 0.0ms)
|
373
|
+
Processing by Dashing::WidgetsController#show as HTML
|
374
|
+
Parameters: {"name"=>"foo"}
|
375
|
+
Completed 200 OK in 3ms (Views: 2.4ms | ActiveRecord: 0.0ms)
|
376
|
+
Processing by Dashing::WidgetsController#show as HTML
|
377
|
+
Completed 500 Internal Server Error in 0ms
|
378
|
+
Processing by Dashing::WidgetsController#show as HTML
|
379
|
+
Parameters: {"name"=>"bar"}
|
380
|
+
Completed 500 Internal Server Error in 2ms
|
381
|
+
Processing by Dashing::WidgetsController#update as HTML
|
382
|
+
Parameters: {"name"=>"foo"}
|
383
|
+
Completed 200 OK in 4ms (Views: 1.7ms | ActiveRecord: 0.0ms)
|
384
|
+
Processing by Dashing::WidgetsController#update as HTML
|
385
|
+
Completed 500 Internal Server Error in 0ms
|
386
|
+
Processing by Dashing::DashboardsController#index as HTML
|
387
|
+
Completed 200 OK in 28ms (Views: 27.7ms | ActiveRecord: 0.0ms)
|
388
|
+
Processing by Dashing::DashboardsController#show as HTML
|
389
|
+
Parameters: {"name"=>"foo"}
|
390
|
+
Completed 200 OK in 1ms (Views: 0.7ms | ActiveRecord: 0.0ms)
|
391
|
+
Processing by Dashing::DashboardsController#show as HTML
|
392
|
+
Completed 500 Internal Server Error in 0ms
|
393
|
+
Processing by Dashing::DashboardsController#show as HTML
|
394
|
+
Parameters: {"name"=>"bar"}
|
395
|
+
Completed 500 Internal Server Error in 2ms
|
@@ -4,40 +4,48 @@ describe Dashing::Configuration do
|
|
4
4
|
|
5
5
|
let(:instance) { Dashing::Configuration.new }
|
6
6
|
|
7
|
-
it { expect(instance).to
|
8
|
-
it { expect(instance).to
|
9
|
-
it { expect(instance).to
|
10
|
-
it { expect(instance).to
|
11
|
-
it { expect(instance).to
|
12
|
-
it { expect(instance).to
|
13
|
-
it { expect(instance).to
|
14
|
-
it { expect(instance).to
|
15
|
-
it { expect(instance).to
|
16
|
-
it { expect(instance).to
|
17
|
-
it { expect(instance).to
|
18
|
-
|
19
|
-
it { expect(instance).to
|
20
|
-
it { expect(instance).to
|
21
|
-
|
22
|
-
it { expect(instance).to
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
7
|
+
it { expect(instance.scheduler).to be_a(::Rufus::Scheduler) }
|
8
|
+
it { expect(instance.redis_host).to eq('127.0.0.1') }
|
9
|
+
it { expect(instance.redis_port).to eq('6379') }
|
10
|
+
it { expect(instance.redis_password).to be_nil }
|
11
|
+
it { expect(instance.redis_namespace).to eq('dashing_events') }
|
12
|
+
it { expect(instance.view_path).to eq('app/views/dashing/') }
|
13
|
+
it { expect(instance.jobs_path).to eq('app/jobs/') }
|
14
|
+
it { expect(instance.engine_path).to eq('/dashing') }
|
15
|
+
it { expect(instance.dashboards_path).to eq('app/views/dashing/dashboards/') }
|
16
|
+
it { expect(instance.dashboard_layout).to eq('dashing/dashboard') }
|
17
|
+
it { expect(instance.widgets_path).to eq('app/views/dashing/widgets/') }
|
18
|
+
it { expect(instance.default_dashboard).to be_nil }
|
19
|
+
it { expect(instance.auth_token).to be_nil }
|
20
|
+
it { expect(instance.devise_allowed_models).to be_empty }
|
21
|
+
|
22
|
+
it { expect(instance.redis).to be_a(::Redis) }
|
23
|
+
|
24
|
+
describe '#request_thread_count' do
|
25
|
+
|
26
|
+
context 'when puma respond to cli_config' do
|
27
|
+
|
28
|
+
let(:value) { 2 }
|
29
|
+
|
30
|
+
before do
|
31
|
+
Object.const_set('Puma', Class.new)
|
32
|
+
::Puma.stub_chain(:cli_config, :options).and_return(max_threads: value)
|
33
|
+
end
|
34
|
+
|
35
|
+
after do
|
36
|
+
Object.send(:remove_const, 'Puma') if defined?(Puma)
|
37
|
+
end
|
38
|
+
|
39
|
+
it { expect(instance.send(:request_thread_count)).to eq(value) }
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'by default' do
|
44
|
+
|
45
|
+
it { expect(instance.send(:request_thread_count)).to eq(5) }
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
42
50
|
|
43
51
|
end
|
data/spec/lib/dashing_spec.rb
CHANGED
@@ -18,9 +18,21 @@ describe Dashing do
|
|
18
18
|
Dashing.stub(:config).and_return(:configuration)
|
19
19
|
end
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
context 'when block given' do
|
22
|
+
|
23
|
+
it 'yields configuration' do
|
24
|
+
Dashing.should_receive(:configure).and_yield(configuration)
|
25
|
+
Dashing.configure {|config|}
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'when no block given' do
|
31
|
+
|
32
|
+
it 'does nothing' do
|
33
|
+
Dashing.configure.should be_nil
|
34
|
+
end
|
35
|
+
|
24
36
|
end
|
25
37
|
|
26
38
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
require 'coveralls'
|
3
|
+
Coveralls.wear!
|
4
|
+
|
1
5
|
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
2
6
|
ENV['RAILS_ENV'] ||= 'test'
|
3
7
|
ENGINE_RAILS_ROOT = File.join(File.dirname(__FILE__), '../')
|
@@ -34,7 +38,7 @@ RSpec.configure do |config|
|
|
34
38
|
# If true, the base class of anonymous controllers will be inferred
|
35
39
|
# automatically. This will be the default behavior in future versions of
|
36
40
|
# rspec-rails.
|
37
|
-
config.infer_base_class_for_anonymous_controllers =
|
41
|
+
config.infer_base_class_for_anonymous_controllers = true
|
38
42
|
|
39
43
|
# Run specs in random order to surface order dependencies. If you find an
|
40
44
|
# order dependency and want to debug it, you can fix the order by providing
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dashing-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-10-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ~>
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: 3.0
|
37
|
+
version: '3.0'
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,7 +42,7 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: 3.0
|
45
|
+
version: '3.0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: coffee-script
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 2.2
|
53
|
+
version: '2.2'
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.2
|
61
|
+
version: '2.2'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: rufus-scheduler
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
requirements:
|
67
67
|
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
69
|
+
version: '3.0'
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,7 +74,7 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
77
|
+
version: '3.0'
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: redis
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,7 +82,7 @@ dependencies:
|
|
82
82
|
requirements:
|
83
83
|
- - ~>
|
84
84
|
- !ruby/object:Gem::Version
|
85
|
-
version: 3.0
|
85
|
+
version: '3.0'
|
86
86
|
type: :runtime
|
87
87
|
prerelease: false
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -90,7 +90,23 @@ dependencies:
|
|
90
90
|
requirements:
|
91
91
|
- - ~>
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: 3.0
|
93
|
+
version: '3.0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: connection_pool
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '1.1'
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.1'
|
94
110
|
- !ruby/object:Gem::Dependency
|
95
111
|
name: rspec-rails
|
96
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,7 +114,7 @@ dependencies:
|
|
98
114
|
requirements:
|
99
115
|
- - ~>
|
100
116
|
- !ruby/object:Gem::Version
|
101
|
-
version: '2.
|
117
|
+
version: '2.14'
|
102
118
|
type: :development
|
103
119
|
prerelease: false
|
104
120
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -106,7 +122,7 @@ dependencies:
|
|
106
122
|
requirements:
|
107
123
|
- - ~>
|
108
124
|
- !ruby/object:Gem::Version
|
109
|
-
version: '2.
|
125
|
+
version: '2.14'
|
110
126
|
- !ruby/object:Gem::Dependency
|
111
127
|
name: pry-rails
|
112
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,7 +130,7 @@ dependencies:
|
|
114
130
|
requirements:
|
115
131
|
- - ~>
|
116
132
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.
|
133
|
+
version: '0.3'
|
118
134
|
type: :development
|
119
135
|
prerelease: false
|
120
136
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -122,7 +138,7 @@ dependencies:
|
|
122
138
|
requirements:
|
123
139
|
- - ~>
|
124
140
|
- !ruby/object:Gem::Version
|
125
|
-
version: 0.
|
141
|
+
version: '0.3'
|
126
142
|
- !ruby/object:Gem::Dependency
|
127
143
|
name: better_errors
|
128
144
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,7 +146,7 @@ dependencies:
|
|
130
146
|
requirements:
|
131
147
|
- - ~>
|
132
148
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
149
|
+
version: '1.0'
|
134
150
|
type: :development
|
135
151
|
prerelease: false
|
136
152
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -138,7 +154,7 @@ dependencies:
|
|
138
154
|
requirements:
|
139
155
|
- - ~>
|
140
156
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
157
|
+
version: '1.0'
|
142
158
|
description: The exceptionally handsome dashboard framework for Rails.
|
143
159
|
email:
|
144
160
|
- pierrelouis.gottfrois@gmail.com
|
@@ -222,6 +238,7 @@ files:
|
|
222
238
|
- MIT-LICENSE
|
223
239
|
- Rakefile
|
224
240
|
- README.md
|
241
|
+
- spec/controllers/dashing/application_controller_spec.rb
|
225
242
|
- spec/controllers/dashing/dashboards_controller_spec.rb
|
226
243
|
- spec/controllers/dashing/events_controller_spec.rb
|
227
244
|
- spec/controllers/dashing/widgets_controller_spec.rb
|
@@ -280,7 +297,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
280
297
|
version: '0'
|
281
298
|
segments:
|
282
299
|
- 0
|
283
|
-
hash:
|
300
|
+
hash: -294757915514747581
|
284
301
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
285
302
|
none: false
|
286
303
|
requirements:
|
@@ -289,7 +306,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
289
306
|
version: '0'
|
290
307
|
segments:
|
291
308
|
- 0
|
292
|
-
hash:
|
309
|
+
hash: -294757915514747581
|
293
310
|
requirements: []
|
294
311
|
rubyforge_project:
|
295
312
|
rubygems_version: 1.8.25
|
@@ -297,6 +314,7 @@ signing_key:
|
|
297
314
|
specification_version: 3
|
298
315
|
summary: The exceptionally handsome dashboard framework for Rails.
|
299
316
|
test_files:
|
317
|
+
- spec/controllers/dashing/application_controller_spec.rb
|
300
318
|
- spec/controllers/dashing/dashboards_controller_spec.rb
|
301
319
|
- spec/controllers/dashing/events_controller_spec.rb
|
302
320
|
- spec/controllers/dashing/widgets_controller_spec.rb
|