# Provides a numbering object that will produce numbers. Accepts three
# parameters for numbering that will control how the numbers are presented
# when given as #[](index).
#
# :offset:: The number to add to the index in order to produce
# the proper index. This is because #tag_text indexes
# from 0, not 1. This defaults to 1.
# :postfix:: The value that will be appended to the number
# presented by #[]. Defaults to +nil+.
# :prefix:: The value that will be prepended to the number
# presented by #[]. Defaults to +nil+.
#
# n1 = Text::Format::Number.new(:postfix => ".")
# puts n1[0] # => "1."
# puts n1[1] # => "2.
#
# n2 = Text::Format::Number.new(:prefix => "2.")
# puts n2[0] # => "2.1"
# puts n2[1] # => "2.2"
#
# n3 = Text::Format::Number.new(:offset => 3)
# puts n3[0] # => "3"
# puts n3[1] # => "4"
class Text::Format::Number
def [](index)
"#{@prefix}#{index + @offset}#{@postfix}"
end
def initialize(options = {}) #:yields self:
@offset = options[:offset].to_i || 1
@postfix = options[:postfix] || nil
@prefix = options[:prefix] || nil
end
end