Module: C12::KA
- Includes:
- ActionView::Helpers::NumberHelper
- Defined in:
- lib/c12-commons/ka.rb
Overview
This module is used for managing Georgian locale data.
Class Method Summary collapse
-
.format_date(date, opts = {}) ⇒ Object
Format date.
-
.month(month, opts = {}) ⇒ Object
Returns the name of the month in georgian.
-
.number(number, opts = {}) ⇒ Object
Number formatter for georgian locale convensions.
-
.tokenize(num, opts = {}) ⇒ Object
Tokenize number (in georgian).
Class Method Details
.format_date(date, opts = {}) ⇒ Object
Format date.
43 44 45 46 |
# File 'lib/c12-commons/ka.rb', line 43 def self.format_date(date, opts = {}) return nil unless date date.strftime("%d #{month(date, opts)} %Y") end |
.month(month, opts = {}) ⇒ Object
Returns the name of the month in georgian.
Month can be given as a number (January is 1) or as an instance of Time. Alternatively you can use month name in English (either short or long names). nil value for the argument returns nil as a month name.
If you need a short version of the month’s name, then use :format => :short in options.
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/c12-commons/ka.rb', line 31 def self.month(month, opts = {}) if month.respond_to? :month index = month.month elsif month.instance_of? Fixnum index = month % 12 elsif month.instance_of? String index = MONTHS_EN[month.downcase] || MONTHS_EN_SHORT[month.downcase] end (opts[:format] == :short ? MONTHS_SHORT : MONTHS)[index - 1] if index end |
.number(number, opts = {}) ⇒ Object
Number formatter for georgian locale convensions.
49 50 51 |
# File 'lib/c12-commons/ka.rb', line 49 def self.number(number, opts = {}) number_with_precision(number, :precision => opts[:precision] || 2, :delimiter => ' ', :separator => ',') end |
.tokenize(num, opts = {}) ⇒ Object
Tokenize number (in georgian).
Example usage:
C12::KA::tokenize(1) => ‘ერთი’ C12::KA::tokenize(2) => ‘ორი’
The maximum value for the argument is the value 999,999,999,999.
61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/c12-commons/ka.rb', line 61 def self.tokenize(num, opts = {}) num_ge_0 = C12.nvl(num, 0).abs if num.instance_of? Fixnum token = tokenize_int_ge_0(num_ge_0) elsif num.instance_of? Float int_part = num_ge_0.floor dec_part = ((num_ge_0 - int_part) * 100).round token = [tokenize_int_ge_0(num_ge_0.floor), opts[:currency], dec_part, opts[:currency_minor]].compact.join(' ') end token = "მინუს #{token}" if num < 0 token end |