class Numerals::Format::Symbols::Padding
Padding
a number to a given width
Attributes
adjust[RW]
fill[RW]
width[RW]
Public Class Methods
new(*args)
click to toggle source
Parameters:
-
:width field width (0 for no padding)
-
:fill filling symbol; nil for no padding; 0 to use the digit zero; otherwise should be a String
-
:adjust adjust mode: :left, :right, :integer, :center
# File lib/numerals/format/symbols/padding.rb, line 13 def initialize(*args) @width = 0 @fill = nil @adjust = :right set! *args end
Public Instance Methods
inspect()
click to toggle source
# File lib/numerals/format/symbols/padding.rb, line 63 def inspect "Format::Symbols::#{to_s}" end
leading_zeros=(width)
click to toggle source
# File lib/numerals/format/symbols/padding.rb, line 31 def leading_zeros=(width) @width = width @fill = 0 @adjust = :internal end
padded?()
click to toggle source
# File lib/numerals/format/symbols/padding.rb, line 37 def padded? @width > 0 && @fill && @fill != '' end
padding_sizes(number_size)
click to toggle source
Returns size (characters of left, internal and right padding) for a number of given width (without padding)
# File lib/numerals/format/symbols/padding.rb, line 69 def padding_sizes(number_size) left_padding_size = internal_padding_size = right_padding_size = 0 padding_size = width - number_size if padding_size > 0 && padded? case adjust when :left left_padding_size = padding_size when :right right_padding_size = padding_size when :internal internal_padding_size = padding_size when :center left_padding_size = (padding_size + 1) / 2 right_padding_size = padding_size - left_padding_size end end [left_padding_size, internal_padding_size, right_padding_size] end
parameters()
click to toggle source
# File lib/numerals/format/symbols/padding.rb, line 41 def parameters { width: width, fill: fill, adjust: adjust } end
to_s()
click to toggle source
# File lib/numerals/format/symbols/padding.rb, line 45 def to_s params = [] if fill == 0 && adjust == :internal params << "leading_zeros: #{width}" else if width != 0 params << "width: #{width}" end if fill params << "fill: #{fill.inspect}" end if adjust != :right || !params.empty? params << "adjust: #{adjust.inspect}" end end "Padding[#{params.join(', ')}]" end
Private Instance Methods
extract_options(*args)
click to toggle source
# File lib/numerals/format/symbols/padding.rb, line 90 def extract_options(*args) options = {} args = args.first if args.size == 1 && args.first.kind_of?(Array) args.each do |arg| case arg when Integer options.merge! width: arg when String options.merge! fill: arg when :left, :right, :internal, :center options.merge! adjust: arg when Hash options.merge! arg when Format::Symbols::Padding options.merge! arg.parameters end end options end