Module Money::Formatting
In: lib/money/money/formatting.rb

Methods

Public Instance methods

delimiter()

Creates a formatted price string according to several rules.

@param [Hash] *rules The options used to format the string.

@return [String]

@option *rules [Boolean, String] :display_free (false) Whether a zero

 amount of money should be formatted of "free" or as the supplied string.

@example

  Money.us_dollar(0).format(:display_free => true)     #=> "free"
  Money.us_dollar(0).format(:display_free => "gratis") #=> "gratis"
  Money.us_dollar(0).format                            #=> "$0.00"

@option *rules [Boolean] :with_currency (false) Whether the currency name

 should be appended to the result string.

@example

  Money.ca_dollar(100).format => "$1.00"
  Money.ca_dollar(100).format(:with_currency => true) #=> "$1.00 CAD"
  Money.us_dollar(85).format(:with_currency => true)  #=> "$0.85 USD"

@option *rules [Boolean] :no_cents (false) Whether cents should be omitted.

@example

  Money.ca_dollar(100).format(:no_cents => true) #=> "$1"
  Money.ca_dollar(599).format(:no_cents => true) #=> "$5"

@option *rules [Boolean] :no_cents_if_whole (false) Whether cents should be

 omitted if the cent value is zero

@example

  Money.ca_dollar(10000).format(:no_cents_if_whole => true) #=> "$100"
  Money.ca_dollar(10034).format(:no_cents_if_whole => true) #=> "$100.34"

@option *rules [Boolean, String, nil] :symbol (true) Whether a money symbol

 should be prepended to the result string. The default is true. This method
 attempts to pick a symbol that's suitable for the given currency.

@example

  Money.new(100, "USD") #=> "$1.00"
  Money.new(100, "GBP") #=> "£1.00"
  Money.new(100, "EUR") #=> "€1.00"

  # Same thing.
  Money.new(100, "USD").format(:symbol => true) #=> "$1.00"
  Money.new(100, "GBP").format(:symbol => true) #=> "£1.00"
  Money.new(100, "EUR").format(:symbol => true) #=> "€1.00"

  # You can specify a false expression or an empty string to disable
  # prepending a money symbol.§
  Money.new(100, "USD").format(:symbol => false) #=> "1.00"
  Money.new(100, "GBP").format(:symbol => nil)   #=> "1.00"
  Money.new(100, "EUR").format(:symbol => "")    #=> "1.00"

  # If the symbol for the given currency isn't known, then it will default
  # to "¤" as symbol.
  Money.new(100, "AWG").format(:symbol => true) #=> "¤1.00"

  # You can specify a string as value to enforce using a particular symbol.
  Money.new(100, "AWG").format(:symbol => "ƒ") #=> "ƒ1.00"

@option *rules [Boolean, String, nil] :decimal_mark (true) Whether the

 currency should be separated by the specified character or '.'

@example

  # If a string is specified, it's value is used.
  Money.new(100, "USD").format(:decimal_mark => ",") #=> "$1,00"

  # If the decimal_mark for a given currency isn't known, then it will default
  # to "." as decimal_mark.
  Money.new(100, "FOO").format #=> "$1.00"

@option *rules [Boolean, String, nil] :thousands_separator (true) Whether

 the currency should be delimited by the specified character or ','

@example

  # If false is specified, no thousands_separator is used.
  Money.new(100000, "USD").format(:thousands_separator => false) #=> "1000.00"
  Money.new(100000, "USD").format(:thousands_separator => nil)   #=> "1000.00"
  Money.new(100000, "USD").format(:thousands_separator => "")    #=> "1000.00"

  # If a string is specified, it's value is used.
  Money.new(100000, "USD").format(:thousands_separator => ".") #=> "$1.000.00"

  # If the thousands_separator for a given currency isn't known, then it will
  # default to "," as thousands_separator.
  Money.new(100000, "FOO").format #=> "$1,000.00"

@option *rules [Boolean] :html (false) Whether the currency should be

 HTML-formatted. Only useful in combination with +:with_currency+.

@example

  s = Money.ca_dollar(570).format(:html => true, :with_currency => true)
  s #=>  "$5.70 <span class=\"currency\">CAD</span>"
separator()

Alias for decimal_mark

[Validate]