dashing-rails 1.0.1 → 1.0.2
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.
- 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 | 
             
            [](https://codeclimate.com/github/gottfrois/dashing-rails)
         | 
| 4 | 
            +
            [](https://coveralls.io/r/gottfrois/dashing-rails?branch=master)
         | 
| 5 | 
            +
            [](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
         |