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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dc4201ba6cb9b884ee4fefdcd9aacb0c1dd87788
4
- data.tar.gz: e3c63faa6d018537021f723d131e1a53955cbbb6
3
+ metadata.gz: 6e3431618487aca9441dc63def598c19facee8c2
4
+ data.tar.gz: 6af701855851fb9d9723c3afa9d4a53de3d93682
5
5
  SHA512:
6
- metadata.gz: 08f774a99e8ae7a4bde8587d737dc1ed60fc17d55f2af435dcdcd9d35b56004c579d004158417dc9c5ad11d666c3a41a2448de7950fa12f3ea00b2766df9319a
7
- data.tar.gz: bb1db9adae93f9b6db89739515933698721da24f5685767a26f4afbb0748ebfe771f9cad88d6eaedbd63a62f7aa415b46b02389c4f1b317b32bed78763e37aee
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
- default_value = default.dup rescue default
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 : default_value))
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}", (default_value.is_a?(Class) ? default_value.new : default_value)))
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
 
@@ -1,3 +1,3 @@
1
1
  module ModelPack
2
- VERSION = "0.9.7"
2
+ VERSION = "0.9.8"
3
3
  end
@@ -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.7
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.6
99
+ rubygems_version: 2.4.3
100
100
  signing_key:
101
101
  specification_version: 4
102
102
  summary: Model Pack – simple models