d12n 0.0.5 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b325c6c4d24775e4056d7102380928c90291fe2
4
- data.tar.gz: eb007a871dd91240dfe25195349ee8060b84533d
3
+ metadata.gz: c5df34197d3bfffd42c3b425ce8f2fa28cbbaf9a
4
+ data.tar.gz: 7d97e78a228379a178893e457466506802fd17fb
5
5
  SHA512:
6
- metadata.gz: bb13167ab9842d3ec4a0e22c3577bb693c537693eeebc5e2f6e1d0e55c381dddc9854d9ce38a71c6c039c46e0f685f104a7018b7705a5e27eb54d75833df7162
7
- data.tar.gz: 498b429e2fadeb20583592d807dd4f969344e127a9098de27598c832ab345665894f965bfc4f18b576ae5d929f619321f8cd56483d27e0750c853034a1f3b657
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
- D12n.config.strategy = D12n::Strategy::DecimalPoint # the default, no need to set it
43
- D12n.config.strategy = D12n::Strategy::DecimalComma # Use this for example in DE or NL locales
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
@@ -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::DecimalPoint
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
- # must raise ArgumentError when format is invalid
9
- def formatted_to_bigdecimal(formatted)
10
- BigDecimal.new formatted.tr('.', '').tr(',', '.')
7
+ private
8
+
9
+ def format_delimiter
10
+ '.'
11
11
  end
12
12
 
13
- def bigdecimal_to_formatted(internal)
14
- ActiveSupport::NumberHelper::NumberToDelimitedConverter.convert(internal, {})
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
- # must raise ArgumentError when format is invalid
9
- def formatted_to_bigdecimal(formatted)
10
- BigDecimal.new formatted.tr(',', '')
9
+ private
10
+
11
+ def format_delimiter
12
+ ','
11
13
  end
12
14
 
13
- def bigdecimal_to_formatted(internal)
14
- ActiveSupport::NumberHelper::NumberToDelimitedConverter.convert(internal, {})
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.0.5
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