d12n 0.0.5 → 0.1.1
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 +4 -4
- data/README.md +10 -2
- data/lib/d12n.rb +2 -1
- data/lib/d12n/strategy/decimal_comma.rb +7 -7
- data/lib/d12n/strategy/decimal_point.rb +7 -5
- data/lib/d12n/strategy/default.rb +28 -0
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5df34197d3bfffd42c3b425ce8f2fa28cbbaf9a
|
4
|
+
data.tar.gz: 7d97e78a228379a178893e457466506802fd17fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db30f3bce1318b51a050acc1c1bc16b85902d5d48e416730f46ec68e3719259efb710547423a0284336b496066ff1906b9d8e7076dc37bb5b2ff13672b5a925b
|
7
|
+
data.tar.gz: 4e20e364e6228d631c081d44a6296b235fd2083716fc2ae3af2e0f307cba7ec59aa3704bfdecd3fa24564bb299c5c7a8b8a860f2d8e5afa4638218e2fcebfef2
|
data/README.md
CHANGED
@@ -39,8 +39,16 @@ d.amount.to_f # 3456.78, did not change
|
|
39
39
|
## Configuration
|
40
40
|
|
41
41
|
```ruby
|
42
|
-
|
43
|
-
|
42
|
+
# the default, no need to set it
|
43
|
+
# It will use the settings from your I18n locale (number.format) to parse and generate the formatted number
|
44
|
+
# It is heavily recommended to use this
|
45
|
+
D12n.config.strategy = D12n::Strategy::Default
|
46
|
+
|
47
|
+
# Hard coded strategy using decimal point
|
48
|
+
D12n.config.strategy = D12n::Strategy::DecimalPoint
|
49
|
+
|
50
|
+
# Hard coded strategy using decimal comma
|
51
|
+
D12n.config.strategy = D12n::Strategy::DecimalComma
|
44
52
|
```
|
45
53
|
|
46
54
|
### Custom method prefix
|
data/lib/d12n.rb
CHANGED
@@ -8,11 +8,12 @@ module D12n
|
|
8
8
|
module Strategy
|
9
9
|
autoload :DecimalPoint, 'd12n/strategy/decimal_point'
|
10
10
|
autoload :DecimalComma, 'd12n/strategy/decimal_comma'
|
11
|
+
autoload :Default, 'd12n/strategy/default'
|
11
12
|
end
|
12
13
|
|
13
14
|
autoload :ModelSupport, 'd12n/model_support'
|
14
15
|
|
15
16
|
def self.strategy
|
16
|
-
config.strategy || Strategy::
|
17
|
+
config.strategy || Strategy::Default
|
17
18
|
end
|
18
19
|
end
|
@@ -1,17 +1,17 @@
|
|
1
|
-
require 'bigdecimal'
|
2
|
-
|
3
1
|
module D12n
|
4
2
|
module Strategy
|
5
3
|
module DecimalComma
|
4
|
+
include Default
|
6
5
|
extend self
|
7
6
|
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
private
|
8
|
+
|
9
|
+
def format_delimiter
|
10
|
+
'.'
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
14
|
-
|
13
|
+
def format_separator
|
14
|
+
','
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -3,15 +3,17 @@ require 'bigdecimal'
|
|
3
3
|
module D12n
|
4
4
|
module Strategy
|
5
5
|
module DecimalPoint
|
6
|
+
include Default
|
6
7
|
extend self
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
9
|
+
private
|
10
|
+
|
11
|
+
def format_delimiter
|
12
|
+
','
|
11
13
|
end
|
12
14
|
|
13
|
-
def
|
14
|
-
|
15
|
+
def format_separator
|
16
|
+
'.'
|
15
17
|
end
|
16
18
|
end
|
17
19
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module D12n
|
2
|
+
module Strategy
|
3
|
+
module Default
|
4
|
+
extend self
|
5
|
+
|
6
|
+
# must raise ArgumentError when format is invalid
|
7
|
+
def formatted_to_bigdecimal(formatted)
|
8
|
+
BigDecimal.new formatted.tr(format_delimiter, '').tr(format_separator, '.')
|
9
|
+
end
|
10
|
+
|
11
|
+
def bigdecimal_to_formatted(internal)
|
12
|
+
ActiveSupport::NumberHelper::NumberToDelimitedConverter.convert(internal, {})
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
# seperates the thousands, eg 1,000
|
18
|
+
def format_delimiter
|
19
|
+
::I18n.translate(:'number.format.delimiter')
|
20
|
+
end
|
21
|
+
|
22
|
+
# seperates the decimal points, eg 9.95
|
23
|
+
def format_separator
|
24
|
+
::I18n.translate(:'number.format.separator')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: d12n
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Konstantin Munteanu
|
@@ -30,6 +30,20 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '6'
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: i18n
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0.7'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0.7'
|
33
47
|
- !ruby/object:Gem::Dependency
|
34
48
|
name: rspec
|
35
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -71,6 +85,7 @@ files:
|
|
71
85
|
- lib/d12n/model_support.rb
|
72
86
|
- lib/d12n/strategy/decimal_comma.rb
|
73
87
|
- lib/d12n/strategy/decimal_point.rb
|
88
|
+
- lib/d12n/strategy/default.rb
|
74
89
|
homepage: https://github.com/mkon/d12n
|
75
90
|
licenses:
|
76
91
|
- MIT
|