jbuilder 2.6.2 → 2.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 480dacfaafb41be4517c97fe4feaac06ca419a0a
4
- data.tar.gz: 743ad605818ab2e8c7d1fe9656ce417f6ac19db6
3
+ metadata.gz: 1fceb6a04cc18c49f17915a51c83bca202c7ab76
4
+ data.tar.gz: 73e81db0ff0a9b97c9f4a46a87d96c369743b5d5
5
5
  SHA512:
6
- metadata.gz: d87af4a001cd83a919991616c7f5ed825ec84c80a2552c1b7e135b154f758ba62155acc343b0ff6a4fe97ce670f46f093468a86a84335679afeff319d0ecc278
7
- data.tar.gz: 7156d387cd06d96bde5ae5f0fe1768eb283868e4e964a88c1b138357ddfeda1b51ca1eecba7f2bde75bbf157773c02fa117f722ee3a4bdb0281ecd054ff441e1
6
+ metadata.gz: e92b20eab5ff8230db42f7d0b205807fcae78fd3d084f40a9b6242bff1a737f65f914ad57b7086e808c742f552d9a9d9f6f38e5372bb2d7b28ec0a81486d15ef
7
+ data.tar.gz: 0ce214cdf9671b2a43b565ead95d1a9ac18c5c8ae2af1a851382e9b65c3cef03088eea89753a4b8d760f5beb18ec2cdec8636c67ae5e18ca12eccf619ddc68a4
@@ -22,6 +22,7 @@ gemfile:
22
22
  - gemfiles/rails_4_1.gemfile
23
23
  - gemfiles/rails_4_2.gemfile
24
24
  - gemfiles/rails_5_0.gemfile
25
+ - gemfiles/rails_5_1.gemfile
25
26
 
26
27
  matrix:
27
28
  allow_failures:
@@ -32,14 +33,24 @@ matrix:
32
33
  exclude:
33
34
  - rvm: 1.9
34
35
  gemfile: gemfiles/rails_5_0.gemfile
36
+ - rvm: 1.9
37
+ gemfile: gemfiles/rails_5_1.gemfile
35
38
  - rvm: 2.0
36
39
  gemfile: gemfiles/rails_5_0.gemfile
40
+ - rvm: 2.0
41
+ gemfile: gemfiles/rails_5_1.gemfile
37
42
  - rvm: 2.1
38
43
  gemfile: gemfiles/rails_5_0.gemfile
44
+ - rvm: 2.1
45
+ gemfile: gemfiles/rails_5_1.gemfile
39
46
  - rvm: jruby-19mode
40
47
  gemfile: gemfiles/rails_5_0.gemfile
48
+ - rvm: jruby-19mode
49
+ gemfile: gemfiles/rails_5_1.gemfile
41
50
  - rvm: rbx
42
51
  gemfile: gemfiles/rails_5_0.gemfile
52
+ - rvm: rbx
53
+ gemfile: gemfiles/rails_5_1.gemfile
43
54
  - rvm: 2.4.0
44
55
  gemfile: gemfiles/rails_3_0.gemfile
45
56
  - rvm: 2.4.0
data/Appraisals CHANGED
@@ -42,3 +42,9 @@ appraise "rails-5-0" do
42
42
  gem "actionpack", "~> 5.0.0"
43
43
  gem "activemodel", "~> 5.0.0"
44
44
  end
45
+
46
+ appraise "rails-5-1" do
47
+ gem "railties", ">= 5.1.0.beta1", "< 5.2"
48
+ gem "actionpack", ">= 5.1.0.beta1", "< 5.2"
49
+ gem "activemodel", ">= 5.1.0.beta1", "< 5.2"
50
+ end
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ 2.6.3
4
+ -----
5
+
6
+ * Support Rails 5.1
7
+
3
8
  2.6.2
4
9
  -----
5
10
 
@@ -0,0 +1,13 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rake"
6
+ gem "mocha", :require => false
7
+ gem "appraisal"
8
+ gem "pry"
9
+ gem "railties", ">= 5.1.0.beta1", "< 5.2"
10
+ gem "actionpack", ">= 5.1.0.beta1", "< 5.2"
11
+ gem "activemodel", ">= 5.1.0.beta1", "< 5.2"
12
+
13
+ gemspec :path => "../"
@@ -1,15 +1,15 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'jbuilder'
3
- s.version = '2.6.2'
4
- s.authors = ['David Heinemeier Hansson', 'Pavel Pravosud']
5
- s.email = ['david@37signals.com', 'pavel@pravosud.com']
3
+ s.version = '2.6.3'
4
+ s.authors = ['David Heinemeier Hansson']
5
+ s.email = ['david@37signals.com']
6
6
  s.summary = 'Create JSON structures via a Builder-style DSL'
