class Osheet::Format::Numeric

Attributes

comma_separator[RW]
decimal_places[RW]

Public Class Methods

new(opts={}) click to toggle source
# File lib/osheet/format/numeric.rb, line 24
def initialize(opts={})
  self.symbol = opts[:symbol] || :none
  self.decimal_places = opts[:decimal_places] || 0
  self.comma_separator = opts.has_key?(:comma_separator) ? opts[:comma_separator] : false
  self.negative_numbers = opts[:negative_numbers] || :black
end

Public Instance Methods

comma_separator=(value) click to toggle source
# File lib/osheet/format/numeric.rb, line 38
def comma_separator=(value)
  @comma_separator = !!value
end
decimal_places=(value) click to toggle source
# File lib/osheet/format/numeric.rb, line 31
def decimal_places=(value)
  if !value.kind_of?(::Fixnum) || value < 0 || value > 30
    raise ArgumentError, ":decimal_places must be a Fixnum between 0 and 30."
  end
  @decimal_places = value
end
key() click to toggle source
# File lib/osheet/format/numeric.rb, line 46
def key
  "#{key_prefix}_#{symbol_key}_#{decimal_places_key}_#{comma_separator_key}_#{negative_numbers_key}"
end
style() click to toggle source
# File lib/osheet/format/numeric.rb, line 42
def style
  negative_numbers_style
end

Protected Instance Methods

decimal_places_suffix() click to toggle source

used by ‘decimal_places_style’ in Numeric base class, override as necessary

# File lib/osheet/format/numeric.rb, line 63
def decimal_places_suffix
  ""
end
key_prefix() click to toggle source

used by ‘key’ in Numeric base class, override as necessary

# File lib/osheet/format/numeric.rb, line 53
def key_prefix
  "number"
end
symbol_suffix() click to toggle source

used by ‘symbol_style’ in Numeric base class, override as necessary

# File lib/osheet/format/numeric.rb, line 58
def symbol_suffix
  ""
end

Private Instance Methods

comma_separator_key() click to toggle source
# File lib/osheet/format/numeric.rb, line 105
def comma_separator_key
  @comma_separator == true ? 'comma' : 'nocomma'
end
comma_separator_style() click to toggle source
# File lib/osheet/format/numeric.rb, line 102
def comma_separator_style
  @comma_separator == true ? '#,##' : ''
end
decimal_places_key() click to toggle source
# File lib/osheet/format/numeric.rb, line 97
def decimal_places_key
  @decimal_places.to_s
end
decimal_places_style() click to toggle source
# File lib/osheet/format/numeric.rb, line 94
def decimal_places_style
  "0#{'.'+'0'*@decimal_places if @decimal_places > 0}#{decimal_places_suffix}"
end
negative_numbers_key() click to toggle source
# File lib/osheet/format/numeric.rb, line 89
def negative_numbers_key
  @negative_numbers.to_s.gsub('_', '')
end
negative_numbers_style() click to toggle source
# File lib/osheet/format/numeric.rb, line 77
def negative_numbers_style
  case @negative_numbers
  when 'black'
    numeric_style
  when 'red'
    "#{numeric_style};[Red]#{numeric_style}"
  when 'black_parenth'
    "#{numeric_style}_);\(#{numeric_style}\)"
  when 'red_parenth'
    "#{numeric_style}_);[Red]\(#{numeric_style}\)"
  end
end
numeric_style() click to toggle source
# File lib/osheet/format/numeric.rb, line 70
def numeric_style
  symbol_style +
  comma_separator_style +
  decimal_places_style
end
symbol_key() click to toggle source
# File lib/osheet/format/numeric.rb, line 120
def symbol_key
  @symbol.to_s.gsub('_', '')
end
symbol_style() click to toggle source
# File lib/osheet/format/numeric.rb, line 110
def symbol_style
  case @symbol
  when 'dollar'
    "\"$\"#{symbol_suffix}"
  when 'euro'
    "\"€\"#{symbol_suffix}"
  else
    ''
  end
end