nested 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/nested.rb +22 -4
- data/nested.gemspec +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: 1f1b8488edca79e7f4326470f3e5182edefe611c
|
4
|
+
data.tar.gz: b269294899ef8132adb3061fd99ab6b5e4830867
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97ef31ce4db550a90afef2b9dad762500dae8af68ff5f0a7bbf958151e2a1870838a3acd20e5c81d79de0029a8eed6f50f8ff3b2be8119eb056c370251143dbc
|
7
|
+
data.tar.gz: 1d2872a7c21971a4659dfb387c7abe0fd961f89cdf265b26f677a3eadee139fb0b33c47a7dd3c95a6a0178e9da9fc5e5114b8f42c9d501eeb4d27065b0b64e1a
|
data/lib/nested.rb
CHANGED
@@ -51,8 +51,13 @@ module Nested
|
|
51
51
|
self.instance_variable_set("@#{@__resource.instance_variable_name}", fetched)
|
52
52
|
end
|
53
53
|
|
54
|
-
|
55
|
-
|
54
|
+
if member?
|
55
|
+
__serialize_args = @parent.instance_variable_get("@__serialize_args")
|
56
|
+
__serialize_block = @parent.instance_variable_get("@__serialize_block")
|
57
|
+
|
58
|
+
serialize *__serialize_args, &__serialize_block
|
59
|
+
else
|
60
|
+
serialize &->(obj) { obj }
|
56
61
|
end
|
57
62
|
end
|
58
63
|
|
@@ -69,7 +74,10 @@ module Nested
|
|
69
74
|
end
|
70
75
|
|
71
76
|
def serialize(*args, &block)
|
72
|
-
raise "pass either *args or &block" if args.empty? && !block
|
77
|
+
raise "pass either *args or &block" if args.empty? && !block && !member?
|
78
|
+
|
79
|
+
@__serialize_args = args
|
80
|
+
@__serialize_block = block
|
73
81
|
|
74
82
|
@__serialize = ->(obj) do
|
75
83
|
obj = self.instance_exec(obj, &block) if block
|
@@ -129,6 +137,16 @@ module Nested
|
|
129
137
|
child_resource(name, true, false, &block)
|
130
138
|
end
|
131
139
|
|
140
|
+
def delegate(name, &block)
|
141
|
+
singleton(name) do
|
142
|
+
resource = self
|
143
|
+
init do
|
144
|
+
instance_variable_set("@#{resource.instance_variable_name}", instance_variable_get("@#{resource.parent.instance_variable_name}"))
|
145
|
+
end
|
146
|
+
instance_eval(&block)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
132
150
|
def many(name, &block)
|
133
151
|
raise ManyInManyError.new "do not nest many in many" if collection?
|
134
152
|
child_resource(name, false, true, &block)
|
@@ -284,7 +302,7 @@ module Nested
|
|
284
302
|
|
285
303
|
route_args = args.inject({}) do |memo, e|
|
286
304
|
idx = args.index(e)
|
287
|
-
memo[:"#{e}_id"] = "'+(typeof(values[#{idx}]) == 'number' ? values[#{idx}].toString() : values[#{idx}].id)+'"
|
305
|
+
memo[:"#{e}_id"] = "'+(typeof(values[#{idx}]) == 'number' ? values[#{idx}].toString() : (values[#{idx}].id || values[#{idx}]))+'"
|
288
306
|
memo
|
289
307
|
end
|
290
308
|
route = "#{self.nested_config[:prefix]}" + resource.route(route_args, action)
|
data/nested.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nested
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Zimmek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|