Module: Sinatra::AssetSnack

Defined in:
lib/sinatra/asset_snack/helpers.rb,
lib/sinatra/asset_snack/version.rb,
lib/sinatra/asset_snack/precompile.rb,
lib/sinatra/asset_snack/asset_snack.rb,
lib/sinatra/asset_snack/configuration.rb,
lib/sinatra/asset_snack/compilers/sass_compiler.rb,
lib/sinatra/asset_snack/compilers/asset_compiler.rb,
lib/sinatra/asset_snack/compilers/coffee_script_compiler.rb

Defined Under Namespace

Modules: ClassMethods, Compilers, Helpers, InstanceMethods Classes: Configuration

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.appObject (readonly)

Returns the value of attribute app.



4
5
6
# File 'lib/sinatra/asset_snack/asset_snack.rb', line 4

def app
  @app
end

.compilersObject (readonly)

Returns the value of attribute compilers.



4
5
6
# File 'lib/sinatra/asset_snack/asset_snack.rb', line 4

def compilers
  @compilers
end

.configurationObject (readonly)

Returns the value of attribute configuration.



4
5
6
# File 'lib/sinatra/asset_snack/asset_snack.rb', line 4

def configuration
  @configuration
end

Class Method Details

.assetsObject



25
26
27
# File 'lib/sinatra/asset_snack/asset_snack.rb', line 25

def assets
  @assets ||= []
end

.compiler_for(file_path) ⇒ Object



20
21
22
23
# File 'lib/sinatra/asset_snack/asset_snack.rb', line 20

def compiler_for(file_path)
  ext = (File.extname(file_path) || '.').downcase[1..-1]
  @compilers[ext.to_sym] || Compilers::AssetCompiler
end

.precompile!(opts = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/sinatra/asset_snack/precompile.rb', line 5

def self.precompile!(opts={})
  snack = self
  Module.new do
    extend snack::InstanceMethods
    snack.assets.each do |assets|
      path = File.join(snack.app.public_dir, assets[:route])
      FileUtils.mkdir_p File.dirname(path)
      puts "compiling #{path}" if opts[:verbose]
      File.open(path, 'w') do |file|
        file.write compile(assets[:paths])[:body]
      end
    end
  end
end

.register_compiler(compiler, handled_extensions) ⇒ Object



15
16
17
18
# File 'lib/sinatra/asset_snack/asset_snack.rb', line 15

def register_compiler(compiler, handled_extensions)
  @compilers ||= {}
  handled_extensions.each { |ext| @compilers[ext.downcase.to_sym] = compiler }
end

.registered(app, &block) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/sinatra/asset_snack/asset_snack.rb', line 6

def registered(app, &block)
  @configuration = Configuration.new
  @app = app # Used in precompile step

  app.extend ClassMethods
  app.send(:include, InstanceMethods)
  app.send(:helpers, Helpers)
end

.versionObject



3
4
5
# File 'lib/sinatra/asset_snack/version.rb', line 3

def self.version
  '0.1.6'
end