jbuilder 2.2.12 → 2.2.13
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/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
|