Sha256: f30d82cf9b85cf25eb7d4cc5e68f67d8adde844c048275b4b19ea20da8979061

Contents?: true

Size: 1.56 KB

Versions: 1

Compression:

Stored size: 1.56 KB

Contents

# frozen_string_literal: true

require "pathname"
require "dassets/cache"
require "dassets/file_store"
require "dassets/source"

module Dassets; end
class Dassets::Config
  attr_reader :sources, :combinations

  def initialize
    super
    self.reset

    @content_cache     = Dassets::NoCache.new
    @fingerprint_cache = Dassets::NoCache.new
    @file_store        = Dassets::NullFileStore.new
  end

  def reset
    @sources      = []
    @combinations = Hash.new { |h, k| [k] } # digest pass-thru if none defined
    @file_store   = Dassets::NullFileStore.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 =
        if value.kind_of?(Dassets::FileStore)
          value
        else
          Dassets::FileStore.new(value)
        end
    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 << Dassets::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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dassets-0.15.0 lib/dassets/config.rb