Class: Haml::Exec::HTML2Haml
Overview
The html2haml
executable.
Instance Method Summary collapse
-
#initialize(args) ⇒ HTML2Haml
constructor
A new instance of HTML2Haml.
-
#process_result ⇒ Object
Processes the options set by the command-line arguments, and runs the HTML compiler appropriately.
-
#set_opts(opts) ⇒ Object
Tells optparse how to parse the arguments.
Methods inherited from Generic
Constructor Details
#initialize(args) ⇒ HTML2Haml
Returns a new instance of HTML2Haml.
363 364 365 366 |
# File 'lib/haml/exec.rb', line 363
def initialize(args)
super
@module_opts = {}
end
|
Instance Method Details
#process_result ⇒ Object
Processes the options set by the command-line arguments, and runs the HTML compiler appropriately.
405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 |
# File 'lib/haml/exec.rb', line 405
def process_result
super
require 'haml/html'
input = @options[:input]
output = @options[:output]
@module_opts[:erb] ||= input.respond_to?(:path) && input.path =~ /\.(rhtml|erb)$/
@module_opts[:erb] &&= @options[:no_erb] != false
output.write(::Haml::HTML.new(input, @module_opts).render)
rescue ::Haml::Error => e
raise "#{e.is_a?(::Haml::SyntaxError) ? "Syntax error" : "Error"} on line " +
"#{get_line e}: #{e.message}"
rescue LoadError => err
dep = err.message.scan(/^no such file to load -- (.*)/)[0]
raise err if @options[:trace] || dep.nil? || dep.empty?
$stderr.puts "Required dependency #{dep} not found!\n Use --trace for backtrace."
exit 1
end
|
#set_opts(opts) ⇒ Object
Tells optparse how to parse the arguments.
371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 |
# File 'lib/haml/exec.rb', line 371
def set_opts(opts)
opts.banner = <<END
Usage: html2haml [options] [INPUT] [OUTPUT]
Description: Transforms an HTML file into corresponding Haml code.
Options:
END
opts.on('-e', '--erb', 'Parse ERb tags.') do
@module_opts[:erb] = true
end
opts.on('--no-erb', "Don't parse ERb tags.") do
@options[:no_erb] = true
end
opts.on('-r', '--rhtml', 'Deprecated; same as --erb.') do
@module_opts[:erb] = true
end
opts.on('--no-rhtml', "Deprecated; same as --no-erb.") do
@options[:no_erb] = true
end
opts.on('-x', '--xhtml', 'Parse the input using the more strict XHTML parser.') do
@module_opts[:xhtml] = true
end
super
end
|