Sha256: 971eda7b76511b74b74d4cb603327c3e06c32969eb348a55796a6d157bf94547

Contents?: true

Size: 1.39 KB

Versions: 2

Compression:

Stored size: 1.39 KB

Contents

require 'pathname'
require 'active_support/core_ext/hash'
require 'active_support/core_ext/string'

module RailsIdle
  autoload :Storage,      'rails-idle/storage'
  autoload :Collector,    'rails-idle/collector'
  autoload :TreeBuilder,  'rails-idle/tree_builder'
  autoload :Report,       'rails-idle/report'
  autoload :Web,          'rails-idle/web'
  
  DEFAULTS = {
    collectors: RailsIdle::Collector.list,
    reset: false,
    cache: {
      :views => Pathname.new('/tmp/cache/rails-idle/views.cache'),
    },
  }
  
  class << self
    
    def options
      @options ||= DEFAULTS.dup
    end

    def options=(opts)
      @options = opts
    end
    
    def configure
      yield self
    end
    
    def collectors
      options[:collectors]
    end
    
    def collectors=(list)
      options[:collectors] = list.map(&:to_sym).select{|c| DEFAULTS[:collectors].include? c}
    end
    
    def cache=(hash)
      hash.select{|key, _| DEFAULTS[:collectors].include? key}
      _cache = hash.symbolize_keys.select{|c, _| DEFAULTS[:collectors].include? c}
      options[:cache].merge!(_cache)
    end
    
    def reset?
      options[:reset]
    end
    
    def reset=(value)
      options[:reset] = value
    end

    def stylesheets
      @stylesheets ||= []
    end
    
    def stylesheets=(sheets = [])
      @stylesheets = sheets
    end
    
  end
  
end

require 'rails-idle/railtie' if defined?(::Rails)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails-idle-0.0.10 lib/rails-idle.rb
rails-idle-0.0.9 lib/rails-idle.rb