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.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/CHANGELOG.md +4 -0
  4. data/Gemfile +2 -1
  5. data/Rakefile +2 -2
  6. data/fixtures/ashared/views_rails_3/users/phone_number.xml.rabl +1 -0
  7. data/fixtures/padrino_test/app/views +1 -0
  8. data/fixtures/padrino_test/db/migrate +1 -0
  9. data/fixtures/padrino_test/models +1 -0
  10. data/fixtures/padrino_test/test/app/controllers/posts_controller_test.rb +1 -0
  11. data/fixtures/padrino_test/test/app/controllers/users_controller_test.rb +1 -0
  12. data/fixtures/rails2/app/models +1 -0
  13. data/fixtures/rails2/app/views +1 -0
  14. data/fixtures/rails2/db/migrate +1 -0
  15. data/fixtures/rails2/test/functionals/posts_controller_test.rb +1 -0
  16. data/fixtures/rails2/test/functionals/users_controller_test.rb +1 -0
  17. data/fixtures/rails3/app/models +1 -0
  18. data/fixtures/rails3/app/views +1 -0
  19. data/fixtures/rails3/db/migrate +1 -0
  20. data/fixtures/rails3/test/functional/posts_controller_test.rb +1 -0
  21. data/fixtures/rails3/test/functional/users_controller_test.rb +1 -0
  22. data/fixtures/rails3_2/app/models +1 -0
  23. data/fixtures/rails3_2/app/views +1 -0
  24. data/fixtures/rails3_2/db/migrate +1 -0
  25. data/fixtures/rails3_2/test/functional/posts_controller_test.rb +1 -0
  26. data/fixtures/rails3_2/test/functional/users_controller_test.rb +1 -0
  27. data/fixtures/rails4/app/models +1 -0
  28. data/fixtures/rails4/app/views +1 -0
  29. data/fixtures/rails4/db/migrate +1 -0
  30. data/fixtures/rails4/test/functional/posts_controller_test.rb +1 -0
  31. data/fixtures/rails4/test/functional/users_controller_test.rb +1 -0
  32. data/fixtures/rails5/.gitignore +21 -0
  33. data/fixtures/rails5/Gemfile +52 -0
  34. data/fixtures/rails5/README.md +24 -0
  35. data/fixtures/rails5/Rakefile +13 -0
  36. data/fixtures/rails5/app/assets/config/manifest.js +3 -0
  37. data/fixtures/rails5/app/assets/images/.keep +0 -0
  38. data/fixtures/rails5/app/assets/javascripts/application.js +16 -0
  39. data/fixtures/rails5/app/assets/javascripts/cable.js +13 -0
  40. data/fixtures/rails5/app/assets/javascripts/channels/.keep +0 -0
  41. data/fixtures/rails5/app/assets/stylesheets/application.css +15 -0
  42. data/fixtures/rails5/app/channels/application_cable/channel.rb +4 -0
  43. data/fixtures/rails5/app/channels/application_cable/connection.rb +4 -0
  44. data/fixtures/rails5/app/controllers/application_controller.rb +3 -0
  45. data/fixtures/rails5/app/controllers/concerns/.keep +0 -0
  46. data/fixtures/rails5/app/controllers/posts_controller.rb +17 -0
  47. data/fixtures/rails5/app/controllers/users_controller.rb +11 -0
  48. data/fixtures/rails5/app/helpers/application_helper.rb +5 -0
  49. data/fixtures/rails5/app/jobs/application_job.rb +2 -0
  50. data/fixtures/rails5/app/mailers/application_mailer.rb +4 -0
  51. data/fixtures/rails5/app/models +1 -0
  52. data/fixtures/rails5/app/views +1 -0
  53. data/fixtures/rails5/bin/bundle +3 -0
  54. data/fixtures/rails5/bin/rails +9 -0
  55. data/fixtures/rails5/bin/rake +9 -0
  56. data/fixtures/rails5/bin/setup +34 -0
  57. data/fixtures/rails5/bin/spring +15 -0
  58. data/fixtures/rails5/bin/update +29 -0
  59. data/fixtures/rails5/config.ru +5 -0
  60. data/fixtures/rails5/config/application.rb +15 -0
  61. data/fixtures/rails5/config/boot.rb +3 -0
  62. data/fixtures/rails5/config/cable.yml +9 -0
  63. data/fixtures/rails5/config/database.yml +25 -0
  64. data/fixtures/rails5/config/environment.rb +5 -0
  65. data/fixtures/rails5/config/environments/development.rb +54 -0
  66. data/fixtures/rails5/config/environments/production.rb +86 -0
  67. data/fixtures/rails5/config/environments/test.rb +42 -0
  68. data/fixtures/rails5/config/initializers/application_controller_renderer.rb +6 -0
  69. data/fixtures/rails5/config/initializers/assets.rb +11 -0
  70. data/fixtures/rails5/config/initializers/backtrace_silencers.rb +7 -0
  71. data/fixtures/rails5/config/initializers/cookies_serializer.rb +5 -0
  72. data/fixtures/rails5/config/initializers/filter_parameter_logging.rb +4 -0
  73. data/fixtures/rails5/config/initializers/inflections.rb +16 -0
  74. data/fixtures/rails5/config/initializers/mime_types.rb +4 -0
  75. data/fixtures/rails5/config/initializers/new_framework_defaults.rb +24 -0
  76. data/fixtures/rails5/config/initializers/session_store.rb +3 -0
  77. data/fixtures/rails5/config/initializers/wrap_parameters.rb +14 -0
  78. data/fixtures/rails5/config/locales/en.yml +23 -0
  79. data/fixtures/rails5/config/puma.rb +47 -0
  80. data/fixtures/rails5/config/routes.rb +8 -0
  81. data/fixtures/rails5/config/secrets.yml +22 -0
  82. data/fixtures/rails5/config/spring.rb +6 -0
  83. data/fixtures/rails5/db/migrate +1 -0
  84. data/fixtures/rails5/db/schema.rb +41 -0
  85. data/fixtures/rails5/db/seeds.rb +7 -0
  86. data/fixtures/rails5/lib/assets/.keep +0 -0
  87. data/fixtures/rails5/lib/tasks/.keep +0 -0
  88. data/fixtures/rails5/log/.keep +0 -0
  89. data/fixtures/rails5/public/404.html +67 -0
  90. data/fixtures/rails5/public/422.html +67 -0
  91. data/fixtures/rails5/public/500.html +66 -0
  92. data/fixtures/rails5/public/apple-touch-icon-precomposed.png +0 -0
  93. data/fixtures/rails5/public/apple-touch-icon.png +0 -0
  94. data/fixtures/rails5/public/favicon.ico +0 -0
  95. data/fixtures/rails5/public/robots.txt +5 -0
  96. data/fixtures/rails5/test/controllers/.keep +0 -0
  97. data/fixtures/rails5/test/fixtures/.keep +0 -0
  98. data/fixtures/rails5/test/fixtures/files/.keep +0 -0
  99. data/fixtures/rails5/test/helpers/.keep +0 -0
  100. data/fixtures/rails5/test/integration/.keep +0 -0
  101. data/fixtures/rails5/test/mailers/.keep +0 -0
  102. data/fixtures/rails5/test/models/.keep +0 -0
  103. data/fixtures/rails5/test/test_helper.rb +26 -0
  104. data/fixtures/rails5/tmp/.keep +0 -0
  105. data/fixtures/rails5/vendor/assets/javascripts/.keep +0 -0
  106. data/fixtures/rails5/vendor/assets/stylesheets/.keep +0 -0
  107. data/fixtures/sinatra_test/db/migrate +1 -0
  108. data/fixtures/sinatra_test/models +1 -0
  109. data/fixtures/sinatra_test/test/functional/posts_controller_test.rb +1 -0
  110. data/fixtures/sinatra_test/test/functional/users_controller_test.rb +1 -0
  111. data/fixtures/sinatra_test/views +1 -0
  112. data/lib/rabl.rb +1 -1
  113. data/lib/rabl/configuration.rb +1 -1
  114. data/lib/rabl/digestor.rb +3 -37
  115. data/lib/rabl/digestor/rails3.rb +10 -0
  116. data/lib/rabl/digestor/rails41.rb +10 -0
  117. data/lib/rabl/digestor/rails5.rb +4 -0
  118. data/lib/rabl/engine.rb +1 -1
  119. data/lib/rabl/version.rb +1 -1
  120. metadata +99 -3
  121. data/fixtures/ashared/views_rails_3/users/phone_number.xml.rabl +0 -8
  122. data/fixtures/padrino_test/test/app/controllers/posts_controller_test.rb +0 -108
  123. data/fixtures/padrino_test/test/app/controllers/users_controller_test.rb +0 -87
  124. data/fixtures/rails2/test/functionals/posts_controller_test.rb +0 -108
  125. data/fixtures/rails2/test/functionals/users_controller_test.rb +0 -87
  126. data/fixtures/rails3/test/functional/posts_controller_test.rb +0 -108
  127. data/fixtures/rails3/test/functional/users_controller_test.rb +0 -87
  128. data/fixtures/rails3_2/test/functional/posts_controller_test.rb +0 -263
  129. data/fixtures/rails3_2/test/functional/users_controller_test.rb +0 -87
  130. data/fixtures/rails4/test/functional/posts_controller_test.rb +0 -248
  131. data/fixtures/rails4/test/functional/users_controller_test.rb +0 -87
  132. data/fixtures/sinatra_test/test/functional/posts_controller_test.rb +0 -108
  133. data/fixtures/sinatra_test/test/functional/users_controller_test.rb +0 -87
@@ -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