Module: Sprockets::Resolve

Defined in:
lib/volt/server/template_handlers/sprockets_component_handler.rb

Instance Method Summary collapse

Instance Method Details

#path_matches(load_path, logical_name, logical_basename) ⇒ Object



139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# 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