class BusinessCatalyst::CSV::CurrencyTransformer

Constants

BC_CURRENCY_REGEX

Attributes

currency[RW]

Public Class Methods

default_currency() click to toggle source
# File lib/business_catalyst/csv/transformers/currency_transformer.rb, line 10
def self.default_currency
  @default_currency || "US"
end
default_currency=(currency) click to toggle source
# File lib/business_catalyst/csv/transformers/currency_transformer.rb, line 14
def self.default_currency=(currency)
  @default_currency = currency
end
new(input, currency = nil) click to toggle source
Calls superclass method
# File lib/business_catalyst/csv/transformers/currency_transformer.rb, line 20
def initialize(input, currency = nil)
  @currency = currency || self.class.default_currency
  super(input)
end

Public Instance Methods

is_bc_currency_string?(input) click to toggle source
# File lib/business_catalyst/csv/transformers/currency_transformer.rb, line 47
def is_bc_currency_string?(input)
  !!(input =~ BC_CURRENCY_REGEX)
end
number_to_currency(input) click to toggle source
# File lib/business_catalyst/csv/transformers/currency_transformer.rb, line 34
def number_to_currency(input)
  if input
    input_s = input.kind_of?(BigDecimal) ? input.to_s('F') : input.to_s.strip
    if input_s != ""
      if is_bc_currency_string?(input_s)
        input_s
      else
        "#{currency}/#{input_s}"
      end
    end
  end
end
transform() click to toggle source
# File lib/business_catalyst/csv/transformers/currency_transformer.rb, line 25
def transform
  if input
    inputs = Array(input).map {|n| number_to_currency(n) }.compact
    if inputs.any?
      inputs.join(";")
    end
  end
end