jbuilder 2.2.8 → 2.2.9
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/CHANGELOG.md +5 -0
- data/README.md +11 -0
- data/jbuilder.gemspec +1 -1
- data/lib/jbuilder/jbuilder_template.rb +7 -2
- data/test/jbuilder_template_test.rb +17 -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: 65e2e51bfcf3cf17786986d6dc8826b0b0436955
|
4
|
+
data.tar.gz: 23739f1c015a50a27239b0f96bb2f8d811f3ff59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d37cb2048c0c0c5ff27f4fe5a0e9d868766bd8b96317686a98da3aea45ab7365bc98390d185072ee359da7b44281b3ab42f206f4d9ff3ee2ffabef8b4ebd5e02
|
7
|
+
data.tar.gz: 14e3be5081174e64616bbbd189bd42fef0ddaacdfcdba260672b763224a52ece1adf3190a6feaf1b95074ddc4f1072009c186162ef2c4f00d21f6581954351ec
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
2.2.9
|
4
|
+
-----
|
5
|
+
|
6
|
+
* Support `partial!` call with `locals` option in `JbuilderTemplate` [#251](https://github.com/rails/jbuilder/pull/251)
|
7
|
+
|
3
8
|
2.2.8
|
4
9
|
-----
|
5
10
|
* [Raise ArrayError when trying to add key to an array](https://github.com/rails/jbuilder/commit/869e4be1ad165ce986d8fca78311bdd3ed166087)
|
data/README.md
CHANGED
@@ -181,6 +181,17 @@ json.partial! partial: 'posts/post', collection: @posts, as: :post
|
|
181
181
|
json.comments @post.comments, partial: 'comment/comment', as: :comment
|
182
182
|
```
|
183
183
|
|
184
|
+
You can pass any objects into partial templates with or without `:locals` option.
|
185
|
+
|
186
|
+
```ruby
|
187
|
+
json.partial! 'sub_template', locals: { user: user }
|
188
|
+
|
189
|
+
# or
|
190
|
+
|
191
|
+
json.partial! 'sub_template', user: user
|
192
|
+
```
|
193
|
+
|
194
|
+
|
184
195
|
You can explicitly make Jbuilder object return null if you want:
|
185
196
|
|
186
197
|
``` ruby
|
data/jbuilder.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'jbuilder'
|
3
|
-
s.version = '2.2.
|
3
|
+
s.version = '2.2.9'
|
4
4
|
s.authors = ['David Heinemeier Hansson', 'Pavel Pravosud']
|
5
5
|
s.email = ['david@37signals.com', 'pavel@pravosud.com']
|
6
6
|
s.summary = 'Create JSON structures via a Builder-style DSL'
|
@@ -17,11 +17,16 @@ class JbuilderTemplate < Jbuilder
|
|
17
17
|
def partial!(name_or_options, locals = {})
|
18
18
|
case name_or_options
|
19
19
|
when ::Hash
|
20
|
-
# partial! partial: 'name',
|
20
|
+
# partial! partial: 'name', foo: 'bar'
|
21
21
|
options = name_or_options
|
22
22
|
else
|
23
|
+
# partial! 'name', locals: {foo: 'bar'}
|
24
|
+
if locals.one? && (locals.keys.first == :locals)
|
25
|
+
options = locals.merge(partial: name_or_options)
|
26
|
+
else
|
27
|
+
options = { partial: name_or_options, locals: locals }
|
28
|
+
end
|
23
29
|
# partial! 'name', foo: 'bar'
|
24
|
-
options = { partial: name_or_options, locals: locals }
|
25
30
|
as = locals.delete(:as)
|
26
31
|
options[:as] = as if as.present?
|
27
32
|
options[:collection] = locals[:collection] if locals.key?(:collection)
|
@@ -40,7 +40,7 @@ class JbuilderTemplateTest < ActionView::TestCase
|
|
40
40
|
|
41
41
|
def partials
|
42
42
|
{
|
43
|
-
'_partial.json.jbuilder' => 'json.content
|
43
|
+
'_partial.json.jbuilder' => 'foo ||= "hello"; json.content foo',
|
44
44
|
'_blog_post.json.jbuilder' => BLOG_POST_PARTIAL,
|
45
45
|
'_collection.json.jbuilder' => COLLECTION_PARTIAL
|
46
46
|
}
|
@@ -110,6 +110,22 @@ class JbuilderTemplateTest < ActionView::TestCase
|
|
110
110
|
assert_equal 'hello', MultiJson.load(json)['content']
|
111
111
|
end
|
112
112
|
|
113
|
+
test 'partial! + locals via :locals option' do
|
114
|
+
json = render_jbuilder <<-JBUILDER
|
115
|
+
json.partial! 'partial', locals: { foo: 'howdy' }
|
116
|
+
JBUILDER
|
117
|
+
|
118
|
+
assert_equal 'howdy', MultiJson.load(json)['content']
|
119
|
+
end
|
120
|
+
|
121
|
+
test 'partial! + locals without :locals key' do
|
122
|
+
json = render_jbuilder <<-JBUILDER
|
123
|
+
json.partial! 'partial', foo: 'goodbye'
|
124
|
+
JBUILDER
|
125
|
+
|
126
|
+
assert_equal 'goodbye', MultiJson.load(json)['content']
|
127
|
+
end
|
128
|
+
|
113
129
|
test 'partial! renders collections' do
|
114
130
|
json = render_jbuilder <<-JBUILDER
|
115
131
|
json.partial! 'blog_post', :collection => BLOG_POST_COLLECTION, :as => :blog_post
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jbuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-03-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|