inherit_views icon indicating copy to clipboard operation
inherit_views copied to clipboard

rails plugin that enables inheritance of views along a controller class heirachy

= {ianwhite}[http://github.com/ianwhite] / {inherit_views}[http://github.com/ianwhite/inherit_views] >>{info}[http://ianwhite.github.com/inherit_views] >>{api}[http://ianwhite.github.com/inherit_views/doc]

== Status

inherit_views works with rails 2.x

If you're on rails 2.3 or rails edge, you want {inherit_views/master}[http://github.com/ianwhite/inherit_views/tree/master]

If you're on rails 2.2, you want {inherit_views/rails-2.2}[http://github.com/ianwhite/inherit_views/tree/rails-2.2]

If you're on rails 2.0, or 2.1, you want {inherit_views/rails-2.0-2.1}[http://github.com/ianwhite/inherit_views/tree/rails-2.0-2.1]

== what does it do?

This rails plugin allows your controllers/mailers to inherit their views from parent controllers/mailers. The default behaviour is to inherit along the ancestor path of the controller/mailer, but you can also specify custom inherit view paths to search.

Example:

class ApplicationController < ActionController::Base inherit_views end

class FooController < ApplicationController # will look for views in 'views/foo', then 'views/application' end

class BarController < FooController # will look for views in 'views/bar', then 'views/foo', then 'view/application' end

See InheritViews for more details

NOTE: this plugin is not aimed at having multiple view paths for your controllers, which is addressed with the view_paths addition to ActionController::Base for rails 2.0. Rather, within these view paths, you can inherit views from other controller paths.

== In templates

You can render the 'parent' template from within a template if you so choose. This works for partials and top-level templates alike.

foo/view.html.erb

Foo View

bar/view.html.erb <%= render :parent %>

With some 'bar' action

rendering bar/view (with the controller setup described above):

Foo View

With some 'bar' action

== Testing & CI

RSpec is used for testing, so the tests are in spec/ rather than test/ Do rake --tasks for more details.

{garlic}[http://github.com/ianwhite/garlic] is used for CI, see garlic.rb for details on what versions of rails are tested.

== Contributors

Author: {Ian W. White}[http://github.com/ianwhite]

Contributions by:

  • {The Dark One}[http://github.com/thedarkone]