Class Haml::Exec::HTML2Haml
In: lib/haml/exec.rb
Parent: Generic

The `html2haml` executable.

Methods

Public Class methods

@param args [Array<String>] The command-line arguments

[Source]

     # File lib/haml/exec.rb, line 370
370:       def initialize(args)
371:         super
372: 
373:         @module_opts = {}
374: 
375:         begin
376:           require 'haml/html'
377:         rescue LoadError => err
378:           dep = err.message.scan(/^no such file to load -- (.*)/)[0]
379:           raise err if @options[:trace] || dep.nil? || dep.empty?
380:           $stderr.puts "Required dependency #{dep} not found!\n  Use --trace for backtrace."
381:           exit 1
382:         end
383:       end

Public Instance methods

Processes the options set by the command-line arguments, and runs the HTML compiler appropriately.

[Source]

     # File lib/haml/exec.rb, line 415
415:       def process_result
416:         super
417: 
418:         input = @options[:input]
419:         output = @options[:output]
420: 
421:         @module_opts[:rhtml] ||= input.respond_to?(:path) && input.path =~ /\.(rhtml|erb)$/
422:         @module_opts[:rhtml] &&= @options[:no_rhtml] != false
423: 
424:         output.write(::Haml::HTML.new(input, @module_opts).render)
425:       end

Tells optparse how to parse the arguments.

@param opts [OptionParser]

[Source]

     # File lib/haml/exec.rb, line 388
388:       def set_opts(opts)
389:         opts.banner = "Usage: html2haml [options] [INPUT] [OUTPUT]\n\nDescription: Transforms an HTML file into corresponding Haml code.\n\nOptions:\n"
390: 
391:         opts.on('-r', '--rhtml', 'Parse RHTML tags.') do
392:           @module_opts[:rhtml] = true
393:         end
394: 
395:         opts.on('--no-rhtml', "Don't parse RHTML tags.") do
396:           @options[:no_rhtml] = true
397:         end
398: 
399:         opts.on('-x', '--xhtml', 'Parse the input using the more strict XHTML parser.') do
400:           @module_opts[:xhtml] = true
401:         end
402: 
403:         super
404:       end

[Validate]