module Ramaze::Helper::Gestalt

Gestalt is the custom HTML/XML builder for Ramaze, based on a very simple DSL it will build your markup.

Constants

CACHE_G

Public Instance Methods

build(&block) click to toggle source
# File lib/ramaze/helper/gestalt.rb, line 14
def build(&block)
  Ramaze::Gestalt.build(&block)
end
g(meth = nil, view = nil) click to toggle source
# File lib/ramaze/helper/gestalt.rb, line 18
def g(meth = nil, view = nil)
  meth ||= caller[0].slice(/`(.*)'?/).gsub(/[\`\]/, '')
  view_name = (self.class.to_s.sub('Controller', '') + 'View').split('::')
  view ||= view_name.inject(Object){ |ns, name| ns.const_get(name) }

  gestalt_class = CACHE_G[view] ||= g_class
  gestalt = gestalt_class.new
  gestalt.extend(view)
  instance_variables.each do |iv|
    gestalt.instance_variable_set(iv, instance_variable_get(iv))
  end
  gestalt.__send__(meth)
  gestalt.to_s
end
g_class() click to toggle source
# File lib/ramaze/helper/gestalt.rb, line 33
def g_class
  ancs = self.class.ancestors
  helpers = Ramaze::Helper.constants.map{ |c| Ramaze::Helper.const_get(c)}
  our_helpers = ancs & helpers
  our_helpers.delete(Ramaze::Helper::Gestalt)
  gestalt_class = Class.new(Ramaze::Gestalt){ include(*our_helpers) }
end
gestalt(&block) click to toggle source
# File lib/ramaze/helper/gestalt.rb, line 10
def gestalt(&block)
  Ramaze::Gestalt.new(&block)
end
method_missing(sym, *args, &block) click to toggle source
# File lib/ramaze/helper/gestalt.rb, line 41
def method_missing(sym, *args, &block)
  @gestalt ||= gestalt
  @gestalt.send(sym, *args, &block)
end