rabl 0.13.0 → 0.13.1
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 +1 -1
- data/CHANGELOG.md +4 -0
- data/Gemfile +2 -1
- data/Rakefile +2 -2
- data/fixtures/ashared/views_rails_3/users/phone_number.xml.rabl +1 -0
- data/fixtures/padrino_test/app/views +1 -0
- data/fixtures/padrino_test/db/migrate +1 -0
- data/fixtures/padrino_test/models +1 -0
- data/fixtures/padrino_test/test/app/controllers/posts_controller_test.rb +1 -0
- data/fixtures/padrino_test/test/app/controllers/users_controller_test.rb +1 -0
- data/fixtures/rails2/app/models +1 -0
- data/fixtures/rails2/app/views +1 -0
- data/fixtures/rails2/db/migrate +1 -0
- data/fixtures/rails2/test/functionals/posts_controller_test.rb +1 -0
- data/fixtures/rails2/test/functionals/users_controller_test.rb +1 -0
- data/fixtures/rails3/app/models +1 -0
- data/fixtures/rails3/app/views +1 -0
- data/fixtures/rails3/db/migrate +1 -0
- data/fixtures/rails3/test/functional/posts_controller_test.rb +1 -0
- data/fixtures/rails3/test/functional/users_controller_test.rb +1 -0
- data/fixtures/rails3_2/app/models +1 -0
- data/fixtures/rails3_2/app/views +1 -0
- data/fixtures/rails3_2/db/migrate +1 -0
- data/fixtures/rails3_2/test/functional/posts_controller_test.rb +1 -0
- data/fixtures/rails3_2/test/functional/users_controller_test.rb +1 -0
- data/fixtures/rails4/app/models +1 -0
- data/fixtures/rails4/app/views +1 -0
- data/fixtures/rails4/db/migrate +1 -0
- data/fixtures/rails4/test/functional/posts_controller_test.rb +1 -0
- data/fixtures/rails4/test/functional/users_controller_test.rb +1 -0
- data/fixtures/rails5/.gitignore +21 -0
- data/fixtures/rails5/Gemfile +52 -0
- data/fixtures/rails5/README.md +24 -0
- data/fixtures/rails5/Rakefile +13 -0
- data/fixtures/rails5/app/assets/config/manifest.js +3 -0
- data/fixtures/rails5/app/assets/images/.keep +0 -0
- data/fixtures/rails5/app/assets/javascripts/application.js +16 -0
- data/fixtures/rails5/app/assets/javascripts/cable.js +13 -0
- data/fixtures/rails5/app/assets/javascripts/channels/.keep +0 -0
- data/fixtures/rails5/app/assets/stylesheets/application.css +15 -0
- data/fixtures/rails5/app/channels/application_cable/channel.rb +4 -0
- data/fixtures/rails5/app/channels/application_cable/connection.rb +4 -0
- data/fixtures/rails5/app/controllers/application_controller.rb +3 -0
- data/fixtures/rails5/app/controllers/concerns/.keep +0 -0
- data/fixtures/rails5/app/controllers/posts_controller.rb +17 -0
- data/fixtures/rails5/app/controllers/users_controller.rb +11 -0
- data/fixtures/rails5/app/helpers/application_helper.rb +5 -0
- data/fixtures/rails5/app/jobs/application_job.rb +2 -0
- data/fixtures/rails5/app/mailers/application_mailer.rb +4 -0
- data/fixtures/rails5/app/models +1 -0
- data/fixtures/rails5/app/views +1 -0
- data/fixtures/rails5/bin/bundle +3 -0
- data/fixtures/rails5/bin/rails +9 -0
- data/fixtures/rails5/bin/rake +9 -0
- data/fixtures/rails5/bin/setup +34 -0
- data/fixtures/rails5/bin/spring +15 -0
- data/fixtures/rails5/bin/update +29 -0
- data/fixtures/rails5/config.ru +5 -0
- data/fixtures/rails5/config/application.rb +15 -0
- data/fixtures/rails5/config/boot.rb +3 -0
- data/fixtures/rails5/config/cable.yml +9 -0
- data/fixtures/rails5/config/database.yml +25 -0
- data/fixtures/rails5/config/environment.rb +5 -0
- data/fixtures/rails5/config/environments/development.rb +54 -0
- data/fixtures/rails5/config/environments/production.rb +86 -0
- data/fixtures/rails5/config/environments/test.rb +42 -0
- data/fixtures/rails5/config/initializers/application_controller_renderer.rb +6 -0
- data/fixtures/rails5/config/initializers/assets.rb +11 -0
- data/fixtures/rails5/config/initializers/backtrace_silencers.rb +7 -0
- data/fixtures/rails5/config/initializers/cookies_serializer.rb +5 -0
- data/fixtures/rails5/config/initializers/filter_parameter_logging.rb +4 -0
- data/fixtures/rails5/config/initializers/inflections.rb +16 -0
- data/fixtures/rails5/config/initializers/mime_types.rb +4 -0
- data/fixtures/rails5/config/initializers/new_framework_defaults.rb +24 -0
- data/fixtures/rails5/config/initializers/session_store.rb +3 -0
- data/fixtures/rails5/config/initializers/wrap_parameters.rb +14 -0
- data/fixtures/rails5/config/locales/en.yml +23 -0
- data/fixtures/rails5/config/puma.rb +47 -0
- data/fixtures/rails5/config/routes.rb +8 -0
- data/fixtures/rails5/config/secrets.yml +22 -0
- data/fixtures/rails5/config/spring.rb +6 -0
- data/fixtures/rails5/db/migrate +1 -0
- data/fixtures/rails5/db/schema.rb +41 -0
- data/fixtures/rails5/db/seeds.rb +7 -0
- data/fixtures/rails5/lib/assets/.keep +0 -0
- data/fixtures/rails5/lib/tasks/.keep +0 -0
- data/fixtures/rails5/log/.keep +0 -0
- data/fixtures/rails5/public/404.html +67 -0
- data/fixtures/rails5/public/422.html +67 -0
- data/fixtures/rails5/public/500.html +66 -0
- data/fixtures/rails5/public/apple-touch-icon-precomposed.png +0 -0
- data/fixtures/rails5/public/apple-touch-icon.png +0 -0
- data/fixtures/rails5/public/favicon.ico +0 -0
- data/fixtures/rails5/public/robots.txt +5 -0
- data/fixtures/rails5/test/controllers/.keep +0 -0
- data/fixtures/rails5/test/fixtures/.keep +0 -0
- data/fixtures/rails5/test/fixtures/files/.keep +0 -0
- data/fixtures/rails5/test/helpers/.keep +0 -0
- data/fixtures/rails5/test/integration/.keep +0 -0
- data/fixtures/rails5/test/mailers/.keep +0 -0
- data/fixtures/rails5/test/models/.keep +0 -0
- data/fixtures/rails5/test/test_helper.rb +26 -0
- data/fixtures/rails5/tmp/.keep +0 -0
- data/fixtures/rails5/vendor/assets/javascripts/.keep +0 -0
- data/fixtures/rails5/vendor/assets/stylesheets/.keep +0 -0
- data/fixtures/sinatra_test/db/migrate +1 -0
- data/fixtures/sinatra_test/models +1 -0
- data/fixtures/sinatra_test/test/functional/posts_controller_test.rb +1 -0
- data/fixtures/sinatra_test/test/functional/users_controller_test.rb +1 -0
- data/fixtures/sinatra_test/views +1 -0
- data/lib/rabl.rb +1 -1
- data/lib/rabl/configuration.rb +1 -1
- data/lib/rabl/digestor.rb +3 -37
- data/lib/rabl/digestor/rails3.rb +10 -0
- data/lib/rabl/digestor/rails41.rb +10 -0
- data/lib/rabl/digestor/rails5.rb +4 -0
- data/lib/rabl/engine.rb +1 -1
- data/lib/rabl/version.rb +1 -1
- metadata +99 -3
- data/fixtures/ashared/views_rails_3/users/phone_number.xml.rabl +0 -8
- data/fixtures/padrino_test/test/app/controllers/posts_controller_test.rb +0 -108
- data/fixtures/padrino_test/test/app/controllers/users_controller_test.rb +0 -87
- data/fixtures/rails2/test/functionals/posts_controller_test.rb +0 -108
- data/fixtures/rails2/test/functionals/users_controller_test.rb +0 -87
- data/fixtures/rails3/test/functional/posts_controller_test.rb +0 -108
- data/fixtures/rails3/test/functional/users_controller_test.rb +0 -87
- data/fixtures/rails3_2/test/functional/posts_controller_test.rb +0 -263
- data/fixtures/rails3_2/test/functional/users_controller_test.rb +0 -87
- data/fixtures/rails4/test/functional/posts_controller_test.rb +0 -248
- data/fixtures/rails4/test/functional/users_controller_test.rb +0 -87
- data/fixtures/sinatra_test/test/functional/posts_controller_test.rb +0 -108
- data/fixtures/sinatra_test/test/functional/users_controller_test.rb +0 -87
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
module Rabl
|
|
2
|
+
class Digestor < ActionView::Digestor
|
|
3
|
+
def self.digest(name, format, finder, options = {})
|
|
4
|
+
cache_key = [name, format] + Array.wrap(options[:dependencies])
|
|
5
|
+
@@cache[cache_key.join('.')] ||= begin
|
|
6
|
+
Digestor.new(name, format, finder, options).digest
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
module Rabl
|
|
2
|
+
class Digestor < ActionView::Digestor
|
|
3
|
+
def self.digest(options = {})
|
|
4
|
+
cache_key = [options[:name]] + Array.wrap(options[:dependencies])
|
|
5
|
+
@@cache[cache_key.join('.')] ||= begin
|
|
6
|
+
Digestor.new({ :name => options[:name], :finder => options[:finder] }.merge!(options)).digest
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
data/lib/rabl/engine.rb
CHANGED
data/lib/rabl/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rabl
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.13.
|
|
4
|
+
version: 0.13.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nathan Esquenazi
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-10-21 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -194,11 +194,14 @@ files:
|
|
|
194
194
|
- fixtures/padrino_test/app/controllers/users.rb
|
|
195
195
|
- fixtures/padrino_test/app/helpers/posts_helper.rb
|
|
196
196
|
- fixtures/padrino_test/app/helpers/users_helper.rb
|
|
197
|
+
- fixtures/padrino_test/app/views
|
|
197
198
|
- fixtures/padrino_test/config.ru
|
|
198
199
|
- fixtures/padrino_test/config/apps.rb
|
|
199
200
|
- fixtures/padrino_test/config/boot.rb
|
|
200
201
|
- fixtures/padrino_test/config/database.rb
|
|
202
|
+
- fixtures/padrino_test/db/migrate
|
|
201
203
|
- fixtures/padrino_test/db/schema.rb
|
|
204
|
+
- fixtures/padrino_test/models
|
|
202
205
|
- fixtures/padrino_test/public/favicon.ico
|
|
203
206
|
- fixtures/padrino_test/test/app/controllers/posts_controller_test.rb
|
|
204
207
|
- fixtures/padrino_test/test/app/controllers/users_controller_test.rb
|
|
@@ -213,6 +216,8 @@ files:
|
|
|
213
216
|
- fixtures/rails2/app/helpers/application_helper.rb
|
|
214
217
|
- fixtures/rails2/app/helpers/posts_helper.rb
|
|
215
218
|
- fixtures/rails2/app/helpers/users_helper.rb
|
|
219
|
+
- fixtures/rails2/app/models
|
|
220
|
+
- fixtures/rails2/app/views
|
|
216
221
|
- fixtures/rails2/config/boot.rb
|
|
217
222
|
- fixtures/rails2/config/database.yml
|
|
218
223
|
- fixtures/rails2/config/environment.rb
|
|
@@ -228,6 +233,7 @@ files:
|
|
|
228
233
|
- fixtures/rails2/config/locales/en.yml
|
|
229
234
|
- fixtures/rails2/config/preinitializer.rb
|
|
230
235
|
- fixtures/rails2/config/routes.rb
|
|
236
|
+
- fixtures/rails2/db/migrate
|
|
231
237
|
- fixtures/rails2/db/schema.rb
|
|
232
238
|
- fixtures/rails2/db/seeds.rb
|
|
233
239
|
- fixtures/rails2/public/404.html
|
|
@@ -256,6 +262,8 @@ files:
|
|
|
256
262
|
- fixtures/rails3/app/controllers/application_controller.rb
|
|
257
263
|
- fixtures/rails3/app/controllers/posts_controller.rb
|
|
258
264
|
- fixtures/rails3/app/controllers/users_controller.rb
|
|
265
|
+
- fixtures/rails3/app/models
|
|
266
|
+
- fixtures/rails3/app/views
|
|
259
267
|
- fixtures/rails3/config.ru
|
|
260
268
|
- fixtures/rails3/config/application.rb
|
|
261
269
|
- fixtures/rails3/config/boot.rb
|
|
@@ -271,6 +279,7 @@ files:
|
|
|
271
279
|
- fixtures/rails3/config/initializers/session_store.rb
|
|
272
280
|
- fixtures/rails3/config/locales/en.yml
|
|
273
281
|
- fixtures/rails3/config/routes.rb
|
|
282
|
+
- fixtures/rails3/db/migrate
|
|
274
283
|
- fixtures/rails3/db/seeds.rb
|
|
275
284
|
- fixtures/rails3/lib/tasks/.gitkeep
|
|
276
285
|
- fixtures/rails3/public/404.html
|
|
@@ -303,6 +312,8 @@ files:
|
|
|
303
312
|
- fixtures/rails3_2/app/helpers/posts_helper.rb
|
|
304
313
|
- fixtures/rails3_2/app/helpers/users_helper.rb
|
|
305
314
|
- fixtures/rails3_2/app/mailers/.gitkeep
|
|
315
|
+
- fixtures/rails3_2/app/models
|
|
316
|
+
- fixtures/rails3_2/app/views
|
|
306
317
|
- fixtures/rails3_2/config.ru
|
|
307
318
|
- fixtures/rails3_2/config/application.rb
|
|
308
319
|
- fixtures/rails3_2/config/boot.rb
|
|
@@ -319,6 +330,7 @@ files:
|
|
|
319
330
|
- fixtures/rails3_2/config/initializers/wrap_parameters.rb
|
|
320
331
|
- fixtures/rails3_2/config/locales/en.yml
|
|
321
332
|
- fixtures/rails3_2/config/routes.rb
|
|
333
|
+
- fixtures/rails3_2/db/migrate
|
|
322
334
|
- fixtures/rails3_2/db/schema.rb
|
|
323
335
|
- fixtures/rails3_2/db/seeds.rb
|
|
324
336
|
- fixtures/rails3_2/doc/README_FOR_APP
|
|
@@ -360,6 +372,8 @@ files:
|
|
|
360
372
|
- fixtures/rails4/app/controllers/users_controller.rb
|
|
361
373
|
- fixtures/rails4/app/helpers/application_helper.rb
|
|
362
374
|
- fixtures/rails4/app/mailers/.keep
|
|
375
|
+
- fixtures/rails4/app/models
|
|
376
|
+
- fixtures/rails4/app/views
|
|
363
377
|
- fixtures/rails4/bin/bundle
|
|
364
378
|
- fixtures/rails4/bin/rails
|
|
365
379
|
- fixtures/rails4/bin/rake
|
|
@@ -380,6 +394,7 @@ files:
|
|
|
380
394
|
- fixtures/rails4/config/initializers/wrap_parameters.rb
|
|
381
395
|
- fixtures/rails4/config/locales/en.yml
|
|
382
396
|
- fixtures/rails4/config/routes.rb
|
|
397
|
+
- fixtures/rails4/db/migrate
|
|
383
398
|
- fixtures/rails4/db/seeds.rb
|
|
384
399
|
- fixtures/rails4/lib/assets/.keep
|
|
385
400
|
- fixtures/rails4/lib/tasks/.keep
|
|
@@ -400,18 +415,99 @@ files:
|
|
|
400
415
|
- fixtures/rails4/test/test_helper.rb
|
|
401
416
|
- fixtures/rails4/vendor/assets/javascripts/.keep
|
|
402
417
|
- fixtures/rails4/vendor/assets/stylesheets/.keep
|
|
418
|
+
- fixtures/rails5/.gitignore
|
|
419
|
+
- fixtures/rails5/Gemfile
|
|
420
|
+
- fixtures/rails5/README.md
|
|
421
|
+
- fixtures/rails5/Rakefile
|
|
422
|
+
- fixtures/rails5/app/assets/config/manifest.js
|
|
423
|
+
- fixtures/rails5/app/assets/images/.keep
|
|
424
|
+
- fixtures/rails5/app/assets/javascripts/application.js
|
|
425
|
+
- fixtures/rails5/app/assets/javascripts/cable.js
|
|
426
|
+
- fixtures/rails5/app/assets/javascripts/channels/.keep
|
|
427
|
+
- fixtures/rails5/app/assets/stylesheets/application.css
|
|
428
|
+
- fixtures/rails5/app/channels/application_cable/channel.rb
|
|
429
|
+
- fixtures/rails5/app/channels/application_cable/connection.rb
|
|
430
|
+
- fixtures/rails5/app/controllers/application_controller.rb
|
|
431
|
+
- fixtures/rails5/app/controllers/concerns/.keep
|
|
432
|
+
- fixtures/rails5/app/controllers/posts_controller.rb
|
|
433
|
+
- fixtures/rails5/app/controllers/users_controller.rb
|
|
434
|
+
- fixtures/rails5/app/helpers/application_helper.rb
|
|
435
|
+
- fixtures/rails5/app/jobs/application_job.rb
|
|
436
|
+
- fixtures/rails5/app/mailers/application_mailer.rb
|
|
437
|
+
- fixtures/rails5/app/models
|
|
438
|
+
- fixtures/rails5/app/views
|
|
439
|
+
- fixtures/rails5/bin/bundle
|
|
440
|
+
- fixtures/rails5/bin/rails
|
|
441
|
+
- fixtures/rails5/bin/rake
|
|
442
|
+
- fixtures/rails5/bin/setup
|
|
443
|
+
- fixtures/rails5/bin/spring
|
|
444
|
+
- fixtures/rails5/bin/update
|
|
445
|
+
- fixtures/rails5/config.ru
|
|
446
|
+
- fixtures/rails5/config/application.rb
|
|
447
|
+
- fixtures/rails5/config/boot.rb
|
|
448
|
+
- fixtures/rails5/config/cable.yml
|
|
449
|
+
- fixtures/rails5/config/database.yml
|
|
450
|
+
- fixtures/rails5/config/environment.rb
|
|
451
|
+
- fixtures/rails5/config/environments/development.rb
|
|
452
|
+
- fixtures/rails5/config/environments/production.rb
|
|
453
|
+
- fixtures/rails5/config/environments/test.rb
|
|
454
|
+
- fixtures/rails5/config/initializers/application_controller_renderer.rb
|
|
455
|
+
- fixtures/rails5/config/initializers/assets.rb
|
|
456
|
+
- fixtures/rails5/config/initializers/backtrace_silencers.rb
|
|
457
|
+
- fixtures/rails5/config/initializers/cookies_serializer.rb
|
|
458
|
+
- fixtures/rails5/config/initializers/filter_parameter_logging.rb
|
|
459
|
+
- fixtures/rails5/config/initializers/inflections.rb
|
|
460
|
+
- fixtures/rails5/config/initializers/mime_types.rb
|
|
461
|
+
- fixtures/rails5/config/initializers/new_framework_defaults.rb
|
|
462
|
+
- fixtures/rails5/config/initializers/session_store.rb
|
|
463
|
+
- fixtures/rails5/config/initializers/wrap_parameters.rb
|
|
464
|
+
- fixtures/rails5/config/locales/en.yml
|
|
465
|
+
- fixtures/rails5/config/puma.rb
|
|
466
|
+
- fixtures/rails5/config/routes.rb
|
|
467
|
+
- fixtures/rails5/config/secrets.yml
|
|
468
|
+
- fixtures/rails5/config/spring.rb
|
|
469
|
+
- fixtures/rails5/db/migrate
|
|
470
|
+
- fixtures/rails5/db/schema.rb
|
|
471
|
+
- fixtures/rails5/db/seeds.rb
|
|
472
|
+
- fixtures/rails5/lib/assets/.keep
|
|
473
|
+
- fixtures/rails5/lib/tasks/.keep
|
|
474
|
+
- fixtures/rails5/log/.keep
|
|
475
|
+
- fixtures/rails5/public/404.html
|
|
476
|
+
- fixtures/rails5/public/422.html
|
|
477
|
+
- fixtures/rails5/public/500.html
|
|
478
|
+
- fixtures/rails5/public/apple-touch-icon-precomposed.png
|
|
479
|
+
- fixtures/rails5/public/apple-touch-icon.png
|
|
480
|
+
- fixtures/rails5/public/favicon.ico
|
|
481
|
+
- fixtures/rails5/public/robots.txt
|
|
482
|
+
- fixtures/rails5/test/controllers/.keep
|
|
483
|
+
- fixtures/rails5/test/fixtures/.keep
|
|
484
|
+
- fixtures/rails5/test/fixtures/files/.keep
|
|
485
|
+
- fixtures/rails5/test/helpers/.keep
|
|
486
|
+
- fixtures/rails5/test/integration/.keep
|
|
487
|
+
- fixtures/rails5/test/mailers/.keep
|
|
488
|
+
- fixtures/rails5/test/models/.keep
|
|
489
|
+
- fixtures/rails5/test/test_helper.rb
|
|
490
|
+
- fixtures/rails5/tmp/.keep
|
|
491
|
+
- fixtures/rails5/vendor/assets/javascripts/.keep
|
|
492
|
+
- fixtures/rails5/vendor/assets/stylesheets/.keep
|
|
403
493
|
- fixtures/sinatra_test/Gemfile
|
|
404
494
|
- fixtures/sinatra_test/Rakefile
|
|
405
495
|
- fixtures/sinatra_test/app.rb
|
|
406
496
|
- fixtures/sinatra_test/config.ru
|
|
497
|
+
- fixtures/sinatra_test/db/migrate
|
|
498
|
+
- fixtures/sinatra_test/models
|
|
407
499
|
- fixtures/sinatra_test/test/functional/posts_controller_test.rb
|
|
408
500
|
- fixtures/sinatra_test/test/functional/users_controller_test.rb
|
|
409
501
|
- fixtures/sinatra_test/test/test_helper.rb
|
|
502
|
+
- fixtures/sinatra_test/views
|
|
410
503
|
- lib/rabl.rb
|
|
411
504
|
- lib/rabl/builder.rb
|
|
412
505
|
- lib/rabl/cache_engine.rb
|
|
413
506
|
- lib/rabl/configuration.rb
|
|
414
507
|
- lib/rabl/digestor.rb
|
|
508
|
+
- lib/rabl/digestor/rails3.rb
|
|
509
|
+
- lib/rabl/digestor/rails41.rb
|
|
510
|
+
- lib/rabl/digestor/rails5.rb
|
|
415
511
|
- lib/rabl/engine.rb
|
|
416
512
|
- lib/rabl/helpers.rb
|
|
417
513
|
- lib/rabl/multi_builder.rb
|
|
@@ -467,7 +563,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
467
563
|
version: '0'
|
|
468
564
|
requirements: []
|
|
469
565
|
rubyforge_project: rabl
|
|
470
|
-
rubygems_version: 2.
|
|
566
|
+
rubygems_version: 2.6.7
|
|
471
567
|
signing_key:
|
|
472
568
|
specification_version: 4
|
|
473
569
|
summary: General ruby templating with json, bson, xml and msgpack support
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
# Lives in <rabl>/test/integration/posts_controller_test.rb
|
|
2
|
-
# Symlinked to fixture applications
|
|
3
|
-
|
|
4
|
-
begin # Padrino
|
|
5
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../test_config.rb')
|
|
6
|
-
rescue LoadError # Rails
|
|
7
|
-
require File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb')
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
context "PostsController" do
|
|
11
|
-
helper(:json_output) { JSON.parse(last_response.body) }
|
|
12
|
-
|
|
13
|
-
setup do
|
|
14
|
-
create_users!
|
|
15
|
-
Post.delete_all
|
|
16
|
-
@post1 = Post.create(:title => "Foo", :body => "Bar", :user_id => @user1.id)
|
|
17
|
-
@post2 = Post.create(:title => "Baz", :body => "Bah", :user_id => @user2.id)
|
|
18
|
-
@post3 = Post.create(:title => "Kaz", :body => "Paz", :user_id => @user3.id)
|
|
19
|
-
@posts = [@post1, @post2, @post3]
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
context "for index action" do
|
|
23
|
-
setup do
|
|
24
|
-
get "/posts", :format => :json
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# Attributes (regular)
|
|
28
|
-
asserts("contains post titles") do
|
|
29
|
-
json_output['articles'].map { |o| o["article"]["title"] }
|
|
30
|
-
end.equals { @posts.map(&:title) }
|
|
31
|
-
|
|
32
|
-
asserts("contains post bodies") do
|
|
33
|
-
json_output['articles'].map { |o| o["article"]["body"] }
|
|
34
|
-
end.equals { @posts.map(&:body) }
|
|
35
|
-
|
|
36
|
-
# Attributes (custom name)
|
|
37
|
-
asserts("contains post posted_at") do
|
|
38
|
-
json_output['articles'].map { |o| o["article"]["posted_at"] }
|
|
39
|
-
end.equals { @posts.map(&:created_at).map(&:iso8601) }
|
|
40
|
-
|
|
41
|
-
# Child
|
|
42
|
-
asserts("contains post user child username") do
|
|
43
|
-
json_output['articles'].map { |o| o["article"]["user"]["username"] }
|
|
44
|
-
end.equals { @posts.map(&:user).map(&:username) }
|
|
45
|
-
|
|
46
|
-
asserts("contains post user child role") do
|
|
47
|
-
json_output['articles'].map { |o| o["article"]["user"]["role"] }
|
|
48
|
-
end.equals { ["normal", "normal", "admin"] }
|
|
49
|
-
|
|
50
|
-
# Child Numbers of the Child User
|
|
51
|
-
asserts("contains post user child numbers") do
|
|
52
|
-
json_output['articles'].map { |o| o["article"]["user"]["pnumbers"][0]["pnumber"]["formatted"] }
|
|
53
|
-
end.equals { @posts.map(&:user).map(&:phone_numbers).map(&:first).map(&:formatted) }
|
|
54
|
-
|
|
55
|
-
# Glue (username to article)
|
|
56
|
-
asserts("contains glued usernames") do
|
|
57
|
-
json_output['articles'].map { |o| o["article"]["author_name"] }
|
|
58
|
-
end.equals { @posts.map(&:user).map(&:username) }
|
|
59
|
-
|
|
60
|
-
# Conditional Child (admin)
|
|
61
|
-
asserts("contains admin child only for admins") do
|
|
62
|
-
json_output['articles'].map { |o| o["article"]["admin"]["username"] if o["article"].has_key?("admin") }.compact
|
|
63
|
-
end.equals { [@user3.username] }
|
|
64
|
-
|
|
65
|
-
# Conditional Node (created_by_admin)
|
|
66
|
-
asserts("contains created_by_admin node for admins") do
|
|
67
|
-
json_output['articles'].last['article']['created_by_admin']
|
|
68
|
-
end.equals { true }
|
|
69
|
-
|
|
70
|
-
denies("contains no created_by_admin node for non-admins") do
|
|
71
|
-
json_output['articles'].first['article']
|
|
72
|
-
end.includes(:created_by_admin)
|
|
73
|
-
end # index action
|
|
74
|
-
|
|
75
|
-
context "for show action" do
|
|
76
|
-
setup do
|
|
77
|
-
get "/posts/#{@post1.id}", :format => :json
|
|
78
|
-
json_output['post']
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
# Attributes (regular)
|
|
82
|
-
asserts("contains post title") { topic['title'] }.equals { @post1.title }
|
|
83
|
-
asserts("contains post body") { topic['body'] }.equals { @post1.body }
|
|
84
|
-
|
|
85
|
-
# Attributes (custom name)
|
|
86
|
-
asserts("contains post posted_at") { topic['posted_at'] }.equals { @post1.created_at.iso8601 }
|
|
87
|
-
|
|
88
|
-
# Child
|
|
89
|
-
asserts("contains post user child username") { topic["user"]["username"] }.equals { @post1.user.username }
|
|
90
|
-
asserts("contains post user child role") { topic["user"]["role"] }.equals { "normal" }
|
|
91
|
-
|
|
92
|
-
# Child Numbers of the Child User
|
|
93
|
-
asserts("contains post user child numbers") do
|
|
94
|
-
topic["user"]["pnumbers"][0]["pnumber"]["formatted"]
|
|
95
|
-
end.equals { @post1.user.phone_numbers[0].formatted }
|
|
96
|
-
|
|
97
|
-
# Glue (username to article)
|
|
98
|
-
asserts("contains glued username") { topic["author_name"] }.equals { @post1.user.username }
|
|
99
|
-
|
|
100
|
-
# Non-ORM Date Node Partial
|
|
101
|
-
context "for date node" do
|
|
102
|
-
setup { json_output['post']['created_date'] }
|
|
103
|
-
asserts("contains date partial with day") { topic['day'] }.equals { @post1.created_at.day }
|
|
104
|
-
asserts("contains date partial with hour") { topic['hour'] }.equals { @post1.created_at.hour }
|
|
105
|
-
asserts("contains date partial with full") { topic['full'] }.equals { @post1.created_at.iso8601 }
|
|
106
|
-
end # date node
|
|
107
|
-
end # show action
|
|
108
|
-
end
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# Lives in <rabl>/test/integration/users_controller_test.rb
|
|
2
|
-
# Symlinked to fixture applications
|
|
3
|
-
|
|
4
|
-
begin # Sinatra
|
|
5
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../test_config.rb')
|
|
6
|
-
rescue LoadError # Rails
|
|
7
|
-
require File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb')
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
context "UsersController" do
|
|
11
|
-
helper(:json_output) { JSON.parse(last_response.body) }
|
|
12
|
-
|
|
13
|
-
setup do
|
|
14
|
-
create_users!
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
context "for index action" do
|
|
18
|
-
# Tests `collection @users` extending from 'show' template
|
|
19
|
-
|
|
20
|
-
setup do
|
|
21
|
-
get "/users"
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# Attributes (regular)
|
|
25
|
-
asserts("contains user usernames") do
|
|
26
|
-
json_output.map { |u| u["user"]["username"] }
|
|
27
|
-
end.equals { @users.map(&:username) }
|
|
28
|
-
asserts("contains email") do
|
|
29
|
-
json_output.map { |u| u["user"]["email"] }
|
|
30
|
-
end.equals { @users.map(&:email) }
|
|
31
|
-
asserts("contains location") do
|
|
32
|
-
json_output.map { |u| u["user"]["location"] }
|
|
33
|
-
end.equals { @users.map(&:location) }
|
|
34
|
-
|
|
35
|
-
# Attributes (custom name)
|
|
36
|
-
asserts("contains registered_at") do
|
|
37
|
-
json_output.map { |u| u["user"]["registered_at"] }
|
|
38
|
-
end.equals { @users.map(&:created_at).map(&:iso8601) }
|
|
39
|
-
|
|
40
|
-
# Node (renders based on attribute)
|
|
41
|
-
asserts("contains role") do
|
|
42
|
-
json_output.map { |u| u["user"]["role"] }
|
|
43
|
-
end.equals ['normal', 'normal', 'admin']
|
|
44
|
-
|
|
45
|
-
# Child (custom collection name)
|
|
46
|
-
asserts("contains formatted phone numbers") do
|
|
47
|
-
json_output.map { |u| u["user"]["pnumbers"].map { |n| n["pnumber"]["formatted"] } }
|
|
48
|
-
end.equals { @users.map { |u| u.phone_numbers.map(&:formatted) } }
|
|
49
|
-
|
|
50
|
-
# Node (renders collection partial)
|
|
51
|
-
asserts("contains formatted node numbers") do
|
|
52
|
-
json_output.map { |u| u["user"]["node_numbers"].map { |n| n["formatted"] } }
|
|
53
|
-
end.equals { @users.map { |u| u.phone_numbers.map(&:formatted) } }
|
|
54
|
-
end # index
|
|
55
|
-
|
|
56
|
-
context "for show action" do
|
|
57
|
-
# Tests `object :user => :person` custom parent node name
|
|
58
|
-
setup do
|
|
59
|
-
get "/users/#{@user1.id}"
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
# Attributes (regular)
|
|
63
|
-
asserts("contains username") { json_output["person"]["username"] }.equals { @user1.username }
|
|
64
|
-
asserts("contains email") { json_output["person"]["email"] }.equals { @user1.email }
|
|
65
|
-
asserts("contains location") { json_output["person"]["location"] }.equals { @user1.location }
|
|
66
|
-
# Attributes (custom name)
|
|
67
|
-
asserts("contains registered_at") { json_output["person"]["registered_at"] }.equals { @user1.created_at.iso8601 }
|
|
68
|
-
# Node (renders based on attribute)
|
|
69
|
-
asserts("contains role node") { json_output["person"]["role"] }.equals "normal"
|
|
70
|
-
|
|
71
|
-
# Child (custom collection name)
|
|
72
|
-
asserts("contains first phone number") {
|
|
73
|
-
json_output["person"]["pnumbers"][0]["pnumber"]["formatted"]
|
|
74
|
-
}.equals { @user1.phone_numbers[0].formatted }
|
|
75
|
-
asserts("contains second phone number") {
|
|
76
|
-
json_output["person"]["pnumbers"][1]["pnumber"]["formatted"]
|
|
77
|
-
}.equals { @user1.phone_numbers[1].formatted }
|
|
78
|
-
|
|
79
|
-
# Node (renders collection partial)
|
|
80
|
-
asserts("contains first node number") {
|
|
81
|
-
json_output["person"]["node_numbers"][0]["formatted"]
|
|
82
|
-
}.equals { @user1.phone_numbers[0].formatted }
|
|
83
|
-
asserts("contains second node number") {
|
|
84
|
-
json_output["person"]["node_numbers"][1]["formatted"]
|
|
85
|
-
}.equals { @user1.phone_numbers[1].formatted }
|
|
86
|
-
end # show
|
|
87
|
-
end
|