Module: Haml::Helpers::ActionViewExtensions

Included in:
Haml::Helpers
Defined in:
lib/haml/helpers/action_view_extensions.rb

Overview

This module contains various useful helper methods that either tie into ActionView or the rest of the ActionPack stack, or are only useful in that context. Thus, the methods defined here are only available if ActionView is installed.

Instance Method Summary collapse

Instance Method Details

#page_classString Also known as: generate_content_class_names

Returns a value for the “class” attribute unique to this controller/action pair. This can be used to target styles specifically at this action or controller. For example, if the current action were EntryController#show,

%div{:class => page_class} My Div

would become

<div class="entry show">My Div</div>

Then, in a stylesheet (shown here as Sass), you could refer to this specific action:

.entry.show
  font-weight: bold

or to all actions in the entry controller:

.entry
  color: #00f

Returns:

  • (String)

    The class name for the current page

36
37
38
# File 'lib/haml/helpers/action_view_extensions.rb', line 36

def page_class
  "#{controller.controller_name} #{controller.action_name}"
end

#with_raw_haml_concat { ... }

Treats all input to Haml::Helpers#haml_concat within the block as being HTML safe for Rails’ XSS protection. This is useful for wrapping blocks of code that concatenate HTML en masse.

This has no effect if Rails’ XSS protection isn’t enabled.

Yields:

  • A block in which all input to #haml_concat is treated as raw.

See Also:

49
50
51
52
53
54
55
# File 'lib/haml/helpers/action_view_extensions.rb', line 49

def with_raw_haml_concat
  old = instance_variable_defined?(:@_haml_concat_raw) ? @_haml_concat_raw : false
  @_haml_concat_raw = true
  yield
ensure
  @_haml_concat_raw = old
end