Module: Numeric::Transformer

Module | Numeric::Transformer
In: | lib/merb-helpers/core_ext/numeric.rb

### Methods

add_format change_default_format default_format formats minutes_to_hours to_currency two_digits with_delimiter with_precision

### Public Class methods

add_format(format)

Adds a new format to the existing transforming formats

#### Parameters

format <Hash>: | format defining how to transform numeric values

#### Examples

change_default_format(format_code)

Changes the default format to use when transforming a `Numeric` instance

#### Parameters

format_code <Symbol>: | format name to use as the new default format

#### Returns

Hash: | a hash representing the default format

default_format()

Accessor for the default format in use

formats()

accessor for @formats

minutes_to_hours(minutes)

Converts a `numeric` value representing minutes into a string representing an hour value

#### Parameters

number<Numeric>: | Numeric value representing minutes to convert in hours

#### Returns

String: | a string representing the numeric value converted in hours

#### Examples

minutes_to_hours(315) => "05:15"

to_currency(number, format_name = nil, options = {})

Formats a `number` into a currency string (e.g., $13.65). You can specify a format to use and even overwrite some of the format options.

#### Parameters

number<Numeric>: | Numeric value to convert
format_name<Symbol>: | name of the format to use
options<Hash>: | options which will overwrite the used format

#### Returns

String: | a string representing the number converted in currency

#### Options

:precision - Sets the level of precision :unit - Sets the denomination of the currency :format - Sets the format of the output string (defaults to "%u%n"). The field types are:

%u The currency unit %n The number

#### Examples

to_currency(1234567890.506, :US, :precision => 1) # => "$1,234,567,890.5" to_currency(1234567890.516, :FR) # =>"1 234 567 890,52€" to_currency(1234567890.516, :US, :unit => "€") # =>"€1,234,567,890.52" to_currency(1234567890.506, :US, :precision => 3, :unit => "€") # => "€1,234,567,890.506" to_currency(1234567890.506, :AU, :unit => "$AUD", :format => ’%n %u’) # => "1,234,567,890.51 $AUD"

two_digits(number)

Formats a `number` into a two digit string. Basically it prepends an integer to a 2 digits string.

#### Parameters

number<Numeric>: | Numeric value to convert

#### Returns

String: | a string representing the number converted into a 2 digits string.

#### Examples

two_digits(5-3) # => "02"

with_delimiter(number, format_name = nil, options = {})

Formats a `number` with grouped thousands using `delimiter` (e.g., 12,324). You can pass another format to format the number differently.

#### Parameters

format_name<Symbol>: | name of the format to use
options<Hash>: | options which will overwrite the used format

#### Returns

String: | a string representing the delimited number

#### Options

:delimiter - Overwrites the thousands delimiter. :separator - Overwrites the separator between the units.

#### Examples

with_delimiter(12345678) # => 12,345,678 with_delimiter(12345678.05) # => 12,345,678.05 with_delimiter(12345678, :FR) # => 12.345.678 with_delimiter(12345678, :US) # => 12,345,678

with_precision(number, format_name = nil, options={})

Formats a `number` with a level of `:precision` (e.g., 112.32 has a precision of 2). You can pass another format to use and even overwrite the format‘s options.

#### Parameters

format_name<Symbol>: | name of the format to use
options<Hash>: | options which will overwrite the used format

#### Returns

String: | a string representing the delimited number

#### Options

:precision - Overwrites the level of precision :separator - Overwrites the separator between the units :delimiter - Overwrites the thousands delimiter

#### Examples

with_precision(111.2345) # => 111.235 with_precision(111.2345, :UK, :precision => 1) # => "111.2" with_precision(1234.567, :US, :precision => 1, :separator => ’,’, :delimiter => ’-’) # => "1-234,6"

[Validate]