jbuilder 2.6.0 → 2.11.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ruby.yml +108 -0
  3. data/.gitignore +2 -0
  4. data/Appraisals +16 -35
  5. data/CONTRIBUTING.md +9 -10
  6. data/Gemfile +0 -1
  7. data/MIT-LICENSE +1 -1
  8. data/README.md +100 -20
  9. data/Rakefile +2 -6
  10. data/gemfiles/rails_5_0.gemfile +3 -6
  11. data/gemfiles/rails_5_1.gemfile +10 -0
  12. data/gemfiles/rails_5_2.gemfile +10 -0
  13. data/gemfiles/rails_6_0.gemfile +10 -0
  14. data/gemfiles/rails_6_1.gemfile +10 -0
  15. data/gemfiles/rails_head.gemfile +10 -0
  16. data/jbuilder.gemspec +20 -6
  17. data/lib/generators/rails/jbuilder_generator.rb +12 -2
  18. data/lib/generators/rails/scaffold_controller_generator.rb +7 -1
  19. data/lib/generators/rails/templates/api_controller.rb +4 -4
  20. data/lib/generators/rails/templates/controller.rb +15 -19
  21. data/lib/generators/rails/templates/index.json.jbuilder +1 -1
  22. data/lib/generators/rails/templates/partial.json.jbuilder +16 -2
  23. data/lib/generators/rails/templates/show.json.jbuilder +1 -1
  24. data/lib/jbuilder/collection_renderer.rb +109 -0
  25. data/lib/jbuilder/errors.rb +7 -0
  26. data/lib/jbuilder/jbuilder_template.rb +90 -16
  27. data/lib/jbuilder/key_formatter.rb +2 -2
  28. data/lib/jbuilder/railtie.rb +1 -1
  29. data/lib/jbuilder.rb +70 -28
  30. data/test/jbuilder_dependency_tracker_test.rb +2 -2
  31. data/test/jbuilder_generator_test.rb +27 -7
  32. data/test/jbuilder_template_test.rb +281 -295
  33. data/test/jbuilder_test.rb +256 -4
  34. data/test/scaffold_api_controller_generator_test.rb +29 -14
  35. data/test/scaffold_controller_generator_test.rb +54 -21
  36. data/test/test_helper.rb +30 -8
  37. metadata +25 -31
  38. data/.travis.yml +0 -44
  39. data/CHANGELOG.md +0 -229
  40. data/gemfiles/rails_3_0.gemfile +0 -14
  41. data/gemfiles/rails_3_1.gemfile +0 -14
  42. data/gemfiles/rails_3_2.gemfile +0 -14
  43. data/gemfiles/rails_4_0.gemfile +0 -13
  44. data/gemfiles/rails_4_1.gemfile +0 -13
  45. data/gemfiles/rails_4_2.gemfile +0 -13
