class Viu::Html

Attributes

controller[R]
request[R]

Public Class Methods

new(*) click to toggle source
# File lib/viu/html.rb, line 8
def initialize(*); end

Private Class Methods

inherited(child) click to toggle source
# File lib/viu/html.rb, line 77
def inherited(child)
  child.include(Viu::Html::CompiledMethodContainer)

  if defined?(Rails) && child != Viu::Layout
    child.include(Rails.application.routes.url_helpers) unless child < Rails.application.routes.url_helpers
  end
end
layout() click to toggle source
# File lib/viu/html.rb, line 89
def layout
  @__layout ||= nil
end
layout!(value) click to toggle source
# File lib/viu/html.rb, line 85
def layout!(value)
  @__layout = value
end
template() click to toggle source
# File lib/viu/html.rb, line 97
def template
  @__template ||= nil
end
template!(value) click to toggle source
# File lib/viu/html.rb, line 93
def template!(value)
  @__template = value
end

Public Instance Methods

compiled_method_container() click to toggle source
# File lib/viu/html.rb, line 12
def compiled_method_container
  Viu::Html::CompiledMethodContainer
end
render_in(view_context, options = EMPTY_HASH) click to toggle source
# File lib/viu/html.rb, line 16
def render_in(view_context, options = EMPTY_HASH)
  __setup!(view_context)

  return __render_template_proc if __fetch_template!.is_a?(Proc)

  layout = options.fetch(:layout, self.class.layout)

  if layout.is_a?(Class)
    __render_layout_class(layout)
  elsif layout.is_a?(Proc)
    __render_layout_proc(layout)
  else
    @view_renderer.render(self, template: __fetch_template!, layout: layout)
  end
end

Private Instance Methods

__fetch_template!() click to toggle source
# File lib/viu/html.rb, line 53
def __fetch_template!
  return self.class.template if self.class.template.present?

  self.class.template!(self.class.name.underscore)
end
__render_layout_class(layout) click to toggle source
# File lib/viu/html.rb, line 63
def __render_layout_class(layout)
  layout.new.render_in(@view_context) do
    @view_renderer.render(self, template: __fetch_template!, layout: nil)
  end
end
__render_layout_proc(layout) click to toggle source
# File lib/viu/html.rb, line 69
def __render_layout_proc(layout)
  self.instance_exec(&layout).render_in(@view_context) do
    @view_renderer.render(self, template: __fetch_template!, layout: nil)
  end
end
__render_template_proc() click to toggle source
# File lib/viu/html.rb, line 59
def __render_template_proc
  self.instance_exec(&__fetch_template!)
end
__setup!(view_context) click to toggle source
# File lib/viu/html.rb, line 44
def __setup!(view_context)
  @view_context = view_context
  @lookup_context ||= view_context.lookup_context
  @view_renderer ||= view_context.view_renderer
  @controller ||= view_context.controller
  @request ||= controller.request
  _prepare_context
end
helpers() click to toggle source
# File lib/viu/html.rb, line 40
def helpers
  @helpers ||= controller.view_context
end