jbuilder 2.2.7 → 2.2.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e99a9ab21f1d52d88b6de5b930ca5bd8a504948f
4
- data.tar.gz: 8cd28fb1bd10fd3d22ef5a5455c0b7855f4d0e0c
3
+ metadata.gz: c6fff76c0587398f3f158d2263ddb193fd0781fe
4
+ data.tar.gz: 3c1f56012c79d825f11fda61fcfd9bdaa61abdd4
5
5
  SHA512:
6
- metadata.gz: b1364a2ff7640fc119b93e410877fb6979d28306176bb894f4511c05671ef79c2288829959d1c12960b9fe63662eb8606a9588452867fbedab42904408200317
7
- data.tar.gz: 53dd379414c1c9c66caa31a43555d05904922bb32e661ac440530549bb32bce282eea873e85c691330f30f42715113a2295f2ab3dd48a99792d8fcc8e1a47baa
6
+ metadata.gz: 8965ab307c6d4f8a0e1f5ad3774273bc0954e82603db9951fcb48ccddffef5ccf0cc90955f2827cd778d951d2f8d76c4fe0ab2e0c9a36c86d3ae6aa2fa42d81d
7
+ data.tar.gz: bea36a97b8097ca854c8b9d07a463d1d4dd03d89799d995dcc4909c9f458cd57bb85406820d69f7311b8902e24aa530e16d2abd63a1bc265ba16d7f65257ceab
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ 2.2.8
4
+ -----
5
+ * [Raise ArrayError when trying to add key to an array](https://github.com/rails/jbuilder/commit/869e4be1ad165ce986d8fca78311bdd3ed166087)
6
+
3
7
  2.2.7
4
8
  -----
5
9
  * [Make Blank object serializable with Marshal](https://github.com/rails/jbuilder/commit/7083f28d8b665aa60d0d1b1927ae88bb5c6290ba)
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.7'
3
+ s.version = '2.2.8'
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
@@ -274,20 +274,16 @@ class Jbuilder
274
274
  end
275
275
  end
276
276
 
277
- def _write(key, value)
278
- @attributes = {} if _blank?
279
- @attributes[_key(key)] = value
280
- end
281
-
282
277
  def _key(key)
283
278
  @key_formatter.format(key)
284
279
  end
285
280
 
286
281
  def _set_value(key, value)
287
282
  raise NullError.build(key) if @attributes.nil?
288
- return if @ignore_nil && value.nil?
289
- return if _blank?(value)
290
- _write key, value
283
+ raise ArrayError.build(key) if ::Array === @attributes
284
+ return if @ignore_nil && value.nil? or _blank?(value)
285
+ @attributes = {} if _blank?
286
+ @attributes[_key(key)] = value
291
287
  end
292
288
 
293
289
  def _map_collection(collection)
@@ -7,4 +7,11 @@ class Jbuilder
7
7
  new(message)
8
8
  end
9
9
  end
10
+
11
+ class ArrayError < ::StandardError
12
+ def self.build(key)
13
+ message = "Failed to add #{key.to_s.inspect} property to an array"
14
+ new(message)
15
+ end
16
+ end
10
17
  end
@@ -645,11 +645,21 @@ class JbuilderTest < ActiveSupport::TestCase
645
645
  assert_nil result['author']
646
646
  end
647
647
 
648
+ test 'throws ArrayError when trying to add a key to an array' do
649
+ assert_raise Jbuilder::ArrayError do
650
+ jbuild do |json|
651
+ json.array! %w[foo bar]
652
+ json.fizz "buzz"
653
+ end
654
+ end
655
+ end
656
+
648
657
  test 'throws NullError when trying to add properties to null' do
649
- json = Jbuilder.new
650
- json.null!
651
658
  assert_raise Jbuilder::NullError do
652
- json.foo 'bar'
659
+ jbuild do |json|
660
+ json.null!
661
+ json.foo 'bar'
662
+ end
653
663
  end
654
664
  end
655
665
 
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.7
4
+ version: 2.2.8
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-02-15 00:00:00.000000000 Z
12
+ date: 2015-02-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport