Sha256: c7184b31b1933f2e93fe6ce59ca0d8c110df93e43d54bb52fe676ce9aaf0836a

Contents?: true

Size: 765 Bytes

Versions: 3

Compression:

Stored size: 765 Bytes

Contents

module RTFM
  class DescriptionSection < Struct.new(:body, :options)
    def initialize(*args)
      super
      self.options ||= []
      yield self if block_given?
    end
    
    def add_option(*args)
      if args.size == 1 && args.first.is_a?(Option)
      then self.options << args.first
      else self.options << Option.new(*args)
      end
    end
    alias_method :option, :add_option
    
    def to_groff
      GroffString.groffify do |out|
        out.section "description"
        out << self.body
        if options.any?
          out.Bl "-tag", "-width", "\"mmmmmmmmmm\"", "-compact"
          options.each do |option|
            out << option.to_groff(:item)
          end
          out.El
          out.Pp
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rtfm-0.5.2 lib/rtfm/sections/description.rb
rtfm-0.5.1 lib/rtfm/sections/description.rb
rtfm-0.5.0 lib/rtfm/sections/description.rb