Class: Hamlit::HamlOptions
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 ⇒ Object
The character that should wrap element attributes.
-
#autoclose ⇒ Object
A list of tag names that should be automatically self-closed if they have no content.
-
#cdata ⇒ Object
Whether to include CDATA sections around javascript and css blocks when using the ‘:javascript` or `:css` filters.
-
#compiler_class ⇒ Object
The compiler class to use.
-
#encoding ⇒ Object
The encoding to use for the HTML output.
-
#escape_attrs ⇒ Object
Sets whether or not to escape HTML-sensitive characters in attributes.
-
#escape_html ⇒ Object
Sets whether or not to escape HTML-sensitive characters in script.
-
#filename ⇒ Object
The name of the Haml file being parsed.
-
#format ⇒ Object
Determines the output format.
-
#hyphenate_data_attrs ⇒ Object
If set to ‘true`, Haml will convert underscores to hyphens in all Custom Data Attributes As of Haml 4.0, this defaults to `true`.
-
#line ⇒ Object
The line offset of the Haml template being parsed.
-
#mime_type ⇒ Object
The mime type that the rendered document will be served with.
-
#parser_class ⇒ Object
The parser class to use.
-
#preserve ⇒ Object
A list of tag names that should automatically have their newlines preserved using the Haml::Helpers#preserve helper.
-
#remove_whitespace ⇒ Object
If set to ‘true`, all tags are treated as if both whitespace removal options were present.
-
#suppress_eval ⇒ Object
Whether or not attribute hashes and Ruby scripts designated by ‘=` or `~` should be evaluated.
-
#trace ⇒ Object
Enable template tracing.
-
#ugly ⇒ Object
If set to ‘true`, Haml makes no attempt to properly indent or format the HTML output.
Class Method Summary collapse
-
.buffer_option_keys ⇒ Object
An array of keys that will be used to provide a hash of options to Haml::Buffer.
-
.defaults ⇒ Object
The default option values.
-
.valid_formats ⇒ Object
An array of valid values for the ‘:format` option.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Retrieve an option value.
-
#[]=(key, value) ⇒ Object
Set an option value.
-
#for_buffer ⇒ {Symbol => Object}
Returns a subset of options: those that Haml::Buffer cares about.
-
#html4? ⇒ Boolean
Whether or not the format is HTML4.
-
#html5? ⇒ Boolean
Whether or not the format is HTML5.
-
#html? ⇒ Boolean
Whether or not the format is any flavor of HTML.
-
#initialize(values = {}, &block) ⇒ HamlOptions
constructor
A new instance of HamlOptions.
-
#xhtml? ⇒ Boolean
Whether or not the format is XHTML.
Constructor Details
#initialize(values = {}, &block) ⇒ HamlOptions
Returns a new instance of HamlOptions.
184 185 186 187 188 |
# File 'lib/hamlit/parser/haml_options.rb', line 184 def initialize(values = {}, &block) defaults.each {|k, v| instance_variable_set :"@#{k}", v} values.each {|k, v| send("#{k}=", v) if defaults.has_key?(k) && !v.nil?} yield if block_given? end |
Instance Attribute Details
#attr_wrapper ⇒ Object
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.
62 63 64 |
# File 'lib/hamlit/parser/haml_options.rb', line 62 def attr_wrapper @attr_wrapper end |
#autoclose ⇒ Object
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’]‘.
68 69 70 |
# File 'lib/hamlit/parser/haml_options.rb', line 68 def autoclose @autoclose end |
#cdata ⇒ Object
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.
168 169 170 |
# File 'lib/hamlit/parser/haml_options.rb', line 168 def cdata @cdata end |
#compiler_class ⇒ Object
The compiler class to use. Defaults to Haml::Compiler.
174 175 176 |
# File 'lib/hamlit/parser/haml_options.rb', line 174 def compiler_class @compiler_class end |
#encoding ⇒ Object
The encoding to use for the HTML output. 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”`.
77 78 79 |
# File 'lib/hamlit/parser/haml_options.rb', line 77 def encoding @encoding end |
#escape_attrs ⇒ Object
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`.
86 87 88 |
# File 'lib/hamlit/parser/haml_options.rb', line 86 def escape_attrs @escape_attrs end |
#escape_html ⇒ Object
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.
96 97 98 |
# File 'lib/hamlit/parser/haml_options.rb', line 96 def escape_html @escape_html end |
#filename ⇒ Object
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.
102 103 104 |
# File 'lib/hamlit/parser/haml_options.rb', line 102 def filename @filename end |
#format ⇒ Object
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`.
123 124 125 |
# File 'lib/hamlit/parser/haml_options.rb', line 123 def format @format end |
#hyphenate_data_attrs ⇒ Object
If set to ‘true`, Haml will convert underscores to hyphens in all Custom Data Attributes As of Haml 4.0, this defaults to `true`.
107 108 109 |
# File 'lib/hamlit/parser/haml_options.rb', line 107 def hyphenate_data_attrs @hyphenate_data_attrs end |
#line ⇒ Object
The line offset of the Haml template being parsed. This is useful for inline templates, similar to the last argument to ‘Kernel#eval`.
111 112 113 |
# File 'lib/hamlit/parser/haml_options.rb', line 111 def line @line end |
#mime_type ⇒ Object
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`.
128 129 130 |
# File 'lib/hamlit/parser/haml_options.rb', line 128 def mime_type @mime_type end |
#parser_class ⇒ Object
The parser class to use. Defaults to Haml::Parser.
171 172 173 |
# File 'lib/hamlit/parser/haml_options.rb', line 171 def parser_class @parser_class end |
#preserve ⇒ Object
A list of tag names that should automatically have their newlines preserved using the Haml::Helpers#preserve helper. This means that any content given on the same line as the tag will be preserved. For example, ‘%textarea= “FoonBar”` compiles to `<textarea>Foo
Bar</textarea>`. Defaults to `[’textarea’, ‘pre’]‘. See also Whitespace Preservation.
136 137 138 |
# File 'lib/hamlit/parser/haml_options.rb', line 136 def preserve @preserve end |
#remove_whitespace ⇒ Object
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`.
144 145 146 |
# File 'lib/hamlit/parser/haml_options.rb', line 144 def remove_whitespace @remove_whitespace end |
#suppress_eval ⇒ Object
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`.
151 152 153 |
# File 'lib/hamlit/parser/haml_options.rb', line 151 def suppress_eval @suppress_eval end |
#trace ⇒ Object
Enable template tracing. If true, it will add a ‘data-trace’ attribute to each tag generated by Haml. The value of the attribute will be the source template name and the line number from which the tag was generated, separated by a colon. On Rails applications, the path given will be a relative path as from the views directory. On non-Rails applications, the path will be the full path.
182 183 184 |
# File 'lib/hamlit/parser/haml_options.rb', line 182 def trace @trace end |
#ugly ⇒ Object
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.
158 159 160 |
# File 'lib/hamlit/parser/haml_options.rb', line 158 def ugly @ugly end |
Class Method Details
.buffer_option_keys ⇒ Object
An array of keys that will be used to provide a hash of options to Haml::Buffer.
54 55 56 |
# File 'lib/hamlit/parser/haml_options.rb', line 54 def self.buffer_option_keys @buffer_option_keys end |
.defaults ⇒ Object
The default option values.
41 42 43 |
# File 'lib/hamlit/parser/haml_options.rb', line 41 def self.defaults @defaults end |
.valid_formats ⇒ Object
An array of valid values for the ‘:format` option.
47 48 49 |
# File 'lib/hamlit/parser/haml_options.rb', line 47 def self.valid_formats @valid_formats end |
Instance Method Details
#[](key) ⇒ Object
Retrieve an option value.
192 193 194 |
# File 'lib/hamlit/parser/haml_options.rb', line 192 def [](key) send key end |
#[]=(key, value) ⇒ Object
Set an option value.
199 200 201 |
# File 'lib/hamlit/parser/haml_options.rb', line 199 def []=(key, value) send "#{key}=", value end |
#for_buffer ⇒ {Symbol => Object}
Returns a subset of options: those that Haml::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.
273 274 275 276 277 278 |
# File 'lib/hamlit/parser/haml_options.rb', line 273 def for_buffer self.class.buffer_option_keys.inject({}) do |hash, key| hash[key] = send(key) hash end end |
#html4? ⇒ Boolean
Returns Whether or not the format is HTML4.
223 224 225 |
# File 'lib/hamlit/parser/haml_options.rb', line 223 def html4? format == :html4 end |
#html5? ⇒ Boolean
Returns Whether or not the format is HTML5.
228 229 230 |
# File 'lib/hamlit/parser/haml_options.rb', line 228 def html5? format == :html5 end |
#html? ⇒ Boolean
Returns Whether or not the format is any flavor of HTML.
218 219 220 |
# File 'lib/hamlit/parser/haml_options.rb', line 218 def html? html4? or html5? end |
#xhtml? ⇒ Boolean
Returns Whether or not the format is XHTML.
213 214 215 |
# File 'lib/hamlit/parser/haml_options.rb', line 213 def xhtml? not html? end |