Module: Capcode::Helpers

Defined in:
lib/capcode/render/markaby.rb

Instance Method Summary collapse

Instance Method Details

#render_markaby(f, opts = {}) ⇒ Object

:nodoc:



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/capcode/render/markaby.rb', line 13

def render_markaby( f, opts = {} ) #:nodoc:
  f = f.to_s
  layout = opts.delete(:layout)||:layout

  # Update options
  (Capcode::Configuration.options[:markaby] || {}).merge(opts).each do |k, v|
    Markaby::Builder.set(k, v)
  end
  
  assigns = {}
  self.instance_variables.delete_if {|x| ["@response", "@env", "@request"].include?(x) }.each do |ivar|
    assigns[ivar.gsub( /^@/, "" )] = self.instance_variable_get(ivar)
  end

  __mab = Mab.new(assigns.merge( opts ), self) { 
    if self.respond_to?(layout)
      self.send(layout.to_s) { |*args| 
        # @@__ARGS__ = args
        Capcode::Helpers.args = args
        self.send(f) 
      }
    else
      self.send(f) 
    end
  }
  __mab.to_s  
end