jbuilder 2.2.16 → 2.6.4
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/.travis.yml +39 -1
- data/Appraisals +30 -12
- data/CHANGELOG.md +64 -4
- data/CONTRIBUTING.md +108 -0
- data/Gemfile +1 -0
- data/MIT-LICENSE +1 -1
- data/README.md +24 -15
- data/gemfiles/rails_3_0.gemfile +2 -0
- data/gemfiles/rails_3_1.gemfile +2 -0
- data/gemfiles/rails_3_2.gemfile +2 -0
- data/gemfiles/rails_4_0.gemfile +2 -0
- data/gemfiles/rails_4_1.gemfile +2 -0
- data/gemfiles/rails_4_2.gemfile +3 -0
- data/gemfiles/rails_5_0.gemfile +13 -0
- data/gemfiles/rails_5_1.gemfile +13 -0
- data/jbuilder.gemspec +5 -5
- data/lib/generators/rails/jbuilder_generator.rb +1 -0
- data/lib/generators/rails/scaffold_controller_generator.rb +2 -2
- data/lib/generators/rails/templates/api_controller.rb +63 -0
- data/lib/generators/rails/templates/controller.rb +1 -1
- data/lib/generators/rails/templates/index.json.jbuilder +1 -4
- data/lib/generators/rails/templates/partial.json.jbuilder +2 -0
- data/lib/generators/rails/templates/show.json.jbuilder +1 -1
- data/lib/jbuilder/errors.rb +7 -0
- data/lib/jbuilder/jbuilder_template.rb +126 -39
- data/lib/jbuilder/key_formatter.rb +2 -2
- data/lib/jbuilder/railtie.rb +12 -3
- data/lib/jbuilder.rb +21 -10
- data/test/jbuilder_generator_test.rb +10 -4
- data/test/jbuilder_template_test.rb +254 -156
- data/test/jbuilder_test.rb +28 -3
- data/test/scaffold_api_controller_generator_test.rb +55 -0
- data/test/scaffold_controller_generator_test.rb +26 -17
- metadata +12 -13
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'rails/generators/test_case'
|
3
|
+
require 'generators/rails/scaffold_controller_generator'
|
4
|
+
|
5
|
+
if Rails::VERSION::MAJOR > 4
|
6
|
+
|
7
|
+
class ScaffoldApiControllerGeneratorTest < Rails::Generators::TestCase
|
8
|
+
tests Rails::Generators::ScaffoldControllerGenerator
|
9
|
+
arguments %w(Post title body:text --api)
|
10
|
+
destination File.expand_path('../tmp', __FILE__)
|
11
|
+
setup :prepare_destination
|
12
|
+
|
13
|
+
test 'controller content' do
|
14
|
+
run_generator
|
15
|
+
|
16
|
+
assert_file 'app/controllers/posts_controller.rb' do |content|
|
17
|
+
assert_instance_method :index, content do |m|
|
18
|
+
assert_match %r{@posts = Post\.all}, m
|
19
|
+
end
|
20
|
+
|
21
|
+
assert_instance_method :show, content do |m|
|
22
|
+
assert m.blank?
|
23
|
+
end
|
24
|
+
|
25
|
+
assert_instance_method :create, content do |m|
|
26
|
+
assert_match %r{@post = Post\.new\(post_params\)}, m
|
27
|
+
assert_match %r{@post\.save}, m
|
28
|
+
assert_match %r{render :show, status: :created, location: @post}, m
|
29
|
+
assert_match %r{render json: @post\.errors, status: :unprocessable_entity}, m
|
30
|
+
end
|
31
|
+
|
32
|
+
assert_instance_method :update, content do |m|
|
33
|
+
assert_match %r{render :show, status: :ok, location: @post}, m
|
34
|
+
assert_match %r{render json: @post.errors, status: :unprocessable_entity}, m
|
35
|
+
end
|
36
|
+
|
37
|
+
assert_instance_method :destroy, content do |m|
|
38
|
+
assert_match %r{@post\.destroy}, m
|
39
|
+
end
|
40
|
+
|
41
|
+
assert_match %r{def post_params}, content
|
42
|
+
assert_match %r{params\.require\(:post\)\.permit\(:title, :body\)}, content
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
test 'dont use require and permit if there are no attributes' do
|
47
|
+
run_generator %w(Post --api)
|
48
|
+
|
49
|
+
assert_file 'app/controllers/posts_controller.rb' do |content|
|
50
|
+
assert_match %r{def post_params}, content
|
51
|
+
assert_match %r{params\.fetch\(:post, \{\}\)}, content
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -13,7 +13,7 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
|
|
13
13
|
|
14
14
|
assert_file 'app/controllers/posts_controller.rb' do |content|
|
15
15
|
assert_instance_method :index, content do |m|
|
16
|
-
assert_match
|
16
|
+
assert_match %r{@posts = Post\.all}, m
|
17
17
|
end
|
18
18
|
|
19
19
|
assert_instance_method :show, content do |m|
|
@@ -21,7 +21,7 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
|
|
21
21
|
end
|
22
22
|
|
23
23
|
assert_instance_method :new, content do |m|
|
24
|
-
assert_match
|
24
|
+
assert_match %r{@post = Post\.new}, m
|
25
25
|
end
|
26
26
|
|
27
27
|
assert_instance_method :edit, content do |m|
|
@@ -29,29 +29,38 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
|
|
29
29
|
end
|
30
30
|
|
31
31
|
assert_instance_method :create, content do |m|
|
32
|
-
assert_match
|
33
|
-
assert_match
|
34
|
-
assert_match
|
35
|
-
assert_match
|
36
|
-
assert_match
|
37
|
-
assert_match
|
32
|
+
assert_match %r{@post = Post\.new\(post_params\)}, m
|
33
|
+
assert_match %r{@post\.save}, m
|
34
|
+
assert_match %r{format\.html \{ redirect_to @post, notice: 'Post was successfully created\.' \}}, m
|
35
|
+
assert_match %r{format\.json \{ render :show, status: :created, location: @post \}}, m
|
36
|
+
assert_match %r{format\.html \{ render :new \}}, m
|
37
|
+
assert_match %r{format\.json \{ render json: @post\.errors, status: :unprocessable_entity \}}, m
|
38
38
|
end
|
39
39
|
|
40
40
|
assert_instance_method :update, content do |m|
|
41
|
-
assert_match
|
42
|
-
assert_match
|
43
|
-
assert_match
|
44
|
-
assert_match
|
41
|
+
assert_match %r{format\.html \{ redirect_to @post, notice: 'Post was successfully updated\.' \}}, m
|
42
|
+
assert_match %r{format\.json \{ render :show, status: :ok, location: @post \}}, m
|
43
|
+
assert_match %r{format\.html \{ render :edit \}}, m
|
44
|
+
assert_match %r{format\.json \{ render json: @post.errors, status: :unprocessable_entity \}}, m
|
45
45
|
end
|
46
46
|
|
47
47
|
assert_instance_method :destroy, content do |m|
|
48
|
-
assert_match
|
49
|
-
assert_match
|
50
|
-
assert_match
|
48
|
+
assert_match %r{@post\.destroy}, m
|
49
|
+
assert_match %r{format\.html \{ redirect_to posts_url, notice: 'Post was successfully destroyed\.' \}}, m
|
50
|
+
assert_match %r{format\.json \{ head :no_content \}}, m
|
51
51
|
end
|
52
52
|
|
53
|
-
assert_match
|
54
|
-
assert_match
|
53
|
+
assert_match %r{def post_params}, content
|
54
|
+
assert_match %r{params\.require\(:post\)\.permit\(:title, :body\)}, content
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
test 'dont use require and permit if there are no attributes' do
|
59
|
+
run_generator %w(Post)
|
60
|
+
|
61
|
+
assert_file 'app/controllers/posts_controller.rb' do |content|
|
62
|
+
assert_match %r{def post_params}, content
|
63
|
+
assert_match %r{params\.fetch\(:post, \{\}\)}, content
|
55
64
|
end
|
56
65
|
end
|
57
66
|
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.
|
4
|
+
version: 2.6.4
|
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:
|
11
|
+
date: 2017-05-10 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activesupport
|
@@ -18,9 +17,6 @@ dependencies:
|
|
18
17
|
- - ">="
|
19
18
|
- !ruby/object:Gem::Version
|
20
19
|
version: 3.0.0
|
21
|
-
- - "<"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: '5'
|
24
20
|
type: :runtime
|
25
21
|
prerelease: false
|
26
22
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -28,27 +24,23 @@ dependencies:
|
|
28
24
|
- - ">="
|
29
25
|
- !ruby/object:Gem::Version
|
30
26
|
version: 3.0.0
|
31
|
-
- - "<"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '5'
|
34
27
|
- !ruby/object:Gem::Dependency
|
35
28
|
name: multi_json
|
36
29
|
requirement: !ruby/object:Gem::Requirement
|
37
30
|
requirements:
|
38
|
-
- - "
|
31
|
+
- - ">="
|
39
32
|
- !ruby/object:Gem::Version
|
40
33
|
version: '1.2'
|
41
34
|
type: :runtime
|
42
35
|
prerelease: false
|
43
36
|
version_requirements: !ruby/object:Gem::Requirement
|
44
37
|
requirements:
|
45
|
-
- - "
|
38
|
+
- - ">="
|
46
39
|
- !ruby/object:Gem::Version
|
47
40
|
version: '1.2'
|
48
41
|
description:
|
49
42
|
email:
|
50
43
|
- david@37signals.com
|
51
|
-
- pavel@pravosud.com
|
52
44
|
executables: []
|
53
45
|
extensions: []
|
54
46
|
extra_rdoc_files: []
|
@@ -57,6 +49,7 @@ files:
|
|
57
49
|
- ".travis.yml"
|
58
50
|
- Appraisals
|
59
51
|
- CHANGELOG.md
|
52
|
+
- CONTRIBUTING.md
|
60
53
|
- Gemfile
|
61
54
|
- MIT-LICENSE
|
62
55
|
- README.md
|
@@ -67,11 +60,15 @@ files:
|
|
67
60
|
- gemfiles/rails_4_0.gemfile
|
68
61
|
- gemfiles/rails_4_1.gemfile
|
69
62
|
- gemfiles/rails_4_2.gemfile
|
63
|
+
- gemfiles/rails_5_0.gemfile
|
64
|
+
- gemfiles/rails_5_1.gemfile
|
70
65
|
- jbuilder.gemspec
|
71
66
|
- lib/generators/rails/jbuilder_generator.rb
|
72
67
|
- lib/generators/rails/scaffold_controller_generator.rb
|
68
|
+
- lib/generators/rails/templates/api_controller.rb
|
73
69
|
- lib/generators/rails/templates/controller.rb
|
74
70
|
- lib/generators/rails/templates/index.json.jbuilder
|
71
|
+
- lib/generators/rails/templates/partial.json.jbuilder
|
75
72
|
- lib/generators/rails/templates/show.json.jbuilder
|
76
73
|
- lib/jbuilder.rb
|
77
74
|
- lib/jbuilder/blank.rb
|
@@ -85,6 +82,7 @@ files:
|
|
85
82
|
- test/jbuilder_generator_test.rb
|
86
83
|
- test/jbuilder_template_test.rb
|
87
84
|
- test/jbuilder_test.rb
|
85
|
+
- test/scaffold_api_controller_generator_test.rb
|
88
86
|
- test/scaffold_controller_generator_test.rb
|
89
87
|
- test/test_helper.rb
|
90
88
|
homepage: https://github.com/rails/jbuilder
|
@@ -107,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
105
|
version: '0'
|
108
106
|
requirements: []
|
109
107
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.
|
108
|
+
rubygems_version: 2.6.8
|
111
109
|
signing_key:
|
112
110
|
specification_version: 4
|
113
111
|
summary: Create JSON structures via a Builder-style DSL
|
@@ -116,5 +114,6 @@ test_files:
|
|
116
114
|
- test/jbuilder_generator_test.rb
|
117
115
|
- test/jbuilder_template_test.rb
|
118
116
|
- test/jbuilder_test.rb
|
117
|
+
- test/scaffold_api_controller_generator_test.rb
|
119
118
|
- test/scaffold_controller_generator_test.rb
|
120
119
|
- test/test_helper.rb
|