Sha256: 1cfa470a58a983035533b106aed7914b27e924b2a13b5f6cc5a3b1b7816e4fc6

Contents?: true

Size: 1.56 KB

Versions: 3

Compression:

Stored size: 1.56 KB

Contents

# encoding: utf-8

require 'classy_assets'

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

    get "/#{settings.asset_prefix}/*.js" do |script|
      content_type("application/javascript")
      @sprockets["#{script}.js"] || halt(404)
    end

    get "/#{settings.asset_prefix}/*.css" do |stylesheet|
      content_type("text/css")
      @sprockets["#{stylesheet}.css"] || halt(404)
    end

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

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

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

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

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

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
classy_assets-0.3.2 lib/rack/classy_assets.rb
classy_assets-0.3.1 lib/rack/classy_assets.rb
classy_assets-0.3.0 lib/rack/classy_assets.rb