class Html2haml::Exec::HTML2Haml
The `html2haml` executable.
Public Class Methods
new(args)
click to toggle source
@param args [Array<String>] The command-line arguments
Calls superclass method
Html2haml::Exec::Generic.new
# File lib/html2haml/exec.rb, line 189 def initialize(args) super @module_opts = {} end
Public Instance Methods
process_result()
click to toggle source
Processes the options set by the command-line arguments, and runs the HTML compiler appropriately.
Calls superclass method
Html2haml::Exec::Generic#process_result
# File lib/html2haml/exec.rb, line 233 def process_result super require 'html2haml/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(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 handle_load_error(err) end
set_opts(opts)
click to toggle source
Tells optparse how to parse the arguments.
@param opts [OptionParser]
Calls superclass method
Html2haml::Exec::Generic#set_opts
# File lib/html2haml/exec.rb, line 197 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("--html-attributes", "Use HTML style attributes instead of Ruby hash style.") do @module_opts[:html_style_attributes] = true end opts.on("--ruby19-attributes", "Use Ruby 1.9-style attributes when possible.") do @module_opts[:ruby19_style_attributes] = true end opts.on('-E ex[:in]', 'Specify the default external and internal character encodings.') do |encoding| external, internal = encoding.split(':') Encoding.default_external = external if external && !external.empty? Encoding.default_internal = internal if internal && !internal.empty? end super end