lib/lotus/helpers/number_formatting_helper.rb in lotus-helpers-0.2.0 vs lib/lotus/helpers/number_formatting_helper.rb in lotus-helpers-0.2.5
- old
+ new
@@ -6,11 +6,11 @@
# the view will have access all methods.
#
# By including <tt>Lotus::Helpers::NumberFormattingHelper</tt> it will
# inject private method: <tt>format_number</tt>.
#
- # @since x.x.x
+ # @since 0.2.0
module NumberFormattingHelper
private
# Format the given number, according to the options
#
# It accepts a number (<tt>Numeric</tt>) or a string representation.
@@ -27,14 +27,14 @@
#
# @return [String] formatted number
#
# @raise [TypeError] if number can't be formatted
#
- # @since x.x.x
+ # @since 0.2.0
#
# @example
- # require 'lotus/helpers/number_formatter_helper'
+ # require 'lotus/helpers/number_formatting_helper'
#
# class Checkout
# include Lotus::Helpers::NumberFormattingHelper
#
# def total
@@ -64,54 +64,54 @@
Formatter.new(number, options).format
end
# Formatter
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
class Formatter
# Regex to delimitate integer part of a number
#
# @return [Regexp] the delimitation regex
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
#
# @see Lotus::Helpers::NumberFormatter::Formatter#delimitate
DELIMITATION_REGEX = /(\d)(?=(\d{3})+$)/
# Regex to guess if the number is a integer
#
# @return [Regexp] the guessing regex
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
#
# @see Lotus::Helpers::NumberFormatter::Formatter#to_number
INTEGER_REGEXP = /\A[\d]+\z/
# Default separator
#
# @return [String] default separator
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
DEFAULT_SEPARATOR = '.'.freeze
# Default delimiter
#
# @return [String] default delimiter
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
DEFAULT_DELIMITER = ','.freeze
# Default precision
#
# @return [String] default precision
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
DEFAULT_PRECISION = 2
# Initialize a new formatter
#
@@ -119,11 +119,11 @@
# @param options [Hash] options for number formatting
# @option options [String] :delimiter hundred delimiter
# @option options [String] :separator fractional part delimiter
# @option options [Integer] :precision rounding precision
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
#
# @see Lotus::Helpers::NumberFormatter::Formatter::DEFAULT_DELIMITER
# @see Lotus::Helpers::NumberFormatter::Formatter::DEFAULT_SEPARATOR
# @see Lotus::Helpers::NumberFormatter::Formatter::DEFAULT_PRECISION
@@ -138,11 +138,11 @@
#
# @return [String] formatted number
#
# @raise [TypeError] if number can't be formatted
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
def format
parts.join(@separator)
end
@@ -150,22 +150,22 @@
# Return integer and fractional parts
#
# @return [Array] parts
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
def parts
integer_part, fractional_part = to_str.split(DEFAULT_SEPARATOR)
[delimitate(integer_part), fractional_part].compact
end
# Delimitate the given part
#
# @return [String] delimitated string
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
def delimitate(part)
part.gsub(DELIMITATION_REGEX) { |digit| "#{digit}#{@delimiter}" }
end
@@ -173,11 +173,11 @@
#
# @return [String] coerced number
#
# @raise [TypeError] if number can't be formatted
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
def to_str
to_number.to_s
end
@@ -185,11 +185,11 @@
#
# @return [Numeric] coerced number
#
# @raise [TypeError] if number can't be formatted
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
def to_number
case @number
when NilClass
raise TypeError
@@ -203,10 +203,10 @@
# Round number in case we need to return a <tt>Float</tt> representation.
# If <tt>@number</tt> doesn't respond to <tt>#round</tt> return the number as it is.
#
# @return [Float,Complex,Rational,BigDecimal] rounded number, if applicable
#
- # @since x.x.x
+ # @since 0.2.0
# @api private
def rounded_number
if @number.respond_to?(:round)
@number.round(@precision)
else