Class: Haml::Options
Overview
This class encapsulates all of the configuration options that Haml understands. Please see the Haml Reference to learn how to set the options.
Instance Attribute Summary (collapse)
-
- attr_wrapper
The character that should wrap element attributes.
-
- autoclose
A list of tag names that should be automatically self-closed if they have no content.
-
- cdata
Whether to include CDATA sections around javascript and css blocks when using the
:javascript
or:css
filters. -
- compiler_class
The compiler class to use.
-
- encoding
The encoding to use for the HTML output.
-
- escape_attrs
Sets whether or not to escape HTML-sensitive characters in attributes.
-
- escape_html
Sets whether or not to escape HTML-sensitive characters in script.
-
- filename
The name of the Haml file being parsed.
-
- format
Determines the output format.
-
- hyphenate_data_attrs
If set to
true
, Haml will convert underscores to hyphens in all Custom Data Attributes As of Haml 4.0, this defaults totrue
. -
- line
The line offset of the Haml template being parsed.
-
- mime_type
The mime type that the rendered document will be served with.
-
- parser_class
The parser class to use.
-
- preserve
A list of tag names that should automatically have their newlines preserved using the Helpers#preserve helper.
-
- remove_whitespace
If set to
true
, all tags are treated as if both whitespace removal options were present. -
- suppress_eval
Whether or not attribute hashes and Ruby scripts designated by
=
or~
should be evaluated. -
- ugly
If set to
true
, Haml makes no attempt to properly indent or format the HTML output.
Class Method Summary (collapse)
-
+ buffer_option_keys
An array of keys that will be used to provide a hash of options to Buffer.
-
+ defaults
The default option values.
-
+ valid_formats
An array of valid values for the
:format
option.
Instance Method Summary (collapse)
-
- [](key)
Retrieve an option value.
-
- []=(key, value)
Set an option value.
-
- ({Symbol => Object}) for_buffer
Returns a subset of options: those that Buffer cares about.
-
- (Boolean) html4?
Whether or not the format is HTML4.
-
- (Boolean) html5?
Whether or not the format is HTML5.
-
- (Boolean) html?
Whether or not the format is any flavor of HTML.
-
- (Options) initialize(values = {}, &block)
constructor
A new instance of Options.
-
- (Boolean) xhtml?
Whether or not the format is XHTML.
Constructor Details
- (Options) initialize(values = {}, &block)
A new instance of Options
170 171 172 173 174 |
# File 'lib/haml/options.rb', line 170
def initialize(values = {}, &block)
defaults.each {|k, v| instance_variable_set :"@#{k}", v}
values.reject {|k, v| !defaults.has_key?(k) || v.nil?}.each {|k, v| send("#{k}=", v)}
yield if block_given?
end
|
Instance Attribute Details
- attr_wrapper
The character that should wrap element attributes. This defaults to '
(an apostrophe). Characters of this type within the attributes will be escaped (e.g. by replacing them with '
) if the character is an apostrophe or a quotation mark.
55 56 57 |
# File 'lib/haml/options.rb', line 55
def attr_wrapper
@attr_wrapper
end
|
- autoclose
A list of tag names that should be automatically self-closed if they have no content. This can also contain regular expressions that match tag names (or any object which responds to #===
). Defaults to ['meta', 'img',
'link', 'br', 'hr', 'input', 'area', 'param', 'col', 'base']
.
61 62 63 |
# File 'lib/haml/options.rb', line 61
def autoclose
@autoclose
end
|
- cdata
Whether to include CDATA sections around javascript and css blocks when using the :javascript
or :css
filters.
This option also affects the :sass
, :scss
, :less
and :coffeescript
filters.
Defaults to false
for html, true
for xhtml. Cannot be changed when using xhtml.
162 163 164 |
# File 'lib/haml/options.rb', line 162
def cdata
@cdata
end
|
- compiler_class
The compiler class to use. Defaults to Haml::Compiler.
168 169 170 |
# File 'lib/haml/options.rb', line 168
def compiler_class
@compiler_class
end
|
- encoding
The encoding to use for the HTML output. Only available on Ruby 1.9 or higher. This can be a string or an Encoding
Object. Note that Haml does not automatically re-encode Ruby values; any strings coming from outside the application should be converted before being passed into the Haml template. Defaults to Encoding.default_internal
; if that’s not set, defaults to the encoding of the Haml template; if that’s US-ASCII
, defaults to "UTF-8"
.
71 72 73 |
# File 'lib/haml/options.rb', line 71
def encoding
@encoding
end
|
- escape_attrs
Sets whether or not to escape HTML-sensitive characters in attributes. If this is true, all HTML-sensitive characters in attributes are escaped. If it’s set to false, no HTML-sensitive characters in attributes are escaped. If it’s set to :once
, existing HTML escape sequences are preserved, but other HTML-sensitive characters are escaped.
Defaults to true
.
80 81 82 |
# File 'lib/haml/options.rb', line 80
def escape_attrs
@escape_attrs
end
|
- escape_html
Sets whether or not to escape HTML-sensitive characters in script. If this is true, =
behaves like &=
; otherwise, it behaves like !=
. Note that if this is set, !=
should be used for yielding to subtemplates and rendering partials. See also Escaping HTML and Unescaping HTML.
Defaults to false.
90 91 92 |
# File 'lib/haml/options.rb', line 90
def escape_html
@escape_html
end
|
- filename
The name of the Haml file being parsed. This is only used as information when exceptions are raised. This is automatically assigned when working through ActionView, so it’s really only useful for the user to assign when dealing with Haml programatically.
96 97 98 |
# File 'lib/haml/options.rb', line 96
def filename
@filename
end
|
- format
Determines the output format. The default is :html5
. The other options are :html4
and :xhtml
. If the output is set to XHTML, then Haml automatically generates self-closing tags and wraps the output of the Javascript and CSS-like filters inside CDATA. When the output is set to :html5
or :html4
, XML prologs are ignored. In all cases, an appropriate doctype is generated from !!!
.
If the mime_type of the template being rendered is text/xml
then a format of :xhtml
will be used even if the global output format is set to :html4
or :html5
.
117 118 119 |
# File 'lib/haml/options.rb', line 117
def format
@format
end
|
- hyphenate_data_attrs
If set to true
, Haml will convert underscores to hyphens in all Custom Data Attributes As of Haml 4.0, this defaults to true
.
101 102 103 |
# File 'lib/haml/options.rb', line 101
def hyphenate_data_attrs
@hyphenate_data_attrs
end
|
- line
The line offset of the Haml template being parsed. This is useful for inline templates, similar to the last argument to Kernel#eval
.
105 106 107 |
# File 'lib/haml/options.rb', line 105
def line
@line
end
|
- mime_type
The mime type that the rendered document will be served with. If this is set to text/xml
then the format will be overridden to :xhtml
even if it has set to :html4
or :html5
.
122 123 124 |
# File 'lib/haml/options.rb', line 122
def mime_type
@mime_type
end
|
- parser_class
The parser class to use. Defaults to Haml::Parser.
165 166 167 |
# File 'lib/haml/options.rb', line 165
def parser_class
@parser_class
end
|
- preserve
A list of tag names that should automatically have their newlines preserved using the Helpers#preserve helper. This means that any content given on the same line as the tag will be preserved. For example, %textarea= "Foo\nBar"
compiles to <textarea>Foo
Bar</textarea>
. Defaults to ['textarea', 'pre']
. See also Whitespace Preservation.
130 131 132 |
# File 'lib/haml/options.rb', line 130
def preserve
@preserve
end
|
- remove_whitespace
If set to true
, all tags are treated as if both whitespace removal options were present. Use with caution as this may cause whitespace-related formatting errors.
Defaults to false
.
138 139 140 |
# File 'lib/haml/options.rb', line 138
def remove_whitespace
@remove_whitespace
end
|
- suppress_eval
Whether or not attribute hashes and Ruby scripts designated by =
or ~
should be evaluated. If this is true
, said scripts are rendered as empty strings.
Defaults to false
.
145 146 147 |
# File 'lib/haml/options.rb', line 145
def suppress_eval
@suppress_eval
end
|
- ugly
If set to true
, Haml makes no attempt to properly indent or format the HTML output. This significantly improves rendering performance but makes viewing the source unpleasant.
Defaults to true
in Rails production mode, and false
everywhere else.
152 153 154 |
# File 'lib/haml/options.rb', line 152
def ugly
@ugly
end
|
Class Method Details
+ buffer_option_keys
An array of keys that will be used to provide a hash of options to Buffer.
47 48 49 |
# File 'lib/haml/options.rb', line 47
def self.buffer_option_keys
@buffer_option_keys
end
|
+ defaults
The default option values.
34 35 36 |
# File 'lib/haml/options.rb', line 34
def self.defaults
@defaults
end
|
+ valid_formats
An array of valid values for the :format
option.
40 41 42 |
# File 'lib/haml/options.rb', line 40
def self.valid_formats
@valid_formats
end
|
Instance Method Details
- [](key)
Retrieve an option value.
178 179 180 |
# File 'lib/haml/options.rb', line 178
def [](key)
send key
end
|
- []=(key, value)
Set an option value.
185 186 187 |
# File 'lib/haml/options.rb', line 185
def []=(key, value)
send "#{key}=", value
end
|
- ({Symbol => Object}) for_buffer
Returns a subset of options: those that Buffer cares about. All of the values here are such that when #inspect
is called on the hash, it can be Kernel#eval
ed to get the same result back.
263 264 265 266 267 268 |
# File 'lib/haml/options.rb', line 263
def for_buffer
self.class.buffer_option_keys.inject({}) do |hash, key|
hash[key] = send(key)
hash
end
end
|
- (Boolean) html4?
Whether or not the format is HTML4.
209 210 211 |
# File 'lib/haml/options.rb', line 209
def html4?
format == :html4
end
|
- (Boolean) html5?
Whether or not the format is HTML5.
214 215 216 |
# File 'lib/haml/options.rb', line 214
def html5?
format == :html5
end
|
- (Boolean) html?
Whether or not the format is any flavor of HTML.
204 205 206 |
# File 'lib/haml/options.rb', line 204
def html?
html4? or html5?
end
|
- (Boolean) xhtml?
Whether or not the format is XHTML.
199 200 201 |
# File 'lib/haml/options.rb', line 199
def xhtml?
not html?
end
|