storext-override 0.2.0 → 0.4.0

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: 5c93086218e4ca329cb9a62bd6bf697103bd06f7
4
- data.tar.gz: 30a40760d63e45e8b36b1605e4d297c9ac90a4d9
3
+ metadata.gz: c0d6e6fc1337b4b96e0fc1cbd39bf5700033dcf6
4
+ data.tar.gz: cde3e28318a214bc3f091380cc87294edd4f5f6a
5
5
  SHA512:
6
- metadata.gz: c5d6a41c869423a68741834136e2b1af63c28f5d30ca8713a8b19222db42a7127ea6d3ebb40fc25f2e564c472deb5882af1ad129c850a862eae62f3aeaf653e0
7
- data.tar.gz: a8ce92acdf8f7d1689f1913f1aa243211e770793785bac7d2b59a0022349522a504a209b370c840e2362202769e79794960dde9ddf88b180b2d784d6cdeaae43
6
+ metadata.gz: 8c529752d04d17454ed87c5765f970c5457a310a66872943b82905dad5edfa59860ce310b4a8ee7ca1039f7ad6ecbedd71a378a03cee28b06c9babd5511c7d2e
7
+ data.tar.gz: 840240376d10ed1be22affa0eebcb19a539cb0f1ca512067e8c5c50537be85eb441da0114fdc89c4d5ea79bd1c78d5c244cf883f78e871340f8a12a778d48e4f
@@ -6,13 +6,25 @@ module Storext
6
6
  extend ActiveSupport::Concern
7
7
 
8
8
  included do
9
- include Storext.model
9
+ include Storext.model unless self.respond_to? :storext_options
10
+ end
11
+
12
+ def storext_override_discard_value?(attr)
13
+ send(:"#{attr}_without_parent_default").blank? &&
14
+ self.class.override_options[:ignore_override_if_blank]
10
15
  end
11
16
 
12
17
  module ClassMethods
13
- def storext_override(association_name, column_name, opts = {})
14
- origin_class = if opts[:class]
15
- opts[:class]
18
+
19
+ attr_accessor :override_options
20
+
21
+ def storext_override(association_name, column_name, override_options = {})
22
+ self.override_options = {
23
+ ignore_override_if_blank: false
24
+ }.merge(override_options)
25
+
26
+ origin_class = if override_options[:class]
27
+ override_options[:class]
16
28
  else
17
29
  association =
18
30
  storext_overrider_find_association(association_name)
@@ -81,7 +93,7 @@ module Storext
81
93
  ivar = "@override_#{attr}"
82
94
 
83
95
  define_method :"override_#{attr}=" do |bool|
84
- if [0, '0', false].include?(bool)
96
+ if [0, '0', false].include?(bool) || storext_override_discard_value?(attr)
85
97
  destroy_key(column_name, attr)
86
98
  instance_variable_set(ivar, false)
87
99
  else
@@ -1,5 +1,5 @@
1
1
  module Storext
2
2
  module Override
3
- VERSION = "0.2.0"
3
+ VERSION = '0.4.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: storext-override
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - G5
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-08-26 00:00:00.000000000 Z
13
+ date: 2016-02-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  version: '0'
104
104
  requirements: []
105
105
  rubyforge_project:
106
- rubygems_version: 2.4.5
106
+ rubygems_version: 2.4.6
107
107
  signing_key:
108
108
  specification_version: 4
109
109
  summary: Mimic and be able to override another Storext model