class Pakyow::Application::Actions::Assets::Process
Pipeline Action that processes assets at request time.
This is intended for development use, please don't use it in production. Instead, precompile assets into the public directory.
Public Instance Methods
call(connection)
click to toggle source
# File lib/pakyow/application/actions/assets/process.rb, line 13 def call(connection) if connection.app.config.assets.process # TODO: can we short circuit if the request path doesn't match the connection? if asset = find_asset(connection) || find_pack(connection) || find_asset_map(connection) || find_pack_map(connection) connection.set_header("content-type", asset.mime_type) connection.body = asset connection.halt end end end
Private Instance Methods
find_asset(connection, path = connection.path)
click to toggle source
# File lib/pakyow/application/actions/assets/process.rb, line 26 def find_asset(connection, path = connection.path) connection.app.state(:asset).find { |asset| asset.public_path == path } end
find_asset_map(connection)
click to toggle source
# File lib/pakyow/application/actions/assets/process.rb, line 38 def find_asset_map(connection) if wants_map?(connection) if (asset = find_asset(connection, unmapped(connection))) && asset.source_map? asset.source_map end end end
find_pack(connection, path = connection.path)
click to toggle source
# File lib/pakyow/application/actions/assets/process.rb, line 32 def find_pack(connection, path = connection.path) connection.app.state(:pack).lazy.map { |pack| pack.packed(path) }.find { |packed| !packed.nil? && packed.any? } end
find_pack_map(connection)
click to toggle source
# File lib/pakyow/application/actions/assets/process.rb, line 46 def find_pack_map(connection) if (pack = find_pack(connection, unmapped(connection))) && pack.source_map? pack.source_map else nil end end
unmapped(connection)
click to toggle source
# File lib/pakyow/application/actions/assets/process.rb, line 58 def unmapped(connection) File.join(File.dirname(connection.path), File.basename(connection.path, ".map")) end
wants_map?(connection)
click to toggle source
# File lib/pakyow/application/actions/assets/process.rb, line 54 def wants_map?(connection) connection.path.end_with?(".map") end