class Redcarpet::CLI
This class aims at easing the creation of custom binary for your needs. For example, you can add new options or change the existing ones. The parsing is handled by Ruby’s OptionParser. For instance:
class Custom::CLI < Redcarpet::CLI def self.options_parser super.tap do |opts| opts.on("--rainbow") do @@options[:rainbow] = true end end end def self.render_object @@options[:rainbow] ? RainbowRender : super end end
Public Class Methods
options_parser()
click to toggle source
# File lib/redcarpet/cli.rb, line 24 def self.options_parser @@options = { render_extensions: {}, parse_extensions: {}, smarty_pants: false } OptionParser.new do |opts| opts.banner = "Usage: redcarpet [--parse <extension>...] " \ "[--render <extension>...] [--smarty] <file>..." opts.on("--parse EXTENSION", "Enable a parsing extension") do |ext| ext = ext.gsub('-', '_').to_sym @@options[:parse_extensions][ext] = true end opts.on("--render EXTENSION", "Enable a rendering extension") do |ext| ext = ext.gsub('-', '_').to_sym @@options[:render_extensions][ext] = true end opts.on("--smarty", "Enable Smarty Pants") do @@options[:smarty_pants] = true end opts.on_tail("-v", "--version", "Display the current version") do STDOUT.puts "Redcarpet #{Redcarpet::VERSION}" exit end opts.on_tail("-h", "--help", "Display this help message") do puts opts exit end end end
parser_object()
click to toggle source
# File lib/redcarpet/cli.rb, line 71 def self.parser_object renderer = render_object.new(@@options[:render_extensions]) Redcarpet::Markdown.new(renderer, @@options[:parse_extensions]) end
process(args)
click to toggle source
# File lib/redcarpet/cli.rb, line 61 def self.process(args) self.legacy_parse!(args) self.options_parser.parse!(args) STDOUT.write parser_object.render(ARGF.read) end
render_object()
click to toggle source
# File lib/redcarpet/cli.rb, line 67 def self.render_object @@options[:smarty_pants] ? Render::SmartyHTML : Render::HTML end