module DynamicAssets::Config

Constants

CONFIG_VARS

Public Instance Methods

asset_reference_for_name(type, name) click to toggle source
# File lib/dynamic_assets/config.rb, line 35
def asset_reference_for_name(type, name)
  assets_hash[type].if_present { |gs| gs[:by_name][name] }
end
asset_references_for_group_key(type, group_key) click to toggle source

Asset Queries

# File lib/dynamic_assets/config.rb, line 31
def asset_references_for_group_key(type, group_key)
  assets_hash[type].if_present { |gs| gs[:by_group][group_key.to_sym] }
end
cache?() click to toggle source
# File lib/dynamic_assets/config.rb, line 24
def cache?
  @cache.nil? ? true : @cache
end
combine_asset_groups?() click to toggle source

Configuration Queries

# File lib/dynamic_assets/config.rb, line 16
def combine_asset_groups?
  @combine_asset_groups.nil? ? true : @combine_asset_groups
end
init(yml_path) click to toggle source
# File lib/dynamic_assets/config.rb, line 8
def init(yml_path)
  @yml_path = yml_path
  assets_hash.present?
end
minify?() click to toggle source
# File lib/dynamic_assets/config.rb, line 20
def minify?
  @minify.nil? ? true : @minify
end

Protected Instance Methods

assets_hash() click to toggle source
# File lib/dynamic_assets/config.rb, line 66
def assets_hash
  return @assets if @assets

  assets = {}
  yml.each do |key, values|
    next if key == "config" || key.blank?

    type = key.to_sym
    groups = values

    typed_assets = assets[type] = {
      :by_name => {},
      :by_group => {}
    }

    groups.map do |group_hash|
      group_key = group_hash.keys.first
      group_names = group_hash.values.first

      assets_in_group = if combine_asset_groups?
        # Create a single AssetReference for the group
        name = group_key
        a = typed_assets[:by_name][name] ||=
          Reference.new_for_type(type, :name => name, :member_names => group_names)
        [a]
      else
        # Create an AssetReference for each member of the group
        group_names.map do |name|
          typed_assets[:by_name][name] ||= Reference.new_for_type type, :name => name
        end
      end

      typed_assets[:by_group][group_key.to_sym] = assets_in_group
    end
  end

  @assets = assets
end
configure(values) click to toggle source
# File lib/dynamic_assets/config.rb, line 55
def configure(values)
  values.each do |env_string, config_values|
    next unless env_string.split(/ *, */).include? Rails.env

    config_values.each do |name, value|
      raise "unknown config variable: #{name}" unless CONFIG_VARS.include? name
      instance_variable_set "@#{name}", value
    end
  end
end
yml() click to toggle source
# File lib/dynamic_assets/config.rb, line 42
def yml
  return @yml if @yml

  if File.exists? @yml_path
    @yml = YAML.load_file @yml_path
    @yml.delete("config").if_present { |c| configure c }
  else
    @yml = {}
  end

  @yml
end