nested 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
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