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 +4 -4
- data/lib/storext/override.rb +17 -5
- data/lib/storext/override/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0d6e6fc1337b4b96e0fc1cbd39bf5700033dcf6
|
4
|
+
data.tar.gz: cde3e28318a214bc3f091380cc87294edd4f5f6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c529752d04d17454ed87c5765f970c5457a310a66872943b82905dad5edfa59860ce310b4a8ee7ca1039f7ad6ecbedd71a378a03cee28b06c9babd5511c7d2e
|
7
|
+
data.tar.gz: 840240376d10ed1be22affa0eebcb19a539cb0f1ca512067e8c5c50537be85eb441da0114fdc89c4d5ea79bd1c78d5c244cf883f78e871340f8a12a778d48e4f
|
data/lib/storext/override.rb
CHANGED
@@ -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
|
-
|
14
|
-
|
15
|
-
|
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
|
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.
|
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:
|
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.
|
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
|