Sha256: f6603b5bcac61725ca9f4e41c06a61262db43f7570da257bffe5ae3de2df6c17

Contents?: true

Size: 1.47 KB

Versions: 2

Compression:

Stored size: 1.47 KB

Contents

require 'pathname'
require 'dassets/cache'
require 'dassets/file_store'
require 'dassets/source'

module Dassets

  class Config

    attr_reader :sources, :combinations

    def initialize
      super
      @sources           = []
      @combinations      = Hash.new{ |h, k| [k] } # digest pass-thru if none defined
      @content_cache     = Dassets::Cache::NoCache.new
      @fingerprint_cache = Dassets::Cache::NoCache.new
      @file_store        = FileStore::NullStore.new
    end

    def base_url(value = nil)
      set_base_url(value) if !value.nil?
      @base_url
    end

    def set_base_url(value)
      @base_url = value
    end

    def file_store(value = nil)
      if !value.nil?
        @file_store = (value.kind_of?(FileStore) ? value : FileStore.new(value))
      end
      @file_store
    end

    def content_cache(cache = nil)
      @content_cache = cache if !cache.nil?
      @content_cache
    end

    def fingerprint_cache(cache = nil)
      @fingerprint_cache = cache if !cache.nil?
      @fingerprint_cache
    end

    def source(path, &block)
      @sources << Source.new(path).tap{ |s| block.call(s) if block }
    end

    def combination(key_digest_path, value_digest_paths)
      @combinations[key_digest_path.to_s] = [*value_digest_paths]
    end

    def combination?(key_digest_path)
      # a digest path is only considered a combination is it is not the default
      # pass-thru above
      @combinations[key_digest_path.to_s] != [key_digest_path]
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dassets-0.14.1 lib/dassets/config.rb
dassets-0.14.0 lib/dassets/config.rb