class Catalyst::Manifest

Constants

AssetMissing
DuplicateAssetReference

Public Class Methods

new() click to toggle source
# File lib/catalyst/manifest.rb, line 21
def initialize
  if Catalyst.development?
    @manifest = {}
  else
    if Catalyst.config.manifest_path.nil?
      raise 'Missing "manifest_path" configuration.'
    end

    @manifest = JSON.parse(File.read(Catalyst.config.manifest_path))
  end
end

Public Instance Methods

[](path) click to toggle source
# File lib/catalyst/manifest.rb, line 43
def [](path)
  path = path.to_s.gsub(/\A\/+/, '')

  if Catalyst.development?
    dev_server_host = Catalyst.config.dev_server_host
    dev_server_port = Catalyst.config.dev_server_port

    if dev_server_host.nil?
      raise 'Missing "dev_server_host" configuration.'
    end

    if dev_server_port.nil?
      raise 'Missing "dev_server_port" configuration.'
    end

    return "http://#{dev_server_host}:#{dev_server_port}/#{path}"
  else
    if @manifest.key?(path)
      return @manifest[path]
    else
      raise AssetMissing, "Couldn't find an asset for path: #{path}"
    end
  end
end
has?(path) click to toggle source
# File lib/catalyst/manifest.rb, line 33
def has?(path)
  path = path.to_s.gsub(/\A\/+/, '')

  if Catalyst.development?
    false
  else
    @manifest.key?(path)
  end
end