d12n 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|