class Bobkit::SlimBridge::SlimHandler

Public Instance Methods

render(options={}, extra_options={}) click to toggle source
# File lib/bobkit/slim_bridge.rb, line 15
def render(options={}, extra_options={})
  if options.is_a? String
    options = { partial: options }.merge(extra_options) 
  elsif options.respond_to? :to_partial
    scope options
    options = { partial: options.to_partial }.merge(extra_options) 
  end

  partial = options.delete :partial
  layout  = options.delete :layout
  output  = options.delete :output
  content = options.delete :content

  context = options.empty? ? scope : options
  if context.is_a? Hash or !context
    context = Scope.new context 
  end

  content ||= Slim::Template.new(partial_filename(partial), slim_options).render(context)
  content = Slim::Template.new(layout_filename(layout), slim_options).render(context) { content } if layout
  create_file "#{output_folder}/#{output}.html", content if output
  content
end

Private Instance Methods

layout_filename(layout) click to toggle source
# File lib/bobkit/slim_bridge.rb, line 45
def layout_filename(layout)
  localized_template layouts_folder, layout
end
localized_template(folder, basename) click to toggle source
# File lib/bobkit/slim_bridge.rb, line 49
def localized_template(folder, basename)
  preferred = "#{folder}/#{basename}.#{locale}.slim"
  return preferred if File.exist? preferred
  "#{folder}/#{basename}.slim"
end
partial_filename(partial) click to toggle source
# File lib/bobkit/slim_bridge.rb, line 41
def partial_filename(partial)
  localized_template templates_folder, partial
end