module Sprockets::Resolve

Public Instance Methods

path_matches(load_path, logical_name, logical_basename) click to toggle source
# File lib/volt/server/template_handlers/sprockets_component_handler.rb, line 139
def path_matches(load_path, logical_name, logical_basename)

  dirname    = File.dirname(File.join(load_path, logical_name))
  candidates = dirname_matches(dirname, logical_basename)
  deps       = file_digest_dependency_set(dirname)

  if load_path == "#{Volt.root}/app"
    match = logical_name.match(/^components\/([^\/]+)$/)
    if match && (component_name = match[1])
      return [["#{Volt.root}/app/components/#{component_name}.rb", "application/javascript"]], deps
    end
  end

  result = resolve_alternates(load_path, logical_name)
  result[0].each do |fn|
    candidates << [fn, parse_path_extnames(fn)[1]]
  end
  deps.merge(result[1])

  dirname = File.join(load_path, logical_name)
  if directory? dirname
    result = dirname_matches(dirname, "index")
    candidates.concat(result)
  end

  deps.merge(file_digest_dependency_set(dirname))

  return candidates.select { |fn, _| file?(fn) }, deps
end