Class: Haml::HTML
- Inherits:
-
Object
- Object
- Haml::HTML
- Defined in:
- lib/haml/html.rb,
lib/haml/html.rb,
lib/haml/html/erb.rb
Overview
Converts HTML documents into Haml templates. Depends on Hpricot for HTML parsing. If ERB conversion is being used, also depends on Erubis to parse the ERB and ruby_parser to parse the Ruby code.
Example usage:
Haml::HTML.new("<a href='http://google.com'>Blat</a>").render
#=> "%a{:href => 'http://google.com'} Blat"
Defined Under Namespace
Constant Summary collapse
- TEXT_REGEXP =
/^(\s*).*$/
Instance Method Summary collapse
-
#initialize(template, options = {}) ⇒ HTML
constructor
A new instance of HTML.
-
#render
(also: #to_haml)
Processes the document and returns the result as a string containing the Haml template.
Constructor Details
#initialize(template, options = {}) ⇒ HTML
Returns a new instance of HTML.
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/haml/html.rb', line 137
def initialize(template, options = {})
@options = options
if template.is_a? Hpricot::Node
@template = template
else
if template.is_a? IO
template = template.read
end
template = Haml::Util.check_encoding(template) {|msg, line| raise Haml::Error.new(msg, line)}
if @options[:erb]
require 'haml/html/erb'
template = ERB.compile(template)
end
method = @options[:xhtml] ? Hpricot.method(:XML) : method(:Hpricot)
@template = method.call(template.gsub('&', '&'))
end
end
|
Instance Method Details
#render Also known as: to_haml
Processes the document and returns the result as a string containing the Haml template.
161 162 163 |
# File 'lib/haml/html.rb', line 161
def render
@template.to_haml(0, @options)
end
|