Sha256: 167b774b86296d57a070617e00731c740c468c7d731167f7d4dba976f5043981

Contents?: true

Size: 1.14 KB

Versions: 58

Compression:

Stored size: 1.14 KB

Contents

class PageContext < Radius::Context

  attr_reader :page

  def initialize(page)
    super
    @page = page
    globals.page = @page
    page.tags.each do |name|
      define_tag(name) { |tag_binding| page.render_tag(name, tag_binding) }
    end
  end

  def dup
    rv = self.class.new(page)
    rv.globals = globals.dup
    rv.definitions = definitions.dup
    rv
  end

  def render_tag(name, attributes = {}, &block)
    binding = @tag_binding_stack.last
    locals = binding ? binding.locals : globals
    set_process_variables(locals.page)
    super
  rescue Exception => e
    raise e if raise_errors?
    @tag_binding_stack.pop unless @tag_binding_stack.last == binding
    render_error_message(e.message)
  end

  def tag_missing(name, attributes = {}, &block)
    super
  rescue Radius::UndefinedTagError => e
    raise StandardTags::TagError.new(e.message)
  end

  private

    def render_error_message(message)
      "<div><strong>#{message}</strong></div>"
    end

    def set_process_variables(page)
      page.request ||= @page.request
      page.response ||= @page.response
    end

    def raise_errors?
      Rails.env != 'production'
    end

end

Version data entries

58 entries across 58 versions & 1 rubygems

Version Path
trusty-cms-2.0.23 app/models/page_context.rb
trusty-cms-2.0.22 app/models/page_context.rb
trusty-cms-2.0.21 app/models/page_context.rb
trusty-cms-2.0.21.alpha app/models/page_context.rb
trusty-cms-2.0.20 app/models/page_context.rb
trusty-cms-2.0.2 app/models/page_context.rb
trusty-cms-2.0.19 app/models/page_context.rb
trusty-cms-2.0.18 app/models/page_context.rb
trusty-cms-2.0.17 app/models/page_context.rb
trusty-cms-2.0.16 app/models/page_context.rb
trusty-cms-2.0.15 app/models/page_context.rb
trusty-cms-2.0.14 app/models/page_context.rb
trusty-cms-2.0.13 app/models/page_context.rb
trusty-cms-2.0.12 app/models/page_context.rb
trusty-cms-2.0.11 app/models/page_context.rb
trusty-cms-2.0.10.pre.beta app/models/page_context.rb
trusty-cms-2.0.9.pre.beta app/models/page_context.rb
trusty-cms-2.0.8.pre.beta app/models/page_context.rb
trusty-cms-2.0.7.pre.beta app/models/page_context.rb
trusty-cms-2.0.5.pre.beta app/models/page_context.rb