7
7
  s.homepage = 'https://github.com/rails/jbuilder'
8
8
  s.license = 'MIT'
9
9
 
10
10
  s.required_ruby_version = '>= 1.9.3'
11
11
 
12
- s.add_dependency 'activesupport', '>= 3.0.0', '< 5.1'
12
+ s.add_dependency 'activesupport', '>= 3.0.0', '< 5.2'
13
13
  s.add_dependency 'multi_json', '~> 1.2'
14
14
 
15
15
  s.files = `git ls-files`.split("\n")
@@ -270,14 +270,14 @@ class Jbuilder
270
270
  def _merge_values(current_value, updates)
271
271
  if _blank?(updates)
272
272
  current_value
273
- elsif _blank?(current_value) || updates.nil?
273
+ elsif _blank?(current_value) || updates.nil? || current_value.empty? && ::Array === updates
274
274
  updates
275
- elsif ::Array === updates
276
- ::Array === current_value ? current_value + updates : updates
277
- elsif ::Hash === current_value
275
+ elsif ::Array === current_value && ::Array === updates
276
+ current_value + updates
277
+ elsif ::Hash === current_value && ::Hash === updates
278
278
  current_value.merge(updates)
279
279
  else
280
- raise "Can't merge #{updates.inspect} with #{current_value.inspect}"
280
+ raise MergeError.build(current_value, updates)
281
281
  end
282
282
  end
283
283
 
@@ -14,4 +14,11 @@ class Jbuilder
14
14
  new(message)
15
15
  end
16
16
  end
17
+
18
+ class MergeError < ::StandardError
19
+ def self.build(current_value, updates)
20
+ message = "Can't merge #{updates.inspect} into #{current_value.inspect}"
21
+ new(message)
22
+ end
23
+ end
17
24
  end
@@ -686,4 +686,31 @@ class JbuilderTest < ActiveSupport::TestCase
686
686
  end
687
687
  end
688
688
  end
689
+
690
+ test "throws MergeError when trying to merge array with non-empty hash" do
691
+ assert_raise Jbuilder::MergeError do
692
+ jbuild do |json|
693
+ json.name "Daniel"
694
+ json.merge! []
695
+ end
696
+ end
697
+ end
698
+
699
+ test "throws MergeError when trying to merge hash with array" do
700
+ assert_raise Jbuilder::MergeError do
701
+ jbuild do |json|
702
+ json.array!
703
+ json.merge!({})
704
+ end
705
+ end
706
+ end
707
+
708
+ test "throws MergeError when trying to merge invalid objects" do
709
+ assert_raise Jbuilder::MergeError do
710
+ jbuild do |json|
711
+ json.name "Daniel"
712
+ json.merge! "Nope"
713
+ end
714
+ end
715
+ end
689
716
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jbuilder
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.2
4
+ version: 2.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
- - Pavel Pravosud
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2017-02-22 00:00:00.000000000 Z
11
+ date: 2017-02-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
@@ -20,7 +19,7 @@ dependencies:
20
19
  version: 3.0.0
21
20
  - - "<"
22
21
  - !ruby/object:Gem::Version
23
- version: '5.1'
22
+ version: '5.2'
24
23
  type: :runtime
25
24
  prerelease: false
26
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -30,7 +29,7 @@ dependencies:
30
29
  version: 3.0.0
31
30
  - - "<"
32
31
  - !ruby/object:Gem::Version
33
- version: '5.1'
32
+ version: '5.2'
34
33
  - !ruby/object:Gem::Dependency
35
34
  name: multi_json
36
35
  requirement: !ruby/object:Gem::Requirement
@@ -48,7 +47,6 @@ dependencies:
48
47
  description:
49
48
  email:
50
49
  - david@37signals.com
51
- - pavel@pravosud.com
52
50
  executables: []
53
51
  extensions: []
54
52
  extra_rdoc_files: []
@@ -69,6 +67,7 @@ files:
69
67
  - gemfiles/rails_4_1.gemfile
70
68
  - gemfiles/rails_4_2.gemfile
71
69
  - gemfiles/rails_5_0.gemfile
70
+ - gemfiles/rails_5_1.gemfile
72
71
  - jbuilder.gemspec
73
72
  - lib/generators/rails/jbuilder_generator.rb
74
73
  - lib/generators/rails/scaffold_controller_generator.rb