maguire 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/iso_data/symbol_layer/azn.json +3 -0
- data/iso_data/symbol_layer/tmt.json +2 -2
- data/lib/maguire.rb +1 -2
- data/lib/maguire/currency.rb +11 -0
- data/lib/maguire/locale.rb +36 -15
- data/lib/maguire/version.rb +1 -1
- metadata +22 -35
- data/iso_data/symbol_layer/lyd.json~ +0 -3
- data/iso_data/symbol_layer/pab.json~ +0 -3
- data/lib/maguire/locale.rb~ +0 -189
- data/lib/maguire/version.rb~ +0 -3
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 68b624745bcd22e8111fc985132ffa0bc3074af3
|
4
|
+
data.tar.gz: cfad026deb4b6355ba405ec5d20879a51ceb9ce6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 57778cf554336ddf7be48aeccf0d00cb263447a8d193f27c966d86afb08369a8bc43deb2bc474edfb8be846c36bab366e148fce06eda3b43b91aa5ef8b7ef971
|
7
|
+
data.tar.gz: 6a334c4e870965cb3f993b0de21288ed8888145d53b610c783685f50b635983edaf62668e1539927fec273633e9bff73adc8ed4e370b9956462327671bc0f0ae
|
@@ -1,3 +1,3 @@
|
|
1
1
|
{
|
2
|
-
"symbol": "
|
3
|
-
}
|
2
|
+
"symbol": "T"
|
3
|
+
}
|
data/lib/maguire.rb
CHANGED
@@ -28,10 +28,9 @@ module Maguire
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def format(money, options={})
|
31
|
-
currency = Currency.coded(money[:currency].downcase)
|
32
31
|
locale = Locale.lookup(options[:locale] || Maguire.default_locale)
|
33
32
|
|
34
|
-
locale.format(money[:value], currency, options)
|
33
|
+
locale.format(money[:value], money[:currency], options)
|
35
34
|
end
|
36
35
|
end
|
37
36
|
|
data/lib/maguire/currency.rb
CHANGED
@@ -20,6 +20,17 @@ module Maguire
|
|
20
20
|
Currency.new(Maguire::Hash.merge([@data, locale_data]))
|
21
21
|
end
|
22
22
|
|
23
|
+
def as_json
|
24
|
+
{
|
25
|
+
name: name,
|
26
|
+
code: code,
|
27
|
+
minor_units: minor_units,
|
28
|
+
precision: precision,
|
29
|
+
symbol: symbol,
|
30
|
+
symbol_html: symbol_html
|
31
|
+
}
|
32
|
+
end
|
33
|
+
|
23
34
|
class << self
|
24
35
|
def coded(code)
|
25
36
|
self.new(Maguire.data_paths.load(code.downcase))
|
data/lib/maguire/locale.rb
CHANGED
@@ -23,14 +23,22 @@ module Maguire
|
|
23
23
|
"<##{self.class} locale=#{locale}>"
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
27
|
-
|
28
|
-
|
26
|
+
def localized_currency(currency_code)
|
27
|
+
currency_code.downcase!
|
28
|
+
currency = Currency.coded(currency_code)
|
29
|
+
overlay = @currency_overlays[currency_code.to_sym]
|
30
|
+
if overlay
|
31
|
+
currency.overlay(overlay)
|
32
|
+
else
|
33
|
+
currency
|
34
|
+
end
|
35
|
+
end
|
29
36
|
|
30
|
-
|
31
|
-
currency =
|
37
|
+
def format(value, currency_code, options={})
|
38
|
+
currency = localized_currency(currency_code)
|
32
39
|
|
33
|
-
|
40
|
+
major_value = value.abs / currency.precision
|
41
|
+
minor_value = round(value.abs - major_value * currency.precision)
|
34
42
|
|
35
43
|
formatting = value >= 0 ?
|
36
44
|
@positive_formatting : @negative_formatting
|
@@ -59,6 +67,8 @@ module Maguire
|
|
59
67
|
end
|
60
68
|
end
|
61
69
|
|
70
|
+
groups = split_value_into_groups(major_value, formatting[:digit_grouping_style])
|
71
|
+
|
62
72
|
formatting[:layout] % {
|
63
73
|
symbol: symbol,
|
64
74
|
code: currency.code,
|
@@ -68,6 +78,14 @@ module Maguire
|
|
68
78
|
}
|
69
79
|
end
|
70
80
|
|
81
|
+
def as_json
|
82
|
+
{
|
83
|
+
positive: @positive_formatting,
|
84
|
+
negative: @negative_formatting,
|
85
|
+
zero: @zero_formatting
|
86
|
+
}
|
87
|
+
end
|
88
|
+
|
71
89
|
private
|
72
90
|
|
73
91
|
SOUTH_ASIAN_GROUPING_RE = /([0-9]{2}[^0-9]){3}[0-9]{3}[^0-9]/
|
@@ -75,21 +93,18 @@ module Maguire
|
|
75
93
|
GROUPS_OF_THREE_RE = /([0-9]{3}[^0-9]){3}+/
|
76
94
|
|
77
95
|
def parse_groups_in_south_asian_style(layout)
|
78
|
-
@group_numbers_in_south_asian_style = true
|
79
96
|
digit_grouping_symbol = layout.match(/1([^0-9]*)23/)[1]
|
80
97
|
layout.gsub!(["1", "23", "45", "67", "890"].join(digit_grouping_symbol), "%{major_value}")
|
81
98
|
digit_grouping_symbol
|
82
99
|
end
|
83
100
|
|
84
101
|
def parse_groups_of_four(layout)
|
85
|
-
@group_numbers_in_fours = true
|
86
102
|
digit_grouping_symbol = layout.match(/12([^0-9]*)3456/)[1]
|
87
103
|
layout.gsub!(["12", "3456", "7890"].join(digit_grouping_symbol), "%{major_value}")
|
88
104
|
digit_grouping_symbol
|
89
105
|
end
|
90
106
|
|
91
107
|
def parse_groups_of_three(layout)
|
92
|
-
@group_numbers_in_threes = true
|
93
108
|
digit_grouping_symbol = layout.match(/1([^0-9]*)234/)[1]
|
94
109
|
layout.gsub!(["1", "234", "567", "890"].join(digit_grouping_symbol), "%{major_value}")
|
95
110
|
digit_grouping_symbol
|
@@ -104,10 +119,13 @@ module Maguire
|
|
104
119
|
|
105
120
|
digit_grouping_symbol =
|
106
121
|
if layout =~ SOUTH_ASIAN_GROUPING_RE
|
122
|
+
digit_grouping_style = 'south_asian'
|
107
123
|
parse_groups_in_south_asian_style(layout)
|
108
124
|
elsif layout =~ GROUPS_OF_FOUR_RE
|
125
|
+
digit_grouping_style = 'quadruples'
|
109
126
|
parse_groups_of_four(layout)
|
110
127
|
elsif layout =~ GROUPS_OF_THREE_RE
|
128
|
+
digit_grouping_style = 'triples'
|
111
129
|
parse_groups_of_three(layout)
|
112
130
|
end
|
113
131
|
|
@@ -120,7 +138,8 @@ module Maguire
|
|
120
138
|
{
|
121
139
|
layout: layout,
|
122
140
|
decimal_symbol: decimal_symbol,
|
123
|
-
digit_grouping_symbol: digit_grouping_symbol
|
141
|
+
digit_grouping_symbol: digit_grouping_symbol,
|
142
|
+
digit_grouping_style: digit_grouping_style
|
124
143
|
}
|
125
144
|
end
|
126
145
|
|
@@ -136,7 +155,8 @@ module Maguire
|
|
136
155
|
{
|
137
156
|
layout: layout,
|
138
157
|
decimal_symbol: decimal_symbol,
|
139
|
-
digit_grouping_symbol: @positive_formatting[:digit_grouping_symbol]
|
158
|
+
digit_grouping_symbol: @positive_formatting[:digit_grouping_symbol],
|
159
|
+
digit_grouping_style: @positive_formatting[:digit_grouping_style]
|
140
160
|
}
|
141
161
|
end
|
142
162
|
|
@@ -159,14 +179,15 @@ module Maguire
|
|
159
179
|
groups
|
160
180
|
end
|
161
181
|
|
162
|
-
def split_value_into_groups(value)
|
182
|
+
def split_value_into_groups(value, style)
|
163
183
|
value = value.to_s
|
164
184
|
|
165
|
-
|
185
|
+
case(style)
|
186
|
+
when 'triples'
|
166
187
|
split_value_into_groups_of(value, 3)
|
167
|
-
|
188
|
+
when 'quadruples'
|
168
189
|
split_value_into_groups_of(value, 4)
|
169
|
-
|
190
|
+
when 'south_asian'
|
170
191
|
(value, partial) = break_off(value, 3)
|
171
192
|
|
172
193
|
split_value_into_groups_of(value, 2) << partial
|
data/lib/maguire/version.rb
CHANGED
metadata
CHANGED
@@ -1,52 +1,46 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maguire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Tim Evans
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: nokogiri
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: pry
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rake
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - '='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - '='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,17 +55,15 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: codeclimate-test-reporter
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
description: Currency data acquired from the Swiss Association for Standardization
|
@@ -81,14 +72,8 @@ executables: []
|
|
81
72
|
extensions: []
|
82
73
|
extra_rdoc_files: []
|
83
74
|
files:
|
84
|
-
-
|
85
|
-
-
|
86
|
-
- lib/maguire/hash.rb
|
87
|
-
- lib/maguire/locale.rb
|
88
|
-
- lib/maguire/locale.rb~
|
89
|
-
- lib/maguire/version.rb
|
90
|
-
- lib/maguire/version.rb~
|
91
|
-
- lib/maguire.rb
|
75
|
+
- LICENSE
|
76
|
+
- README.md
|
92
77
|
- iso_data/patch_layer/mga.json
|
93
78
|
- iso_data/patch_layer/mro.json
|
94
79
|
- iso_data/seed_layer/aed.json
|
@@ -279,6 +264,7 @@ files:
|
|
279
264
|
- iso_data/symbol_layer/ars.json
|
280
265
|
- iso_data/symbol_layer/aud.json
|
281
266
|
- iso_data/symbol_layer/awg.json
|
267
|
+
- iso_data/symbol_layer/azn.json
|
282
268
|
- iso_data/symbol_layer/bas.json
|
283
269
|
- iso_data/symbol_layer/bbd.json
|
284
270
|
- iso_data/symbol_layer/bdt.json
|
@@ -354,7 +340,6 @@ files:
|
|
354
340
|
- iso_data/symbol_layer/ltl.json
|
355
341
|
- iso_data/symbol_layer/lvl.json
|
356
342
|
- iso_data/symbol_layer/lyd.json
|
357
|
-
- iso_data/symbol_layer/lyd.json~
|
358
343
|
- iso_data/symbol_layer/mad.json
|
359
344
|
- iso_data/symbol_layer/mdl.json
|
360
345
|
- iso_data/symbol_layer/mga.json
|
@@ -377,7 +362,6 @@ files:
|
|
377
362
|
- iso_data/symbol_layer/nzd.json
|
378
363
|
- iso_data/symbol_layer/omr.json
|
379
364
|
- iso_data/symbol_layer/pab.json
|
380
|
-
- iso_data/symbol_layer/pab.json~
|
381
365
|
- iso_data/symbol_layer/pen.json
|
382
366
|
- iso_data/symbol_layer/pgk.json
|
383
367
|
- iso_data/symbol_layer/php.json
|
@@ -432,31 +416,34 @@ files:
|
|
432
416
|
- iso_data/symbol_layer/zar.json
|
433
417
|
- iso_data/symbol_layer/zmk.json
|
434
418
|
- iso_data/symbol_layer/zmw.json
|
419
|
+
- lib/maguire.rb
|
420
|
+
- lib/maguire/currency.rb
|
421
|
+
- lib/maguire/data_set.rb
|
422
|
+
- lib/maguire/hash.rb
|
423
|
+
- lib/maguire/locale.rb
|
424
|
+
- lib/maguire/version.rb
|
435
425
|
- locale/en_US.json
|
436
|
-
- LICENSE
|
437
|
-
- README.md
|
438
426
|
homepage: http://github.com/paddle8/maguire
|
439
427
|
licenses: []
|
428
|
+
metadata: {}
|
440
429
|
post_install_message:
|
441
430
|
rdoc_options: []
|
442
431
|
require_paths:
|
443
432
|
- lib
|
444
433
|
required_ruby_version: !ruby/object:Gem::Requirement
|
445
|
-
none: false
|
446
434
|
requirements:
|
447
|
-
- -
|
435
|
+
- - ">="
|
448
436
|
- !ruby/object:Gem::Version
|
449
437
|
version: '0'
|
450
438
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
451
|
-
none: false
|
452
439
|
requirements:
|
453
|
-
- -
|
440
|
+
- - ">="
|
454
441
|
- !ruby/object:Gem::Version
|
455
442
|
version: 1.3.6
|
456
443
|
requirements: []
|
457
444
|
rubyforge_project:
|
458
|
-
rubygems_version:
|
445
|
+
rubygems_version: 2.2.2
|
459
446
|
signing_key:
|
460
|
-
specification_version:
|
447
|
+
specification_version: 4
|
461
448
|
summary: Locale-specific currency formatting for Ruby
|
462
449
|
test_files: []
|
data/lib/maguire/locale.rb~
DELETED
@@ -1,189 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
|
3
|
-
module Maguire
|
4
|
-
class Locale
|
5
|
-
class NotSupportedError < StandardError; end
|
6
|
-
|
7
|
-
attr_reader :locale, :code, :symbol, :locale
|
8
|
-
|
9
|
-
def initialize(locale, locale_data={})
|
10
|
-
@locale = locale
|
11
|
-
|
12
|
-
layouts = locale_data[:layouts]
|
13
|
-
@positive_formatting = parse_layout(layouts[:positive])
|
14
|
-
@negative_formatting = parse_layout(layouts[:negative])
|
15
|
-
if layouts[:zero]
|
16
|
-
@zero_formatting = parse_zero_layout([:zero])
|
17
|
-
end
|
18
|
-
|
19
|
-
@currency_overlays = locale_data
|
20
|
-
end
|
21
|
-
|
22
|
-
def inspect
|
23
|
-
"<##{self.class} locale=#{locale}>"
|
24
|
-
end
|
25
|
-
|
26
|
-
def format(value, currency, options={})
|
27
|
-
major_value = value.abs / currency.precision
|
28
|
-
minor_value = round(value.abs - major_value * currency.precision)
|
29
|
-
|
30
|
-
overlay = @currency_overlays[currency.code.downcase.to_sym]
|
31
|
-
currency = currency.overlay(overlay) if overlay
|
32
|
-
|
33
|
-
groups = split_value_into_groups(major_value)
|
34
|
-
|
35
|
-
formatting = value >= 0 ?
|
36
|
-
@positive_formatting : @negative_formatting
|
37
|
-
|
38
|
-
symbol = currency.symbol
|
39
|
-
if options[:html] && currency.symbol_html
|
40
|
-
symbol = currency.symbol_html
|
41
|
-
end
|
42
|
-
|
43
|
-
strip_insignificant_zeros = options[:strip_insignificant_zeros]
|
44
|
-
if options[:no_minor_units] || currency.minor_units == 0
|
45
|
-
minor_value = 0
|
46
|
-
strip_insignificant_zeros = true
|
47
|
-
end
|
48
|
-
|
49
|
-
if strip_insignificant_zeros && minor_value == 0
|
50
|
-
minor_value = ""
|
51
|
-
decimal_symbol = ""
|
52
|
-
else
|
53
|
-
minor_value = minor_value.to_s.rjust(currency.minor_units, "0")
|
54
|
-
decimal_symbol = formatting[:decimal_symbol]
|
55
|
-
|
56
|
-
if minor_value == 0 && @zero_formatting
|
57
|
-
formatting = @zero_formatting
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
formatting[:layout] % {
|
62
|
-
symbol: symbol,
|
63
|
-
code: currency.code,
|
64
|
-
decimal: decimal_symbol,
|
65
|
-
major_value: groups.join(formatting[:digit_grouping_symbol]),
|
66
|
-
minor_value: minor_value
|
67
|
-
}
|
68
|
-
end
|
69
|
-
|
70
|
-
private
|
71
|
-
|
72
|
-
SOUTH_ASIAN_GROUPING_RE = /([0-9]{2}[^0-9]){3}[0-9]{3}[^0-9]/
|
73
|
-
GROUPS_OF_FOUR_RE = /([0-9]{4}[^0-9])+/
|
74
|
-
GROUPS_OF_THREE_RE = /([0-9]{3}[^0-9]){3}+/
|
75
|
-
|
76
|
-
def parse_groups_in_south_asian_style(layout)
|
77
|
-
@group_numbers_in_south_asian_style = true
|
78
|
-
digit_grouping_symbol = layout.match(/1([^0-9]*)23/)[1]
|
79
|
-
layout.gsub!(["1", "23", "45", "67", "890"].join(digit_grouping_symbol), "%{major_value}")
|
80
|
-
digit_grouping_symbol
|
81
|
-
end
|
82
|
-
|
83
|
-
def parse_groups_of_four(layout)
|
84
|
-
@group_numbers_in_fours = true
|
85
|
-
digit_grouping_symbol = layout.match(/12([^0-9]*)3456/)[1]
|
86
|
-
layout.gsub!(["12", "3456", "7890"].join(digit_grouping_symbol), "%{major_value}")
|
87
|
-
digit_grouping_symbol
|
88
|
-
end
|
89
|
-
|
90
|
-
def parse_groups_of_three(layout)
|
91
|
-
@group_numbers_in_threes = true
|
92
|
-
digit_grouping_symbol = layout.match(/1([^0-9]*)234/)[1]
|
93
|
-
layout.gsub!(["1", "234", "567", "890"].join(digit_grouping_symbol), "%{major_value}")
|
94
|
-
digit_grouping_symbol
|
95
|
-
end
|
96
|
-
|
97
|
-
# Currency layouts are defined using a standard format of:
|
98
|
-
# 1234567890.12 USD
|
99
|
-
# 1,23,45,67,890.12 USD
|
100
|
-
# 12,3456,7890.12 USD
|
101
|
-
def parse_layout(layout)
|
102
|
-
layout = layout.dup
|
103
|
-
|
104
|
-
digit_grouping_symbol =
|
105
|
-
if layout =~ SOUTH_ASIAN_GROUPING_RE
|
106
|
-
parse_groups_in_south_asian_style(layout)
|
107
|
-
elsif layout =~ GROUPS_OF_FOUR_RE
|
108
|
-
parse_groups_of_four(layout)
|
109
|
-
elsif layout =~ GROUPS_OF_THREE_RE
|
110
|
-
parse_groups_of_three(layout)
|
111
|
-
end
|
112
|
-
|
113
|
-
layout.gsub!("USD", "%{code}")
|
114
|
-
layout.gsub!("$", "%{symbol}")
|
115
|
-
layout.gsub!("12", "%{minor_value}")
|
116
|
-
decimal_symbol = layout.match(/major_value}(.*)%{minor_value/)[1]
|
117
|
-
layout.gsub!(decimal_symbol, "%{decimal}")
|
118
|
-
|
119
|
-
{
|
120
|
-
layout: layout,
|
121
|
-
decimal_symbol: decimal_symbol,
|
122
|
-
digit_grouping_symbol: digit_grouping_symbol
|
123
|
-
}
|
124
|
-
end
|
125
|
-
|
126
|
-
def parse_zero_layout(layout)
|
127
|
-
layout = layout.dup
|
128
|
-
|
129
|
-
layout.gsub!("USD", "%{code}")
|
130
|
-
layout.gsub!("$", "%{symbol}")
|
131
|
-
layout.gsub!("1", "%{major_value}")
|
132
|
-
decimal_symbol = @positive_layout[:decimal_symbol]
|
133
|
-
layout.gsub!(decimal_symbol, "%{decimal}")
|
134
|
-
|
135
|
-
{
|
136
|
-
layout: layout,
|
137
|
-
decimal_symbol: decimal_symbol,
|
138
|
-
digit_grouping_symbol: @positive_layout[:digit_grouping_symbol]
|
139
|
-
}
|
140
|
-
end
|
141
|
-
|
142
|
-
def round(value)
|
143
|
-
value.to_i
|
144
|
-
end
|
145
|
-
|
146
|
-
def break_off(value, number)
|
147
|
-
len = value.length
|
148
|
-
number = len if number > len
|
149
|
-
[value.slice(0, len - number), value.slice(len - number, len)]
|
150
|
-
end
|
151
|
-
|
152
|
-
def split_value_into_groups_of(value, number)
|
153
|
-
groups = []
|
154
|
-
while value && value.length > 0
|
155
|
-
(value, partial) = break_off(value, number)
|
156
|
-
groups.unshift(partial)
|
157
|
-
end
|
158
|
-
groups
|
159
|
-
end
|
160
|
-
|
161
|
-
def split_value_into_groups(value)
|
162
|
-
value = value.to_s
|
163
|
-
|
164
|
-
if @group_numbers_in_threes
|
165
|
-
split_value_into_groups_of(value, 3)
|
166
|
-
elsif @group_numbers_in_fours
|
167
|
-
split_value_into_groups_of(value, 4)
|
168
|
-
elsif @group_numbers_in_south_asian_style
|
169
|
-
(value, partial) = break_off(value, 3)
|
170
|
-
|
171
|
-
split_value_into_groups_of(value, 2) << partial
|
172
|
-
else
|
173
|
-
[]
|
174
|
-
end
|
175
|
-
end
|
176
|
-
|
177
|
-
class << self
|
178
|
-
def lookup(options)
|
179
|
-
locale = "#{options[:lang].downcase}_#{options[:country].upcase}"
|
180
|
-
data = Maguire.locale_paths.load(locale)
|
181
|
-
if data.nil?
|
182
|
-
raise Locale::NotSupportedError.new("The locale #{locale} isn't supported")
|
183
|
-
else
|
184
|
-
self.new(locale, data)
|
185
|
-
end
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|
189
|
-
end
|
data/lib/maguire/version.rb~
DELETED