model_pack 0.9.7 → 0.9.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/model_pack/class_methods.rb +3 -3
- data/lib/model_pack/version.rb +1 -1
- data/spec/model_pack_spec.rb +2 -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: 6e3431618487aca9441dc63def598c19facee8c2
|
4
|
+
data.tar.gz: 6af701855851fb9d9723c3afa9d4a53de3d93682
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3b66df9a504671fa2855fa778ae4569ae16c87cf0f5e4b907737c7da3571176986421fc6a7a7268d2f7753eee48c713f5496861604c067361e7e8c327ad249f
|
7
|
+
data.tar.gz: e64b579657bf9b061a7db270fb242e3b478ae7156f90b243f5f2a08ece9699bd2b2ad4153de9e107cb20977ac40056816c94c6896fab0891c609e88184641976
|
@@ -14,17 +14,17 @@ module ModelPack
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def attribute_reader(name, default: nil, as: nil, serialize: nil, predicate: nil)
|
17
|
-
|
17
|
+
dv = default.dup rescue default
|
18
18
|
|
19
19
|
define_method name do
|
20
20
|
instance_variable_defined?("@#{name}") ?
|
21
|
-
instance_variable_get("@#{name}") : instance_variable_set("@#{name}", (as ? as.new :
|
21
|
+
instance_variable_get("@#{name}") : instance_variable_set("@#{name}", (as ? as.new : (dv.is_a?(Proc) ? dv.call : dv )))
|
22
22
|
end
|
23
23
|
|
24
24
|
# define predicate method if required
|
25
25
|
define_method "#{name}?" do
|
26
26
|
value = (instance_variable_defined?("@#{name}") ?
|
27
|
-
instance_variable_get("@#{name}") : instance_variable_set("@#{name}", (
|
27
|
+
instance_variable_get("@#{name}") : instance_variable_set("@#{name}", (as ? as.new : (dv.is_a?(Proc) ? dv.call : dv ))))
|
28
28
|
predicate.is_a?(Proc) ? predicate.call(value) : !!value # false for nil or false
|
29
29
|
end if predicate
|
30
30
|
|
data/lib/model_pack/version.rb
CHANGED
data/spec/model_pack_spec.rb
CHANGED
@@ -275,11 +275,13 @@ describe ModelPack::ClassMethods do
|
|
275
275
|
|
276
276
|
attribute :always_false, default: false
|
277
277
|
attribute :always_true, default: true
|
278
|
+
attribute :dynamic_default, default: lambda { 1+5 }
|
278
279
|
end
|
279
280
|
|
280
281
|
data = BooleanData.new
|
281
282
|
|
282
283
|
expect(data.always_false).to be false
|
283
284
|
expect(data.always_true).to be true
|
285
|
+
expect(data.dynamic_default).to be 6
|
284
286
|
end
|
285
287
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: model_pack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- inre
|
@@ -96,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
96
|
version: 2.3.0
|
97
97
|
requirements: []
|
98
98
|
rubyforge_project:
|
99
|
-
rubygems_version: 2.4.
|
99
|
+
rubygems_version: 2.4.3
|
100
100
|
signing_key:
|
101
101
|
specification_version: 4
|
102
102
|
summary: Model Pack – simple models
|