jbuilder 0.4.2 → 0.4.3
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.
- data/jbuilder-0.4.2.gem +0 -0
- data/jbuilder.gemspec +1 -1
- data/lib/jbuilder.rb +1 -1
- data/test/jbuilder_test.rb +27 -0
- metadata +6 -5
data/jbuilder-0.4.2.gem
ADDED
Binary file
|
data/jbuilder.gemspec
CHANGED
data/lib/jbuilder.rb
CHANGED
@@ -203,7 +203,7 @@ class Jbuilder < BlankSlate
|
|
203
203
|
|
204
204
|
# json.comments(@post.comments, :content, :created_at)
|
205
205
|
# { "comments": [ { "content": "hello", "created_at": "..." }, { "content": "world", "created_at": "..." } ] }
|
206
|
-
when args.many? && args.first.
|
206
|
+
when args.many? && args.first.respond_to?(:each)
|
207
207
|
_inline_nesting method, args.first, args.from(1)
|
208
208
|
|
209
209
|
# json.author @post.creator, :name, :email_address
|
data/test/jbuilder_test.rb
CHANGED
@@ -270,6 +270,33 @@ class JbuilderTest < ActiveSupport::TestCase
|
|
270
270
|
end
|
271
271
|
end
|
272
272
|
|
273
|
+
test "query like object" do
|
274
|
+
class Person
|
275
|
+
attr_reader :name, :age
|
276
|
+
|
277
|
+
def initialize(name, age)
|
278
|
+
@name, @age = name, age
|
279
|
+
end
|
280
|
+
end
|
281
|
+
class RelationMock
|
282
|
+
def each(&block)
|
283
|
+
[Person.new("Bob", 30), Person.new("Frank", 50)].each(&block)
|
284
|
+
end
|
285
|
+
def empty?
|
286
|
+
false
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
result = Jbuilder.encode do |json|
|
291
|
+
json.relations RelationMock.new, :name, :age
|
292
|
+
end
|
293
|
+
|
294
|
+
parsed = JSON.parse(result)
|
295
|
+
assert_equal 2, parsed["relations"].length
|
296
|
+
assert_equal "Bob", parsed["relations"][0]["name"]
|
297
|
+
assert_equal 50, parsed["relations"][1]["age"]
|
298
|
+
end
|
299
|
+
|
273
300
|
test "key_format! with parameter" do
|
274
301
|
json = Jbuilder.new
|
275
302
|
json.key_format! :camelize => [:lower]
|
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: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-08-08 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &2160638200 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2160638200
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: blankslate
|
27
|
-
requirement: &
|
27
|
+
requirement: &2160637580 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 2.1.2.4
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2160637580
|
36
36
|
description:
|
37
37
|
email: david@37signals.com
|
38
38
|
executables: []
|
@@ -41,6 +41,7 @@ extra_rdoc_files: []
|
|
41
41
|
files:
|
42
42
|
- ./Gemfile
|
43
43
|
- ./Gemfile.lock
|
44
|
+
- ./jbuilder-0.4.2.gem
|
44
45
|
- ./jbuilder.gemspec
|
45
46
|
- ./lib/jbuilder.rb
|
46
47
|
- ./lib/jbuilder_template.rb
|