Class: Bobkit::SlimBridge::SlimHandler

Inherits:
Object
  • Object
show all
Includes:
FileHelpers, I18nBridge, LocationOptions, Bobkit::ScopeOptions, Bobkit::SlimOptions, Singleton
Defined in:
lib/bobkit/slim_bridge.rb

Instance Method Summary collapse

Methods included from I18nBridge

#locale

Methods included from I18nMixin

#l, #t

Methods included from Bobkit::ScopeOptions

#scope

Methods included from OptionsBase

#options, #setopt, #use_defaults

Methods included from LocationOptions

#assets_folder, #assets_output_folder, #coffee_folder, #css_output_folder, #js_output_folder, #layouts_folder, #locales_folder, #markdown_folder, #output_folder, #root_folder, #styles_folder, #templates_folder

Methods included from Bobkit::SlimOptions

#slim_defaults, #slim_options

Methods included from FileHelpers

#copy_file, #create_file, #create_folder, #create_folder_for

Instance Method Details

#render(options = {}, extra_options = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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