d12n 0.0.2 → 0.0.3
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 +41 -0
- data/lib/d12n.rb +1 -1
- data/lib/d12n/model_support.rb +21 -2
- data/lib/d12n/strategy/decimal_comma.rb +1 -0
- data/lib/d12n/strategy/decimal_point.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abcfcf50cfc7704732eb93a84fca8dacb37e6347
|
4
|
+
data.tar.gz: 7ef57e5988fd6d9185032db1dcaf1cfb48a602ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8241902f3b72b64ed42ee7969b3eedf1165b988636f8508e467cd085f4dfa1cd179709c5021a2b410ef3ff0f204039c512f5bfe7345e613ac181381f3825bf6
|
7
|
+
data.tar.gz: 0a64084146dd829f4f1ae50140ff74d1bcb5edde9dc649964cd4eb4c1efa2b4c45903930ffa8ac90535616c474680b2186b76159d263498e80d3c67a89799aa8
|
data/README.md
CHANGED
@@ -8,3 +8,44 @@ original user input can be validated and rendered back to the user during valida
|
|
8
8
|
|
9
9
|
```ruby
|
10
10
|
gem 'd12n'
|
11
|
+
```
|
12
|
+
|
13
|
+
Sample model
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
class Dummy
|
17
|
+
include D12n::ModelSupport
|
18
|
+
|
19
|
+
attr_accessor :amount
|
20
|
+
d12n_attribute :amount
|
21
|
+
end
|
22
|
+
```
|
23
|
+
|
24
|
+
```ruby
|
25
|
+
d = Dummy.new
|
26
|
+
|
27
|
+
d.amount = 1_234.56
|
28
|
+
d.local_amount # "1,234.56"
|
29
|
+
|
30
|
+
d.local_amount = '3,456.78'
|
31
|
+
d.amount.class # BigDecimal
|
32
|
+
d.amount.to_f # 3456.78
|
33
|
+
|
34
|
+
d.local_amount = 'invalid'
|
35
|
+
d.amount.to_f # 3456.78, did not change
|
36
|
+
```
|
37
|
+
|
38
|
+
## Configuration
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
D12n.config.strategy = D12n::Strategy::DecimalPoint # the default
|
42
|
+
D12n.config.strategy = D12n::Strategy::DecimalComma
|
43
|
+
```
|
44
|
+
|
45
|
+
### Custom method prefix
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
d12n_attribute :amount, prefix: 'localized'
|
49
|
+
```
|
50
|
+
|
51
|
+
Would give you `localized_amount` instead of `local_amount`.
|
data/lib/d12n.rb
CHANGED
data/lib/d12n/model_support.rb
CHANGED
@@ -5,10 +5,29 @@ module D12n
|
|
5
5
|
options = args.extract_options!
|
6
6
|
prefix = options[:prefix] || 'local'
|
7
7
|
args.each do |name|
|
8
|
-
|
9
|
-
|
8
|
+
define_reader name, prefix
|
9
|
+
define_writer name, prefix
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def define_reader(name, prefix)
|
16
|
+
define_method "#{prefix}_#{name}" do
|
17
|
+
local = instance_variable_get "@#{prefix}_#{name}"
|
18
|
+
return local if local
|
19
|
+
ActiveSupport::NumberHelper::NumberToDelimitedConverter.convert(send(name), {})
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def define_writer(name, prefix)
|
24
|
+
define_method "#{prefix}_#{name}=" do |val|
|
25
|
+
begin
|
10
26
|
instance_variable_set "@#{prefix}_#{name}", val
|
11
27
|
send "#{name}=", D12n.strategy.number_to_bigdecimal(val)
|
28
|
+
val
|
29
|
+
rescue ArgumentError
|
30
|
+
val
|
12
31
|
end
|
13
32
|
end
|
14
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: d12n
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mkon
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|