module IziLightup::Asset

Public Class Methods

[](name) click to toggle source
# File lib/izi_lightup/asset.rb, line 6
def [](name)
  return cache[name] if cache.key?(name)

  info = ::IziLightup::AssetInfo.new(name, environment: environment, manifest: manifest)
  # clear info if asset not exist
  info = nil unless info.exist?

  cache[name] = info
end

Private Class Methods

app() click to toggle source
# File lib/izi_lightup/asset.rb, line 32
def app
  Rails.application
end
assets_output_dir() click to toggle source
# File lib/izi_lightup/asset.rb, line 51
def assets_output_dir
  @assets_output_dir ||= Rails.root.join('public', assets_prefix)
end
assets_prefix() click to toggle source
# File lib/izi_lightup/asset.rb, line 55
def assets_prefix
  app.config.assets.prefix.presence&.gsub(%r{^/}, '') || 'assets'
end
cache() click to toggle source
# File lib/izi_lightup/asset.rb, line 18
def cache
  @cache ||= {}
end
environment() click to toggle source
# File lib/izi_lightup/asset.rb, line 40
def environment
  @environment ||= app.assets if environment?
end
environment?() click to toggle source
# File lib/izi_lightup/asset.rb, line 22
def environment?
  app.assets.is_a?(::Sprockets::Environment) ||
    app.assets.is_a?(::Sprockets::CachedEnvironment)
end
find_or_build_assets_manifest() click to toggle source
# File lib/izi_lightup/asset.rb, line 44
def find_or_build_assets_manifest
  return app.assets_manifest if manifest?

  env = app.try(:assets).presence || ::Sprockets::Environment.new(Rails.root)
  ::Sprockets::Manifest.new(env, assets_output_dir)
end
manifest() click to toggle source
# File lib/izi_lightup/asset.rb, line 36
def manifest
  @manifest ||= find_or_build_assets_manifest
end
manifest?() click to toggle source
# File lib/izi_lightup/asset.rb, line 27
def manifest?
  app.respond_to?(:assets_manifest) &&
    app.assets_manifest.is_a?(::Sprockets::Manifest)
end