data/.travis.yml DELETED
@@ -1,44 +0,0 @@
1
- language: ruby
2
-
3
- sudo: false
4
- cache: bundler
5
-
6
- rvm:
7
- - 1.9
8
- - 2.0
9
- - 2.1
10
- - 2.2.5
11
- - 2.3.1
12
- - ruby-head
13
- - jruby-19mode
14
- - rbx
15
-
16
- gemfile:
17
- - gemfiles/rails_3_0.gemfile
18
- - gemfiles/rails_3_1.gemfile
19
- - gemfiles/rails_3_2.gemfile
20
- - gemfiles/rails_4_0.gemfile
21
- - gemfiles/rails_4_1.gemfile
22
- - gemfiles/rails_4_2.gemfile
23
- - gemfiles/rails_5_0.gemfile
24
-
25
- matrix:
26
- allow_failures:
27
- - rvm: jruby-19mode
28
- - rvm: rbx
29
- - rvm: ruby-head
30
- fast_finish: true
31
- exclude:
32
- - rvm: 1.9
33
- gemfile: gemfiles/rails_5_0.gemfile
34
- - rvm: 2.0
35
- gemfile: gemfiles/rails_5_0.gemfile
36
- - rvm: 2.1
37
- gemfile: gemfiles/rails_5_0.gemfile
38
- - rvm: jruby-19mode
39
- gemfile: gemfiles/rails_5_0.gemfile
40
- - rvm: rbx
41
- gemfile: gemfiles/rails_5_0.gemfile
42
-
43
- notifications:
44
- email: false
data/CHANGELOG.md DELETED
@@ -1,229 +0,0 @@
1
- # Changelog
2
-
3
- 2.6.0
4
- -----
5
-
6
- * [Rails 5 cache! with expire support](https://github.com/rails/jbuilder/commit/d61e3354563863731bc1f358f495b1dbb7ae9d32)
7
- * [Generated view DRYed by using model partial](https://github.com/rails/jbuilder/commit/83256f4d7e9211c9dc47972feaed7fd31e4f7cac)
8
-
9
- 2.5.0
10
- -----
11
-
12
- * [Rails 5 compatibility](https://github.com/rails/jbuilder/commit/64c510ec69d9e63b73ffd5942e802d21a7d14701)
13
-
14
- 2.4.1
15
- -----
16
-
17
- * [Fix controller generators to be Rails 5 compatible](https://github.com/rails/jbuilder/commit/2dc6203c5c4a98701d5b64c2a5200835a48bb533)
18
-
19
- 2.4.0
20
- -----
21
-
22
- * [Rails 5 compatibility](https://github.com/rails/jbuilder/commit/4aa2cfcc19a4634d65a28ffc75f0ac0cb8304115)
23
-
24
- 2.3.2
25
- -----
26
-
27
- * [Remove Mime Types deprecation message](https://github.com/rails/jbuilder/commit/5ba4e4ac654cc8388619538f576fe234659b84ec)
28
-
29
- 2.3.1
30
- -----
31
-
32
- * [Explicitly require ostruct to prevent NameError](https://github.com/rails/jbuilder/pull/281)
33
-
34
- 2.3.0
35
- -----
36
-
37
- * [Add new in-place partial invocation support](https://github.com/rails/jbuilder/commit/1feda7ee605c136e59fb4de970f4674de518e6de)
38
- * [Add implicit partial rendering for AM::Models](https://github.com/rails/jbuilder/commit/4d5bf7d0ea92765adb7be36834e84f9855a061df)
39
- * [Generate API controller if Rails API option is enabled](https://github.com/rails/jbuilder/commit/db68f6bd327cf42b47ef22d455fb5721a8c2cf5f)
40
- * [JBuilder's templates have less priority than app templates](https://github.com/rails/jbuilder/commit/7c1a5f25603ec1f4e51fba3dbba9db23726a5d69)
41
- * [Add AC::Helpers module to jbuilder for api only apps](https://github.com/rails/jbuilder/commit/7cf1d1eb7d125caf38309b5427952030011c1aa0)
42
-
43
- 2.2.16
44
- ------
45
-
46
- * [Fix NoMethodError around `api_only` in railtie](https://github.com/rails/jbuilder/commit/b08d1da10b14720b46d383b2917e336060fd9ffa)
47
-
48
- 2.2.14
49
- ------
50
-
51
- * [Make Jbuilder compatible with Rails API](https://github.com/rails/jbuilder/commit/29c0014a9c954c990075d42c45c66075260e924b)
52
-
53
- 2.2.13
54
- ------
55
-
56
- * Several performance optimizations: [#260](https://github.com/rails/jbuilder/pull/260) & [#261](https://github.com/rails/jbuilder/pull/261)
57
-
58
- 2.2.12
59
- ------
60
-
61
- * [Replace explicit block calls with yield for performance](https://github.com/rails/jbuilder/commit/3184f941276ad03a071cf977133d1a32302afa47)
62
-
63
- 2.2.11
64
- ------
65
-
66
- * Generate the templates for Rails 5+ [#258](https://github.com/rails/jbuilder/pull/258) [@amatsuda](https://github.com/amatsuda)
67
-
68
- 2.2.10
69
- ------
70
-
71
- * Add Jbuilder::Blank#empty? to tell if attributes are empty [#257](https://github.com/rails/jbuilder/pull/257) [@a2ikm](https://github.com/a2ikm)
72
-
73
- 2.2.9
74
- -----
75
-
76
- * Support `partial!` call with `locals` option in `JbuilderTemplate` [#251](https://github.com/rails/jbuilder/pull/251)
77
-
78
- 2.2.8
79
- -----
80
- * [Raise ArrayError when trying to add key to an array](https://github.com/rails/jbuilder/commit/869e4be1ad165ce986d8fca78311bdd3ed166087)
81
-
82
- 2.2.7
83
- -----
84
- * [Make Blank object serializable with Marshal](https://github.com/rails/jbuilder/commit/7083f28d8b665aa60d0d1b1927ae88bb5c6290ba)
85
-
86
- 2.2.6
87
- -----
88
- * [Make sure dependency tracker loads after template handler](https://github.com/rails/jbuilder/commit/3ba404b1207b557e14771c90b8832bc01ae67a42)
89
-
90
- 2.2.5
91
- -----
92
- * [Refactor merge block behavior to raise error for unexpected values](https://github.com/rails/jbuilder/commit/4503162fb26f53f613fc83ac081fd244748b6fe9)
93
-
94
- 2.2.4
95
- -----
96
- * [Typecast locals hash key during collection render](https://github.com/rails/jbuilder/commit/a6b0c8651a08e01cb53eee38e211c65423f275f7)
97
-
98
- 2.2.3
99
- -----
100
- * [Move template handler registration into railtie](https://github.com/rails/jbuilder/commit/c8acc5cea6da2a79b7b345adc301cb5ff2517647)
101
- * [Do not capture the block where it is possible](https://github.com/rails/jbuilder/commit/973b382c3924cb59fc0e4e25266b18e74d41d646)
102
-
103
- 2.2.2
104
- -----
105
- * [Fix `Jbuilder#merge!` inside block](https://github.com/rails/jbuilder/commit/a7b328552eb0d36315f75bff813bea7eecf8c1d7)
106
-
107
- 2.2.1
108
- -----
109
- * [Fix empty block handling](https://github.com/rails/jbuilder/commit/972a11141403269e9b17b45b0c95f8a9788245ee)
110
-
111
- 2.2.0
112
- -----
113
- * [Allow to skip `array!` iterations by calling `next`](https://github.com/rails/jbuilder/commit/81a63308fb9d5002519dd871f829ccc58067251a)
114
-
115
- 2.1.2
116
- -----
117
- * [Cast array-like objects to array before merging](https://github.com/rails/jbuilder/commit/7b8c8a1cb09b7f3dd26e5643ebbd6b2ec67185db)
118
-
119
- 2.1.1
120
- -----
121
- * [Remove unused file](https://github.com/rails/jbuilder/commit/e49e1047976fac93b8242ab212c7b1a463b70809)
122
-
123
- 2.1.0
124
- -----
125
- * [Blocks and their extract! shortcuts are additive by default](https://github.com/rails/jbuilder/commit/a49390736c5f6e2d7a31111df6531bc28dba9fb1)
126
-
127
- 2.0.8
128
- -----
129
- * [Eliminate circular dependencies](https://github.com/rails/jbuilder/commit/0879484dc74e7be93b695f66e3708ba48cdb1be3)
130
- * [Support cache key generation for complex objects](https://github.com/rails/jbuilder/commit/ca9622cca30c1112dd4408fcb2e658849abe1dd5)
131
- * [Remove JbuilderProxy class](https://github.com/rails/jbuilder/commit/5877482fc7da3224e42d4f72a1386f7a3a08173b)
132
- * [Move KeyFormatter into a separate file](https://github.com/rails/jbuilder/commit/13fee8464ff53ce853030114283c03c135c052b6)
133
- * [Move NullError into a separate file](https://github.com/rails/jbuilder/commit/13fee8464ff53ce853030114283c03c135c052b6)
134
-
135
- 2.0.7
136
- -----
137
- * [Add destroy notice to scaffold generator](https://github.com/rails/jbuilder/commit/8448e86f8cdfa0f517bd59576947875775a1d43c)
138
-
139
- 2.0.6
140
- -----
141
- * [Use render short form in controller generator](https://github.com/rails/jbuilder/commit/acf37320a7cea7fcc70c791bc94bd5f46b8349ff)
142
-
143
- 2.0.5
144
- -----
145
- * [Fix edgecase when json is defined as a method](https://github.com/rails/jbuilder/commit/ca711a0c0a5760e26258ce2d93c14bef8fff0ead)
146
-
147
- 2.0.4
148
- -----
149
- * [Add cache_if! to conditionally cache JSON fragments](https://github.com/rails/jbuilder/commit/14a5afd8a2c939a6fd710d355a194c114db96eb2)
150
-
151
- 2.0.3
152
- -----
153
- * [Pass options when calling cache_fragment_name](https://github.com/rails/jbuilder/commit/07c2cc7486fe9ef423d7bc821b83f6d485f330e0)
154
-
155
- 2.0.2
156
- -----
157
- * [Fix Dependency Tracking fail to detect single-quoted partial correctly](https://github.com/rails/jbuilder/commit/448679a6d3098eb34d137f782a05f1767711991a)
158
- * [Prevent Dependency Tracker constants leaking into global namespace](https://github.com/rails/jbuilder/commit/3544b288b63f504f46fa8aafd1d17ee198d77536)
159
-
160
- 2.0.1
161
- -----
162
- * [Dependency tracking support for Rails 3 with cache_digest gem](https://github.com/rails/jbuilder/commit/6b471d7a38118e8f7645abec21955ef793401daf)
163
-
164
- 2.0.0
165
- -----
166
- * [Respond to PUT/PATCH API request with :ok](https://github.com/rails/jbuilder/commit/9dbce9c12181e89f8f472ac23c764ffe8438040a)
167
- * [Remove Ruby 1.8 support](https://github.com/rails/jbuilder/commit/d53fff42d91f33d662eafc2561c4236687ecf6c9)
168
- * [Remove deprecated two argument block call](https://github.com/rails/jbuilder/commit/07a35ee7e79ae4b06dba9dbff5c4e07c1e627218)
169
- * [Make Jbuilder object initialize with single hash](https://github.com/rails/jbuilder/commit/38bf551db0189327aaa90b9be010c0d1b792c007)
170
- * [Track template dependencies](https://github.com/rails/jbuilder/commit/8e73cea39f60da1384afd687cc8e5e399630d8cc)
171
- * [Expose merge! method](https://github.com/rails/jbuilder/commit/0e2eb47f6f3c01add06a1a59b37cdda8baf24f29)
172
-
173
- 1.5.3
174
- -----
175
- * [Generators add `:id` column by default](https://github.com/rails/jbuilder/commit/0b52b86773e48ac2ce35d4155c7b70ad8b3e8937)
176
-
177
- 1.5.2
178
- -----
179
- * [Nil-collection should be treated as empty array](https://github.com/rails/jbuilder/commit/2f700bb00ab663c6b7fcb28d2967aeb989bd43c7)
180
-
181
- 1.5.1
182
- -----
183
- * [Expose template lookup options](https://github.com/rails/jbuilder/commit/404c18dee1af96ac6d8052a04062629ef1db2945)
184
-
185
- 1.5.0
186
- -----
187
- * [Do not perform any caching when `controller.perform_caching` is false](https://github.com/rails/jbuilder/commit/94633facde1ac43580f8cd5e13ae9cc83e1da8f4)
188
- * [Add partial collection rendering](https://github.com/rails/jbuilder/commit/e8c10fc885e41b18178aaf4dcbc176961c928d76)
189
- * [Deprecate extract! calling private methods](https://github.com/rails/jbuilder/commit/b9e19536c2105d7f2e813006bbcb8ca5730d28a3)
190
- * [Add array of partials rendering](https://github.com/rails/jbuilder/commit/7d7311071720548047f98f14ad013c560b8d9c3a)
191
-
192
- 1.4.2
193
- -----
194
- * [Require MIME dependency explicitly](https://github.com/rails/jbuilder/commit/b1ed5ac4f08b056f8839b4b19b43562e81e02a59)
195
-
196
- 1.4.1
197
- -----
198
- * [Removed deprecated positioned arguments initializer support](https://github.com/rails/jbuilder/commit/6e03e0452073eeda77e6dfe66aa31e5ec67a3531)
199
- * [Deprecate two-arguments block calling](https://github.com/rails/jbuilder/commit/2b10bb058bb12bc782cbcc16f6ec67b489e5ed43)
200
-
201
- 1.4.0
202
- -----
203
- * [Add quick collection attribute extraction](https://github.com/rails/jbuilder/commit/c2b966cf653ea4264fbb008b8cc6ce5359ebe40a)
204
- * [Block has priority over attributes extraction](https://github.com/rails/jbuilder/commit/77c24766362c02769d81dac000b1879a9e4d4a00)
205
- * [Meaningful error messages when adding properties to null](https://github.com/rails/jbuilder/commit/e26764602e34b3772e57e730763d512e59489e3b)
206
- * [Do not enforce template format, enforce handlers instead](https://github.com/rails/jbuilder/commit/72576755224b15da45e50cbea877679800ab1398)
207
-
208
- 1.3.0
209
- -----
210
- * [Add nil! method for nil JSON](https://github.com/rails/jbuilder/commit/822a906f68664f61a1209336bb681077692c8475)
211
-
212
- 1.2.1
213
- -----
214
- * [Added explicit dependency for MultiJson](https://github.com/rails/jbuilder/commit/4d58eacb6cd613679fb243484ff73a79bbbff2d2)
215
-
216
- 1.2.0
217
- -----
218
- * Multiple documentation improvements and internal refactoring
219
- * [Fixes fragment caching to work with latest digests](https://github.com/rails/jbuilder/commit/da937d6b8732124074c612abb7ff38868d1d96c0)
220
-
221
- 1.0.2
222
- -----
223
- * [Support non-Enumerable collections](https://github.com/rails/jbuilder/commit/4c20c59bf8131a1e419bb4ebf84f2b6bdcb6b0cf)
224
- * [Ensure that the default URL is in json format](https://github.com/rails/jbuilder/commit/0b46782fb7b8c34a3c96afa801fe27a5a97118a4)
225
-
226
- 1.0.0
227
- -----
228
- * Adopt Semantic Versioning
229
- * Add rails generators
@@ -1,14 +0,0 @@
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 "test-unit"
10
- gem "railties", "~> 3.0.0"
11
- gem "actionpack", "~> 3.0.0"
12
- gem "activemodel", "~> 3.0.0"
13
-
14
- gemspec :path => "../"
@@ -1,14 +0,0 @@
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 "test-unit"
10
- gem "railties", "~> 3.1.0"
11
- gem "actionpack", "~> 3.1.0"
12
- gem "activemodel", "~> 3.1.0"
13
-
14
- gemspec :path => "../"
@@ -1,14 +0,0 @@
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 "test-unit"
10
- gem "railties", "~> 3.2.0"
11
- gem "actionpack", "~> 3.2.0"
12
- gem "activemodel", "~> 3.2.0"
13
-
14
- gemspec :path => "../"
@@ -1,13 +0,0 @@
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", "~> 4.0.0"
10
- gem "actionpack", "~> 4.0.0"
11
- gem "activemodel", "~> 4.0.0"
12
-
13
- gemspec :path => "../"
@@ -1,13 +0,0 @@
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", "~> 4.1.0"
10
- gem "actionpack", "~> 4.1.0"
11
- gem "activemodel", "~> 4.1.0"
12
-
13
- gemspec :path => "../"
@@ -1,13 +0,0 @@
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", "~> 4.2.0"
10
- gem "actionpack", "~> 4.2.0"
11
- gem "activemodel", "~> 4.2.0"
12
-
13
- gemspec :path => "../"