Sha256: 10b9562f5c69354ef16a539ae26304dbedfc03ca1cbd15708ba279c0c69a0851
Contents?: true
Size: 1.5 KB
Versions: 5
Compression:
Stored size: 1.5 KB
Contents
require 'hammer_cli/help/definition' module HammerCLI module Help class TextBuilder attr_accessor :definition def initialize(richtext = false) @richtext = richtext @definition = HammerCLI::Help::Definition.new end def string @definition.build_string end def text(content, options = {}) @definition << HammerCLI::Help::Text.new(content, options) end def list(items, options = {}) return if items.empty? @definition << HammerCLI::Help::List.new(items, options) end def section(label, options = {}, &block) sub_builder = TextBuilder.new(@richtext) yield(sub_builder) if block_given? options[:richtext] ||= @richtext @definition << HammerCLI::Help::Section.new(label, sub_builder.definition, options) end def find_item(item_id) @definition.find_item(item_id) end def at(path = []) item = path.empty? ? self : @definition.at(path) sub_builder = TextBuilder.new(@richtext) sub_builder.definition = item.definition yield(sub_builder) item.definition = sub_builder.definition end def insert(mode, item_id) sub_builder = TextBuilder.new(@richtext) yield(sub_builder) @definition.insert_definition(mode, item_id, sub_builder.definition) end def indent(content, indentation = nil) HammerCLI::Help::AbstractItem.indent(content, indentation) end end end end
Version data entries
5 entries across 5 versions & 1 rubygems