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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nested.rb +22 -4
  3. data/nested.gemspec +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88c760cae3d893d1e9b034623570ca03e5721a53
4
- data.tar.gz: af9580cf0059dad6b2bfe775bcce4c7d1c154d4c
3
+ metadata.gz: 1f1b8488edca79e7f4326470f3e5182edefe611c
4
+ data.tar.gz: b269294899ef8132adb3061fd99ab6b5e4830867
5
5
  SHA512:
6
- metadata.gz: 8e7ba73dcbfca6da1d968d1ae145f175a1b1eb7e535469309c8f4119109cd8b567ae58cc98255f797e8c5e1163d6a184df4f6f23519a39e3388faed9345be279
7
- data.tar.gz: 76fe7ba8afd091f19e30b37c146b6669583458a81e6a3c04e3aa9a69415b14f08840e718aac5a275ec9a8d8a596ff98e09448984040f02478352794f7424e699
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
- serialize &->(obj) do
55
- obj
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
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "nested"
3
- s.version = "0.0.11"
3
+ s.version = "0.0.12"
4
4
 
5
5
  s.authors = ["Jan Zimmek"]
6
6
  s.email = %q{jan.zimmek@web.de}
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.11
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-07 00:00:00.000000000 Z
11
+ date: 2013-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport