Sha256: db3886303aa3a14b27483d7577b566c064c6ab8363b05fb5f09bb04d77870652

Contents?: true

Size: 1.64 KB

Versions: 1

Compression:

Stored size: 1.64 KB

Contents

# encoding: utf-8

require 'classy_assets'

module Rack
  class ClassyAssets < Sinatra::Base
    def initialize(app)
      super(app) 
    end
    
    set :sprockets, ::ClassyAssets::Configuration.sprockets
    set :asset_prefix, ::ClassyAssets::Configuration.asset_prefix

    get "/#{settings.asset_prefix}/*/:script.js" do |path, script|
      content_type("application/javascript")
      settings.sprockets["#{path}/#{script}.js"]
    end

    get "/#{settings.asset_prefix}/*/:stylesheet.css" do |path, stylesheet|
      content_type("text/css")
      settings.sprockets["#{stylesheet}.css"]
    end

    %w(jpeg jpg png gif webp).each do |format|
      get "/#{settings.asset_prefix}/*/:image.#{format}" do |path, image|
        content_type("image/#{(format == 'jpg') ? 'jpeg' : format}")
        settings.sprockets["#{image}.#{format}"]
      end
    end

    get "/#{settings.asset_prefix}/*/:font.ttf" do |path, font|
      content_type('application/x-font-truetype')
      settings.sprockets["#{font}.ttf"]
    end

    get "/#{settings.asset_prefix}/*/:font.eot" do |path, font|
      content_type('application/vnd.ms-fontobject')
      settings.sprockets["#{font}.eot"]
    end

    get "/#{settings.asset_prefix}/*/:font.svg" do |path, font|
      content_type('image/svg+xml')
      settings.sprockets["#{font}.svg"]
    end

    get "/#{settings.asset_prefix}/*/:font.woff" do |path, font|
      content_type('application/x-font-woff')
      settings.sprockets["#{font}.woff"]
    end

    get "/#{settings.asset_prefix}/*/:font.otf" do |path, font|
      content_type('application/x-font-opentype')
      settings.sprockets["#{font}.otf"]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
classy_assets-0.2.0 lib/rack/classy_assets.rb