Provides a numbering object that will produce letters. Accepts four options for numbering that will control how the letters are presented when given as #[](index). This numbering object will only provide 26 values ("a" .. "z") unless :wrap is true.
:transform |
The symbol representing the method to be called on the letter. This must be a method that does not require any arguments. |
:postfix |
The value that will be appended to the letter presented by #[]. Defaults to nil. |
:prefix |
The value that will be prepended to the letter presented by #[]. Defaults to nil. |
:wrap |
If true, then indexes will be wrapped from "z" to "a". |
a1 = Text::Format::Alpha.new(:postfix => ".") puts a1[0] # => "a." puts a1[1] # => "b. puts a1[27] # => "" a2 = Text::Format::Alpha.new(:prefix => "A.") puts a2[0] # => "A.a" puts a2[1] # => "A.b" puts a2[27] # => "" a3 = Text::Format::Alpha.new(:transform => :upcase) puts a3[0] # => "A" puts a3[1] # => "B" puts a3[27] # => "" a4 = Text::Format::Alpha.new(:wrap => true) puts a4[0] # => "a" puts a4[27] # => "b"
# File lib/text/format/alpha.rb, line 35 def [](index) if @wrap ltr = (aa + (index % 26)).chr elsif index.between?(0, 25) ltr = (aa + index).chr else ltr = nil end if ltr if @transform "#{@prefix}#{ltr.send(transform)}#{@postfix}" else "#{@prefix}#{ltr}#{@postfix}" end else "" end end
Generated with the Darkfish Rdoc Generator 2.