Sha256: 1889baf7ebd52fd6212a0d6263185771f16f5323cfbf6ce63022c0bde3c12b52

Contents?: true

Size: 1.76 KB

Versions: 6

Compression:

Stored size: 1.76 KB

Contents

require 'rufus-scheduler'
require 'redis'
require 'connection_pool'

module Dashing
  class Configuration

    attr_reader   :redis
    attr_accessor :redis_host, :redis_port, :redis_password, :redis_namespace
    attr_accessor :auth_token, :devise_allowed_models
    attr_accessor :jobs_path
    attr_accessor :default_dashboard, :dashboards_views_path, :dashboard_layout_path
    attr_accessor :widgets_views_path, :widgets_js_path, :widgets_css_path
    attr_accessor :engine_path, :scheduler

    def initialize
      @engine_path            = '/dashing'
      @scheduler              = ::Rufus::Scheduler.new

      # Redis
      @redis_host             = '127.0.0.1'
      @redis_port             = '6379'
      @redis_password         = nil
      @redis_namespace        = 'dashing_events'

      # Authorization
      @auth_token             = nil
      @devise_allowed_models  = []

      # Jobs
      @jobs_path              = 'app/jobs/'

      # Dashboards
      @default_dashboard      = nil
      @dashboards_views_path  = 'app/views/dashing/dashboards/'
      @dashboard_layout_path  = 'dashing/dashboard'

      # Widgets
      @widgets_views_path     = 'app/views/dashing/widgets/'
      @widgets_js_path        = 'app/assets/javascripts/dashing'
      @widgets_css_path       = 'app/assets/stylesheets/dashing'
    end

    def redis
      @redis ||= ::ConnectionPool::Wrapper.new(size: request_thread_count, timeout: 3) { new_redis_connection }
    end

    def new_redis_connection
      ::Redis.new(host: redis_host, port: redis_port, password: redis_password)
    end

    private

    def request_thread_count
      if defined?(::Puma) && ::Puma.respond_to?(:cli_config)
        ::Puma.cli_config.options.fetch(:max_threads, 5).to_i
      else
        5
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
dashing-rails-2.2.0 lib/dashing/configuration.rb
dashing-rails-2.1.1 lib/dashing/configuration.rb
dashing-rails-2.1.0 lib/dashing/configuration.rb
dashing-rails-2.0.2 lib/dashing/configuration.rb
dashing-rails-2.0.1 lib/dashing/configuration.rb
dashing-rails-2.0.0 lib/dashing/configuration.rb