active_dynamic 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/lib/active_dynamic/has_dynamic_attributes.rb +20 -8
- data/lib/active_dynamic/version.rb +1 -1
- 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: 8330d30761f09e9432dd1526f9a0e93abe7e79ee
|
4
|
+
data.tar.gz: 3b423c2a7a08aeca41fdecdaf395a4a28858d10b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d056f3d4d289a5028934d3930c20aa21c3cc4af30688de0ee6cb2ddd18713343a20f0a05c5b3c7fc8ee8210b07547e3176110b5330d9bdc6e1e5da05a6caf1e9
|
7
|
+
data.tar.gz: 6b5087d446235b4ce70217b2df033db18a6457e838bea33217d78787837e6152a58fe206d0d93f9fbc03bf9248cbec6af3495c4aca82b843ca273dac57509c35
|
data/.gitignore
CHANGED
@@ -4,9 +4,7 @@ module ActiveDynamic
|
|
4
4
|
|
5
5
|
included do
|
6
6
|
has_many :active_dynamic_attributes, class_name: ActiveDynamic::Attribute, autosave: true, as: :customizable
|
7
|
-
|
8
7
|
before_save :save_dynamic_attributes
|
9
|
-
after_find :load_dynamic_attributes
|
10
8
|
end
|
11
9
|
|
12
10
|
def dynamic_attributes
|
@@ -17,15 +15,28 @@ module ActiveDynamic
|
|
17
15
|
end
|
18
16
|
end
|
19
17
|
|
20
|
-
|
18
|
+
def dynamic_attributes_loaded?
|
19
|
+
@dynamic_attributes_loaded ||= false
|
20
|
+
end
|
21
|
+
|
22
|
+
def respond_to?(method_name, include_private = false)
|
23
|
+
unless dynamic_attributes_loaded?
|
24
|
+
load_dynamic_attributes
|
25
|
+
end
|
26
|
+
dynamic_attributes.find { |attr| attr.name == method_name.to_s.gsub(/=/, '') }.present? || super
|
27
|
+
end
|
21
28
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
29
|
+
def method_missing(method_name, *arguments, &block)
|
30
|
+
if dynamic_attributes_loaded?
|
31
|
+
super
|
32
|
+
else
|
33
|
+
load_dynamic_attributes
|
34
|
+
send(method_name, *arguments, &block)
|
35
|
+
end
|
27
36
|
end
|
28
37
|
|
38
|
+
private
|
39
|
+
|
29
40
|
def generate_accessors(fields)
|
30
41
|
fields.each do |field|
|
31
42
|
|
@@ -58,6 +69,7 @@ module ActiveDynamic
|
|
58
69
|
end
|
59
70
|
|
60
71
|
generate_accessors dynamic_attributes
|
72
|
+
@dynamic_attributes_loaded = true
|
61
73
|
end
|
62
74
|
|
63
75
|
def save_dynamic_attributes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_dynamic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Constantine Lebedev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|