module Sinatra::EngineTracking

Adds methods like ‘haml?` that allow helper methods to check whether they are called from within a template.

Attributes

current_engine[R]

Public Class Methods

new(*) click to toggle source
Calls superclass method
# File lib/sinatra/engine_tracking.rb, line 80
def initialize(*)
  @current_engine = :ruby
  super
end

Public Instance Methods

builder?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:builder`.

# File lib/sinatra/engine_tracking.rb, line 41
def builder?
  @current_engine == :builder
end
erb?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:erb`.

# File lib/sinatra/engine_tracking.rb, line 12
def erb?
  @current_engine == :erb
end
erubi?() click to toggle source

Returns true if the current engine is ‘:erubi`, or `Tilt` is set to Tilt::ErubiTemplate.

@return [Boolean] Returns true if current engine is ‘:erubi`.

# File lib/sinatra/engine_tracking.rb, line 20
def erubi?
  @current_engine == :erubi or
    (erb? && Tilt[:erb] == Tilt::ErubiTemplate)
end
haml?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:haml`.

# File lib/sinatra/engine_tracking.rb, line 26
def haml?
  @current_engine == :haml
end
liquid?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:liquid`.

# File lib/sinatra/engine_tracking.rb, line 46
def liquid?
  @current_engine == :liquid
end
markaby?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:markaby`.

# File lib/sinatra/engine_tracking.rb, line 61
def markaby?
  @current_engine == :markaby
end
markdown?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:markdown`.

# File lib/sinatra/engine_tracking.rb, line 51
def markdown?
  @current_engine == :markdown
end
nokogiri?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:nokogiri`.

# File lib/sinatra/engine_tracking.rb, line 66
def nokogiri?
  @current_engine == :nokogiri
end
rdoc?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:rdoc`.

# File lib/sinatra/engine_tracking.rb, line 56
def rdoc?
  @current_engine == :rdoc
end
ruby?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:ruby`.

# File lib/sinatra/engine_tracking.rb, line 76
def ruby?
  @current_engine == :ruby
end
sass?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:sass`.

# File lib/sinatra/engine_tracking.rb, line 31
def sass?
  @current_engine == :sass
end
scss?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:scss`.

# File lib/sinatra/engine_tracking.rb, line 36
def scss?
  @current_engine == :scss
end
slim?() click to toggle source

@return [Boolean] Returns true if current engine is ‘:slim`.

# File lib/sinatra/engine_tracking.rb, line 71
def slim?
  @current_engine == :slim
end
with_engine(engine) { || ... } click to toggle source

@param engine [Symbol, String] Name of Engine to shift to.

# File lib/sinatra/engine_tracking.rb, line 86
def with_engine(engine)
  engine_was = @current_engine
  @current_engine = engine.to_sym
  yield
ensure
  @current_engine = engine_was
end

Private Instance Methods

render(engine, *) click to toggle source
Calls superclass method
# File lib/sinatra/engine_tracking.rb, line 96
def render(engine, *)
  with_engine(engine) { super }
end