class AssetsServer

AssetsServer

Usage

AssetsServer.new(

root: './assets',
directories: %w{javascripts stylesheets images templates fonts}
paths: ['javascripts','stylesheets','vendor/javascripts','vendor/stylesheets'],
compass: true,

)

Constants

OptionError
VERSION

Public Class Methods

new(options={}) click to toggle source
# File lib/assets_server.rb, line 19
def initialize(options={})
  @root = options.fetch(:root){ Bundler.root if defined? Bundler }
  @directories = options.fetch(:directories){ %w{javascripts stylesheets images} }
  @paths = options.fetch(:paths){
    @directories + @directories.map{|d| "vendor/#{d}" }
  }
  @compass = options.fetch(:compass){ false }
  use_compass! if compass?
end

Public Instance Methods

call(env) click to toggle source
# File lib/assets_server.rb, line 29
def call(env)
  sprockets_environment.call(env)
end
compass?() click to toggle source
# File lib/assets_server.rb, line 41
def compass?
  !!@compass
end
paths() click to toggle source
# File lib/assets_server.rb, line 37
def paths
  @paths or raise OptionError, "paths option not set for #{self.class}"
end
root() click to toggle source
# File lib/assets_server.rb, line 33
def root
  @root or raise OptionError, "root option not set for #{self.class}"
end
sprockets_environment() click to toggle source
# File lib/assets_server.rb, line 45
def sprockets_environment
  return @sprockets_environment if defined? @sprockets_environment
  @sprockets_environment = Sprockets::Environment.new(root)
  paths.each do |path|
    @sprockets_environment.append_path path
  end
  @sprockets_environment
end
use_compass!() click to toggle source
# File lib/assets_server.rb, line 54
def use_compass!
  require "compass"
  sprockets_environment.append_path Compass::Frameworks['compass'].path+'/stylesheets'
end