Module: ActionView::Rendering::ClassMethods

Defined in:
actionview/lib/action_view/rendering.rb

Instance Method Summary collapse

Instance Method Details

#_helpersObject



49
50
# File 'actionview/lib/action_view/rendering.rb', line 49

def _helpers
end

#_routesObject



46
47
# File 'actionview/lib/action_view/rendering.rb', line 46

def _routes
end

#build_view_context_class(klass, supports_path, routes, helpers) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'actionview/lib/action_view/rendering.rb', line 59

def build_view_context_class(klass, supports_path, routes, helpers)
  if inherit_view_context_class?
    return superclass.view_context_class
  end

  Class.new(klass) do
    if routes
      include routes.url_helpers(supports_path)
      include routes.mounted_helpers
    end

    if helpers
      include helpers
    end
  end
end

#eager_load!Object



76
77
78
79
80
# File 'actionview/lib/action_view/rendering.rb', line 76

def eager_load!
  super
  view_context_class
  nil
end

#inherit_view_context_class?Boolean

Returns:

  • (Boolean)


52
53
54
55
56
57
# File 'actionview/lib/action_view/rendering.rb', line 52

def inherit_view_context_class?
  superclass.respond_to?(:view_context_class) &&
    supports_path? == superclass.supports_path? &&
    _routes.equal?(superclass._routes) &&
    _helpers.equal?(superclass._helpers)
end

#view_context_classObject



82
83
84
85
86
87
88
89
90
91
92
# File 'actionview/lib/action_view/rendering.rb', line 82

def view_context_class
  klass = ActionView::LookupContext::DetailsKey.view_context_class

  @view_context_class ||= build_view_context_class(klass, supports_path?, _routes, _helpers)

  if klass.changed?(@view_context_class)
    @view_context_class = build_view_context_class(klass, supports_path?, _routes, _helpers)
  end

  @view_context_class
end