module Haml
module Helpers
@@action_view_defined = true
# 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.
module ActionViewExtensions
# 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
#
#
My 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
#
# @return [String] The class name for the current page
def page_class
controller.controller_name + " " + controller.action_name
end
alias_method :generate_content_class_names, :page_class
# 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.
#
# @yield A block in which all input to `#haml_concat` is treated as raw.
# @see Haml::Util#rails_xss_safe?
def with_raw_haml_concat
@_haml_concat_raw, old = true, @_haml_concat_raw
yield
ensure
@_haml_concat_raw = old
end
end
include ActionViewExtensions
end
end