Deface
======
Deface is a library that allows you to customize ERB views in a Rails application without editing the underlying view.
It allows you to easily target html & erb elements as the hooks for customization using both CSS and XPath selectors as supported by Nokogiri.
Deface temporarily converts ERB files into a pseudo HTML markup that can be parsed and queired by Nokogiri, using the following approach:
<%= some ruby code %>
becomes
some ruby code
and
<% other ruby code %>
becomes
other ruby code
Deface overrides have full access to all variables accessible to the view being customized.
Deface::Override
=======
A new instance of the Deface::Override class is initialized for each customization you wish to define. When initializing a new override you must supply only one Target, Action & Source parameter and any number of Optional parameters. Note, the source parameter is not required when the "remove" action is specified.
Target
------
* :virtual_path - The template / partial / layout where the override should take effect eg: *"shared/_person"*, *"admin/posts/new"* this will apply to all controller actions that use the specified template.
Action
------
* :remove - Removes all elements that match the supplied selector
* :replace - Replaces all elements that match the supplied selector
* :insert_after - Inserts after all elements that match the supplied selector
* :insert_before - Inserts before all elements that match the supplied selector
Source
------
* :text - String containing markup
* :partial - Relative path to a partial
* :template - Relative path to a template
Optional
--------
* :name - Unique name for override so it can be identified and modified later. This needs to be unique within the same `:virtual_path`
Examples
========
Replaces all instances of _h1_ in the `posts/_form.html.erb` partial with `