jbuilder 2.2.12 → 2.2.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/jbuilder.gemspec +1 -1
- data/lib/jbuilder.rb +7 -7
- data/test/jbuilder_test.rb +6 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 332d9c49a287b19d5b1afb7c64af39cbda9ccfc4
|
4
|
+
data.tar.gz: 332ccfb496127ea17c8f3def19a2fb28c2c8c17e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 149866f11d9ae0814d83a40faa89380149516a50fef38829274092323b7ad74a5d2c05bce5443d8cb7a289e02b1307dd8b547530369d1127e338eadf3dbbcc9d
|
7
|
+
data.tar.gz: 3a6ce99d14c7ed4b67d29c0c6a1e840ef44074796ff3052de2e7148d31aa40ae106cbca923fb6b6f382cbb1cee41d36dba7bf048cd581eaa1e2bd9f1faad4c2a
|
data/CHANGELOG.md
CHANGED
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.13'
|
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'
|
data/lib/jbuilder.rb
CHANGED
@@ -5,13 +5,13 @@ require 'jbuilder/errors'
|
|
5
5
|
require 'multi_json'
|
6
6
|
|
7
7
|
class Jbuilder
|
8
|
-
@@key_formatter =
|
8
|
+
@@key_formatter = nil
|
9
9
|
@@ignore_nil = false
|
10
10
|
|
11
11
|
def initialize(options = {})
|
12
12
|
@attributes = {}
|
13
13
|
|
14
|
-
@key_formatter = options.fetch(:key_formatter){ @@key_formatter.clone }
|
14
|
+
@key_formatter = options.fetch(:key_formatter){ @@key_formatter ? @@key_formatter.clone : nil}
|
15
15
|
@ignore_nil = options.fetch(:ignore_nil, @@ignore_nil)
|
16
16
|
|
17
17
|
yield self if ::Kernel.block_given?
|
@@ -207,9 +207,9 @@ class Jbuilder
|
|
207
207
|
# json.(@person, :name, :age)
|
208
208
|
def extract!(object, *attributes)
|
209
209
|
if ::Hash === object
|
210
|
-
_extract_hash_values(object,
|
210
|
+
_extract_hash_values(object, attributes)
|
211
211
|
else
|
212
|
-
_extract_method_values(object,
|
212
|
+
_extract_method_values(object, attributes)
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
@@ -245,11 +245,11 @@ class Jbuilder
|
|
245
245
|
|
246
246
|
private
|
247
247
|
|
248
|
-
def _extract_hash_values(object,
|
248
|
+
def _extract_hash_values(object, attributes)
|
249
249
|
attributes.each{ |key| _set_value key, object.fetch(key) }
|
250
250
|
end
|
251
251
|
|
252
|
-
def _extract_method_values(object,
|
252
|
+
def _extract_method_values(object, attributes)
|
253
253
|
attributes.each{ |key| _set_value key, object.public_send(key) }
|
254
254
|
end
|
255
255
|
|
@@ -275,7 +275,7 @@ class Jbuilder
|
|
275
275
|
end
|
276
276
|
|
277
277
|
def _key(key)
|
278
|
-
@key_formatter.format(key)
|
278
|
+
@key_formatter ? @key_formatter.format(key) : key.to_s
|
279
279
|
end
|
280
280
|
|
281
281
|
def _set_value(key, value)
|
data/test/jbuilder_test.rb
CHANGED
@@ -51,6 +51,10 @@ end
|
|
51
51
|
|
52
52
|
|
53
53
|
class JbuilderTest < ActiveSupport::TestCase
|
54
|
+
setup do
|
55
|
+
Jbuilder.send :class_variable_set, '@@key_formatter', Jbuilder::KeyFormatter.new
|
56
|
+
end
|
57
|
+
|
54
58
|
test 'single key' do
|
55
59
|
result = jbuild do |json|
|
56
60
|
json.content 'hello'
|
@@ -564,12 +568,12 @@ class JbuilderTest < ActiveSupport::TestCase
|
|
564
568
|
Jbuilder.key_format camelize: :lower
|
565
569
|
result = jbuild{ |json| json.camel_style 'for JS' }
|
566
570
|
assert_equal ['camelStyle'], result.keys
|
567
|
-
Jbuilder.send :class_variable_set, '@@key_formatter', Jbuilder::KeyFormatter.new
|
568
571
|
end
|
569
572
|
|
570
573
|
test 'do not use default key formatter directly' do
|
571
574
|
jbuild{ |json| json.key 'value' }
|
572
|
-
|
575
|
+
formatter = Jbuilder.send(:class_variable_get, '@@key_formatter')
|
576
|
+
cache = formatter.instance_variable_get('@cache')
|
573
577
|
assert_empty cache
|
574
578
|
end
|
575
579
|
|
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.13
|
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-04-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
107
|
version: '0'
|
108
108
|
requirements: []
|
109
109
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.4.
|
110
|
+
rubygems_version: 2.4.6
|
111
111
|
signing_key:
|
112
112
|
specification_version: 4
|
113
113
|
summary: Create JSON structures via a Builder-style DSL
|