rabl 0.14.3 → 0.14.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.
Files changed (560) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/lib/rabl/version.rb +1 -1
  4. metadata +2 -558
  5. data/.gitignore +0 -8
  6. data/.travis.yml +0 -18
  7. data/Gemfile +0 -29
  8. data/Rakefile +0 -63
  9. data/examples/base.json.rabl +0 -8
  10. data/examples/demo.json.rabl +0 -42
  11. data/examples/inherited.json.rabl +0 -11
  12. data/fixtures/ashared/NOTES +0 -100
  13. data/fixtures/ashared/README +0 -39
  14. data/fixtures/ashared/controllers_rails_5/posts_controller.rb +0 -17
  15. data/fixtures/ashared/controllers_rails_5/users_controller.rb +0 -11
  16. data/fixtures/ashared/helpers/application_helper.rb +0 -5
  17. data/fixtures/ashared/migrate/20111002092016_create_users.rb +0 -15
  18. data/fixtures/ashared/migrate/20111002092019_create_posts.rb +0 -14
  19. data/fixtures/ashared/migrate/20111002092024_create_phone_numbers.rb +0 -16
  20. data/fixtures/ashared/models/phone_number.rb +0 -7
  21. data/fixtures/ashared/models/post.rb +0 -3
  22. data/fixtures/ashared/models/user.rb +0 -3
  23. data/fixtures/ashared/views/layouts/application.html.erb +0 -9
  24. data/fixtures/ashared/views/posts/_show_footer_script.js.erb +0 -1
  25. data/fixtures/ashared/views/posts/date.rabl +0 -3
  26. data/fixtures/ashared/views/posts/index.rabl +0 -12
  27. data/fixtures/ashared/views/posts/show.rabl +0 -17
  28. data/fixtures/ashared/views/users/index.json.rabl +0 -3
  29. data/fixtures/ashared/views/users/phone_number.json.rabl +0 -6
  30. data/fixtures/ashared/views/users/show.json.rabl +0 -16
  31. data/fixtures/ashared/views_rails_3/layouts/application.html.erb +0 -13
  32. data/fixtures/ashared/views_rails_3/posts/_show_footer_script.js.erb +0 -1
  33. data/fixtures/ashared/views_rails_3/posts/date.rabl +0 -3
  34. data/fixtures/ashared/views_rails_3/posts/index.html.erb +0 -3
  35. data/fixtures/ashared/views_rails_3/posts/index.rabl +0 -12
  36. data/fixtures/ashared/views_rails_3/posts/renderer.rabl +0 -8
  37. data/fixtures/ashared/views_rails_3/posts/renderer_partial.rabl +0 -4
  38. data/fixtures/ashared/views_rails_3/posts/show.html.erb +0 -3
  39. data/fixtures/ashared/views_rails_3/posts/show.rabl +0 -25
  40. data/fixtures/ashared/views_rails_3/posts/show.rabl_test_v1.rabl +0 -7
  41. data/fixtures/ashared/views_rails_3/users/index.json.rabl +0 -3
  42. data/fixtures/ashared/views_rails_3/users/phone_number.json.rabl +0 -8
  43. data/fixtures/ashared/views_rails_3/users/phone_number.xml.rabl +0 -1
  44. data/fixtures/ashared/views_rails_3/users/show.json.rabl +0 -16
  45. data/fixtures/ashared/views_rails_3/users/show.rabl_test_v1.rabl +0 -3
  46. data/fixtures/ashared/views_rails_6/layouts/application.html.erb +0 -13
  47. data/fixtures/ashared/views_rails_6/posts/_show_footer_script.js.erb +0 -1
  48. data/fixtures/ashared/views_rails_6/posts/date.rabl +0 -3
  49. data/fixtures/ashared/views_rails_6/posts/index.html.erb +0 -3
  50. data/fixtures/ashared/views_rails_6/posts/index.rabl +0 -12
  51. data/fixtures/ashared/views_rails_6/posts/renderer.rabl +0 -8
  52. data/fixtures/ashared/views_rails_6/posts/renderer_partial.rabl +0 -4
  53. data/fixtures/ashared/views_rails_6/posts/show.html.erb +0 -3
  54. data/fixtures/ashared/views_rails_6/posts/show.rabl +0 -25
  55. data/fixtures/ashared/views_rails_6/posts/show.rabl_test_v1.rabl +0 -7
  56. data/fixtures/ashared/views_rails_6/users/index.json.rabl +0 -3
  57. data/fixtures/ashared/views_rails_6/users/phone_number.json.rabl +0 -8
  58. data/fixtures/ashared/views_rails_6/users/phone_number.xml.rabl +0 -1
  59. data/fixtures/ashared/views_rails_6/users/show.json.rabl +0 -16
  60. data/fixtures/ashared/views_rails_6/users/show.rabl_test_v1.rabl +0 -3
  61. data/fixtures/padrino_test/.components +0 -7
  62. data/fixtures/padrino_test/.gitignore +0 -7
  63. data/fixtures/padrino_test/Gemfile +0 -17
  64. data/fixtures/padrino_test/Rakefile +0 -3
  65. data/fixtures/padrino_test/app/app.rb +0 -31
  66. data/fixtures/padrino_test/app/controllers/posts.rb +0 -11
  67. data/fixtures/padrino_test/app/controllers/users.rb +0 -11
  68. data/fixtures/padrino_test/app/helpers/posts_helper.rb +0 -7
  69. data/fixtures/padrino_test/app/helpers/users_helper.rb +0 -7
  70. data/fixtures/padrino_test/app/views +0 -1
  71. data/fixtures/padrino_test/config.ru +0 -9
  72. data/fixtures/padrino_test/config/apps.rb +0 -34
  73. data/fixtures/padrino_test/config/boot.rb +0 -29
  74. data/fixtures/padrino_test/config/database.rb +0 -43
  75. data/fixtures/padrino_test/db/migrate +0 -1
  76. data/fixtures/padrino_test/db/schema.rb +0 -42
  77. data/fixtures/padrino_test/models +0 -1
  78. data/fixtures/padrino_test/public/favicon.ico +0 -0
  79. data/fixtures/padrino_test/test/app/controllers/posts_controller_test.rb +0 -1
  80. data/fixtures/padrino_test/test/app/controllers/users_controller_test.rb +0 -1
  81. data/fixtures/padrino_test/test/test.rake +0 -18
  82. data/fixtures/padrino_test/test/test_config.rb +0 -18
  83. data/fixtures/rails2/.gitignore +0 -1
  84. data/fixtures/rails2/Gemfile +0 -10
  85. data/fixtures/rails2/Rakefile +0 -14
  86. data/fixtures/rails2/app/controllers/application_controller.rb +0 -10
  87. data/fixtures/rails2/app/controllers/posts_controller.rb +0 -15
  88. data/fixtures/rails2/app/controllers/users_controller.rb +0 -15
  89. data/fixtures/rails2/app/helpers/application_helper.rb +0 -2
  90. data/fixtures/rails2/app/helpers/posts_helper.rb +0 -2
  91. data/fixtures/rails2/app/helpers/users_helper.rb +0 -2
  92. data/fixtures/rails2/app/models +0 -1
  93. data/fixtures/rails2/app/views +0 -1
  94. data/fixtures/rails2/config/boot.rb +0 -129
  95. data/fixtures/rails2/config/database.yml +0 -16
  96. data/fixtures/rails2/config/environment.rb +0 -64
  97. data/fixtures/rails2/config/environments/development.rb +0 -17
  98. data/fixtures/rails2/config/environments/production.rb +0 -28
  99. data/fixtures/rails2/config/environments/test.rb +0 -28
  100. data/fixtures/rails2/config/initializers/backtrace_silencers.rb +0 -7
  101. data/fixtures/rails2/config/initializers/cookie_verification_secret.rb +0 -7
  102. data/fixtures/rails2/config/initializers/inflections.rb +0 -10
  103. data/fixtures/rails2/config/initializers/mime_types.rb +0 -5
  104. data/fixtures/rails2/config/initializers/new_rails_defaults.rb +0 -21
  105. data/fixtures/rails2/config/initializers/session_store.rb +0 -15
  106. data/fixtures/rails2/config/locales/en.yml +0 -5
  107. data/fixtures/rails2/config/preinitializer.rb +0 -20
  108. data/fixtures/rails2/config/routes.rb +0 -45
  109. data/fixtures/rails2/db/migrate +0 -1
  110. data/fixtures/rails2/db/schema.rb +0 -40
  111. data/fixtures/rails2/db/seeds.rb +0 -7
  112. data/fixtures/rails2/public/404.html +0 -30
  113. data/fixtures/rails2/public/422.html +0 -30
  114. data/fixtures/rails2/public/500.html +0 -30
  115. data/fixtures/rails2/public/favicon.ico +0 -0
  116. data/fixtures/rails2/public/images/rails.png +0 -0
  117. data/fixtures/rails2/public/index.html +0 -275
  118. data/fixtures/rails2/public/robots.txt +0 -5
  119. data/fixtures/rails2/script/about +0 -4
  120. data/fixtures/rails2/script/console +0 -3
  121. data/fixtures/rails2/script/dbconsole +0 -3
  122. data/fixtures/rails2/script/destroy +0 -3
  123. data/fixtures/rails2/script/generate +0 -3
  124. data/fixtures/rails2/script/performance/benchmarker +0 -3
  125. data/fixtures/rails2/script/performance/profiler +0 -3
  126. data/fixtures/rails2/script/plugin +0 -3
  127. data/fixtures/rails2/script/runner +0 -3
  128. data/fixtures/rails2/script/server +0 -3
  129. data/fixtures/rails2/test/functionals/posts_controller_test.rb +0 -1
  130. data/fixtures/rails2/test/functionals/users_controller_test.rb +0 -1
  131. data/fixtures/rails2/test/test_helper.rb +0 -33
  132. data/fixtures/rails3/.gitignore +0 -4
  133. data/fixtures/rails3/Gemfile +0 -37
  134. data/fixtures/rails3/Rakefile +0 -12
  135. data/fixtures/rails3/app/controllers/application_controller.rb +0 -14
  136. data/fixtures/rails3/app/controllers/posts_controller.rb +0 -11
  137. data/fixtures/rails3/app/controllers/users_controller.rb +0 -11
  138. data/fixtures/rails3/app/models +0 -1
  139. data/fixtures/rails3/app/views +0 -1
  140. data/fixtures/rails3/config.ru +0 -4
  141. data/fixtures/rails3/config/application.rb +0 -42
  142. data/fixtures/rails3/config/boot.rb +0 -6
  143. data/fixtures/rails3/config/database.yml +0 -22
  144. data/fixtures/rails3/config/environment.rb +0 -5
  145. data/fixtures/rails3/config/environments/development.rb +0 -26
  146. data/fixtures/rails3/config/environments/production.rb +0 -49
  147. data/fixtures/rails3/config/environments/test.rb +0 -35
  148. data/fixtures/rails3/config/initializers/backtrace_silencers.rb +0 -7
  149. data/fixtures/rails3/config/initializers/inflections.rb +0 -10
  150. data/fixtures/rails3/config/initializers/mime_types.rb +0 -5
  151. data/fixtures/rails3/config/initializers/secret_token.rb +0 -7
  152. data/fixtures/rails3/config/initializers/session_store.rb +0 -8
  153. data/fixtures/rails3/config/locales/en.yml +0 -5
  154. data/fixtures/rails3/config/routes.rb +0 -61
  155. data/fixtures/rails3/db/migrate +0 -1
  156. data/fixtures/rails3/db/schema.rb +0 -42
  157. data/fixtures/rails3/db/seeds.rb +0 -7
  158. data/fixtures/rails3/lib/tasks/.gitkeep +0 -0
  159. data/fixtures/rails3/public/404.html +0 -26
  160. data/fixtures/rails3/public/422.html +0 -26
  161. data/fixtures/rails3/public/500.html +0 -26
  162. data/fixtures/rails3/public/favicon.ico +0 -0
  163. data/fixtures/rails3/public/images/rails.png +0 -0
  164. data/fixtures/rails3/public/index.html +0 -239
  165. data/fixtures/rails3/public/robots.txt +0 -5
  166. data/fixtures/rails3/public/stylesheets/.gitkeep +0 -0
  167. data/fixtures/rails3/script/rails +0 -6
  168. data/fixtures/rails3/test/functional/posts_controller_test.rb +0 -1
  169. data/fixtures/rails3/test/functional/users_controller_test.rb +0 -1
  170. data/fixtures/rails3/test/test_helper.rb +0 -26
  171. data/fixtures/rails3_2/.gitignore +0 -15
  172. data/fixtures/rails3_2/Gemfile +0 -40
  173. data/fixtures/rails3_2/README.rdoc +0 -261
  174. data/fixtures/rails3_2/Rakefile +0 -12
  175. data/fixtures/rails3_2/app/assets/images/rails.png +0 -0
  176. data/fixtures/rails3_2/app/assets/javascripts/application.js +0 -15
  177. data/fixtures/rails3_2/app/assets/javascripts/posts.js.coffee +0 -3
  178. data/fixtures/rails3_2/app/assets/javascripts/users.js.coffee +0 -3
  179. data/fixtures/rails3_2/app/assets/stylesheets/application.css +0 -13
  180. data/fixtures/rails3_2/app/assets/stylesheets/posts.css.scss +0 -3
  181. data/fixtures/rails3_2/app/assets/stylesheets/users.css.scss +0 -3
  182. data/fixtures/rails3_2/app/controllers/application_controller.rb +0 -14
  183. data/fixtures/rails3_2/app/controllers/posts_controller.rb +0 -16
  184. data/fixtures/rails3_2/app/controllers/users_controller.rb +0 -11
  185. data/fixtures/rails3_2/app/helpers/application_helper.rb +0 -5
  186. data/fixtures/rails3_2/app/helpers/posts_helper.rb +0 -2
  187. data/fixtures/rails3_2/app/helpers/users_helper.rb +0 -2
  188. data/fixtures/rails3_2/app/mailers/.gitkeep +0 -0
  189. data/fixtures/rails3_2/app/models +0 -1
  190. data/fixtures/rails3_2/app/views +0 -1
  191. data/fixtures/rails3_2/config.ru +0 -4
  192. data/fixtures/rails3_2/config/application.rb +0 -59
  193. data/fixtures/rails3_2/config/boot.rb +0 -6
  194. data/fixtures/rails3_2/config/database.yml +0 -25
  195. data/fixtures/rails3_2/config/environment.rb +0 -5
  196. data/fixtures/rails3_2/config/environments/development.rb +0 -37
  197. data/fixtures/rails3_2/config/environments/production.rb +0 -67
  198. data/fixtures/rails3_2/config/environments/test.rb +0 -37
  199. data/fixtures/rails3_2/config/initializers/backtrace_silencers.rb +0 -7
  200. data/fixtures/rails3_2/config/initializers/inflections.rb +0 -15
  201. data/fixtures/rails3_2/config/initializers/mime_types.rb +0 -7
  202. data/fixtures/rails3_2/config/initializers/secret_token.rb +0 -7
  203. data/fixtures/rails3_2/config/initializers/session_store.rb +0 -8
  204. data/fixtures/rails3_2/config/initializers/wrap_parameters.rb +0 -14
  205. data/fixtures/rails3_2/config/locales/en.yml +0 -5
  206. data/fixtures/rails3_2/config/routes.rb +0 -64
  207. data/fixtures/rails3_2/db/migrate +0 -1
  208. data/fixtures/rails3_2/db/schema.rb +0 -42
  209. data/fixtures/rails3_2/db/seeds.rb +0 -7
  210. data/fixtures/rails3_2/doc/README_FOR_APP +0 -2
  211. data/fixtures/rails3_2/lib/assets/.gitkeep +0 -0
  212. data/fixtures/rails3_2/lib/tasks/.gitkeep +0 -0
  213. data/fixtures/rails3_2/log/.gitkeep +0 -0
  214. data/fixtures/rails3_2/public/404.html +0 -26
  215. data/fixtures/rails3_2/public/422.html +0 -26
  216. data/fixtures/rails3_2/public/500.html +0 -25
  217. data/fixtures/rails3_2/public/favicon.ico +0 -0
  218. data/fixtures/rails3_2/public/index.html +0 -241
  219. data/fixtures/rails3_2/public/robots.txt +0 -5
  220. data/fixtures/rails3_2/script/rails +0 -6
  221. data/fixtures/rails3_2/test/fixtures/phone_numbers.yml +0 -11
  222. data/fixtures/rails3_2/test/fixtures/posts.yml +0 -11
  223. data/fixtures/rails3_2/test/fixtures/users.yml +0 -11
  224. data/fixtures/rails3_2/test/functional/posts_controller_test.rb +0 -1
  225. data/fixtures/rails3_2/test/functional/users_controller_test.rb +0 -1
  226. data/fixtures/rails3_2/test/integration/.gitkeep +0 -0
  227. data/fixtures/rails3_2/test/performance/browsing_test.rb +0 -12
  228. data/fixtures/rails3_2/test/test_helper.rb +0 -26
  229. data/fixtures/rails3_2/test/unit/helpers/posts_helper_test.rb +0 -4
  230. data/fixtures/rails3_2/test/unit/helpers/users_helper_test.rb +0 -4
  231. data/fixtures/rails3_2/test/unit/phone_number_test.rb +0 -7
  232. data/fixtures/rails3_2/test/unit/post_test.rb +0 -7
  233. data/fixtures/rails3_2/test/unit/user_test.rb +0 -7
  234. data/fixtures/rails3_2/vendor/assets/javascripts/.gitkeep +0 -0
  235. data/fixtures/rails3_2/vendor/assets/stylesheets/.gitkeep +0 -0
  236. data/fixtures/rails3_2/vendor/plugins/.gitkeep +0 -0
  237. data/fixtures/rails4/.gitignore +0 -16
  238. data/fixtures/rails4/Gemfile +0 -53
  239. data/fixtures/rails4/README.rdoc +0 -28
  240. data/fixtures/rails4/Rakefile +0 -11
  241. data/fixtures/rails4/app/assets/javascripts/application.js +0 -16
  242. data/fixtures/rails4/app/assets/stylesheets/application.css +0 -13
  243. data/fixtures/rails4/app/controllers/application_controller.rb +0 -5
  244. data/fixtures/rails4/app/controllers/concerns/.keep +0 -0
  245. data/fixtures/rails4/app/controllers/posts_controller.rb +0 -16
  246. data/fixtures/rails4/app/controllers/users_controller.rb +0 -11
  247. data/fixtures/rails4/app/helpers/application_helper.rb +0 -5
  248. data/fixtures/rails4/app/mailers/.keep +0 -0
  249. data/fixtures/rails4/app/models +0 -1
  250. data/fixtures/rails4/app/views +0 -1
  251. data/fixtures/rails4/bin/bundle +0 -3
  252. data/fixtures/rails4/bin/rails +0 -4
  253. data/fixtures/rails4/bin/rake +0 -4
  254. data/fixtures/rails4/config.ru +0 -4
  255. data/fixtures/rails4/config/application.rb +0 -23
  256. data/fixtures/rails4/config/boot.rb +0 -4
  257. data/fixtures/rails4/config/database.yml +0 -25
  258. data/fixtures/rails4/config/environment.rb +0 -5
  259. data/fixtures/rails4/config/environments/development.rb +0 -29
  260. data/fixtures/rails4/config/environments/production.rb +0 -80
  261. data/fixtures/rails4/config/environments/test.rb +0 -39
  262. data/fixtures/rails4/config/initializers/backtrace_silencers.rb +0 -7
  263. data/fixtures/rails4/config/initializers/filter_parameter_logging.rb +0 -4
  264. data/fixtures/rails4/config/initializers/inflections.rb +0 -16
  265. data/fixtures/rails4/config/initializers/mime_types.rb +0 -7
  266. data/fixtures/rails4/config/initializers/secret_token.rb +0 -12
  267. data/fixtures/rails4/config/initializers/session_store.rb +0 -3
  268. data/fixtures/rails4/config/initializers/wrap_parameters.rb +0 -14
  269. data/fixtures/rails4/config/locales/en.yml +0 -23
  270. data/fixtures/rails4/config/routes.rb +0 -55
  271. data/fixtures/rails4/db/migrate +0 -1
  272. data/fixtures/rails4/db/schema.rb +0 -42
  273. data/fixtures/rails4/db/seeds.rb +0 -7
  274. data/fixtures/rails4/lib/assets/.keep +0 -0
  275. data/fixtures/rails4/lib/tasks/.keep +0 -0
  276. data/fixtures/rails4/log/.keep +0 -0
  277. data/fixtures/rails4/public/404.html +0 -58
  278. data/fixtures/rails4/public/422.html +0 -58
  279. data/fixtures/rails4/public/500.html +0 -57
  280. data/fixtures/rails4/public/favicon.ico +0 -0
  281. data/fixtures/rails4/public/robots.txt +0 -5
  282. data/fixtures/rails4/test/controllers/.keep +0 -0
  283. data/fixtures/rails4/test/fixtures/.keep +0 -0
  284. data/fixtures/rails4/test/functional/posts_controller_test.rb +0 -1
  285. data/fixtures/rails4/test/functional/users_controller_test.rb +0 -1
  286. data/fixtures/rails4/test/helpers/.keep +0 -0
  287. data/fixtures/rails4/test/integration/.keep +0 -0
  288. data/fixtures/rails4/test/mailers/.keep +0 -0
  289. data/fixtures/rails4/test/models/.keep +0 -0
  290. data/fixtures/rails4/test/test_helper.rb +0 -26
  291. data/fixtures/rails4/vendor/assets/javascripts/.keep +0 -0
  292. data/fixtures/rails4/vendor/assets/stylesheets/.keep +0 -0
  293. data/fixtures/rails5/.gitignore +0 -21
  294. data/fixtures/rails5/Gemfile +0 -53
  295. data/fixtures/rails5/README.md +0 -24
  296. data/fixtures/rails5/Rakefile +0 -13
  297. data/fixtures/rails5/app/assets/config/manifest.js +0 -3
  298. data/fixtures/rails5/app/assets/images/.keep +0 -0
  299. data/fixtures/rails5/app/assets/javascripts/application.js +0 -16
  300. data/fixtures/rails5/app/assets/javascripts/cable.js +0 -13
  301. data/fixtures/rails5/app/assets/javascripts/channels/.keep +0 -0
  302. data/fixtures/rails5/app/assets/stylesheets/application.css +0 -15
  303. data/fixtures/rails5/app/channels/application_cable/channel.rb +0 -4
  304. data/fixtures/rails5/app/channels/application_cable/connection.rb +0 -4
  305. data/fixtures/rails5/app/controllers/application_controller.rb +0 -3
  306. data/fixtures/rails5/app/controllers/concerns/.keep +0 -0
  307. data/fixtures/rails5/app/controllers/posts_controller.rb +0 -1
  308. data/fixtures/rails5/app/controllers/users_controller.rb +0 -1
  309. data/fixtures/rails5/app/helpers +0 -1
  310. data/fixtures/rails5/app/jobs/application_job.rb +0 -2
  311. data/fixtures/rails5/app/mailers/application_mailer.rb +0 -4
  312. data/fixtures/rails5/app/models +0 -1
  313. data/fixtures/rails5/app/views +0 -1
  314. data/fixtures/rails5/bin/bundle +0 -3
  315. data/fixtures/rails5/bin/rails +0 -9
  316. data/fixtures/rails5/bin/rake +0 -9
  317. data/fixtures/rails5/bin/setup +0 -34
  318. data/fixtures/rails5/bin/spring +0 -15
  319. data/fixtures/rails5/bin/update +0 -29
  320. data/fixtures/rails5/config.ru +0 -5
  321. data/fixtures/rails5/config/application.rb +0 -15
  322. data/fixtures/rails5/config/boot.rb +0 -3
  323. data/fixtures/rails5/config/cable.yml +0 -9
  324. data/fixtures/rails5/config/database.yml +0 -25
  325. data/fixtures/rails5/config/environment.rb +0 -5
  326. data/fixtures/rails5/config/environments/development.rb +0 -54
  327. data/fixtures/rails5/config/environments/production.rb +0 -86
  328. data/fixtures/rails5/config/environments/test.rb +0 -42
  329. data/fixtures/rails5/config/initializers/application_controller_renderer.rb +0 -6
  330. data/fixtures/rails5/config/initializers/assets.rb +0 -11
  331. data/fixtures/rails5/config/initializers/backtrace_silencers.rb +0 -7
  332. data/fixtures/rails5/config/initializers/cookies_serializer.rb +0 -5
  333. data/fixtures/rails5/config/initializers/filter_parameter_logging.rb +0 -4
  334. data/fixtures/rails5/config/initializers/inflections.rb +0 -16
  335. data/fixtures/rails5/config/initializers/mime_types.rb +0 -6
  336. data/fixtures/rails5/config/initializers/new_framework_defaults.rb +0 -24
  337. data/fixtures/rails5/config/initializers/session_store.rb +0 -3
  338. data/fixtures/rails5/config/initializers/wrap_parameters.rb +0 -14
  339. data/fixtures/rails5/config/locales/en.yml +0 -23
  340. data/fixtures/rails5/config/puma.rb +0 -47
  341. data/fixtures/rails5/config/routes.rb +0 -8
  342. data/fixtures/rails5/config/secrets.yml +0 -22
  343. data/fixtures/rails5/config/spring.rb +0 -6
  344. data/fixtures/rails5/db/migrate +0 -1
  345. data/fixtures/rails5/db/schema.rb +0 -41
  346. data/fixtures/rails5/db/seeds.rb +0 -7
  347. data/fixtures/rails5/lib/assets/.keep +0 -0
  348. data/fixtures/rails5/lib/tasks/.keep +0 -0
  349. data/fixtures/rails5/log/.keep +0 -0
  350. data/fixtures/rails5/public/404.html +0 -67
  351. data/fixtures/rails5/public/422.html +0 -67
  352. data/fixtures/rails5/public/500.html +0 -66
  353. data/fixtures/rails5/public/apple-touch-icon-precomposed.png +0 -0
  354. data/fixtures/rails5/public/apple-touch-icon.png +0 -0
  355. data/fixtures/rails5/public/favicon.ico +0 -0
  356. data/fixtures/rails5/public/robots.txt +0 -5
  357. data/fixtures/rails5/test/controllers/.keep +0 -0
  358. data/fixtures/rails5/test/fixtures/.keep +0 -0
  359. data/fixtures/rails5/test/fixtures/files/.keep +0 -0
  360. data/fixtures/rails5/test/functional/posts_controller_test.rb +0 -1
  361. data/fixtures/rails5/test/functional/users_controller_test.rb +0 -1
  362. data/fixtures/rails5/test/helpers/.keep +0 -0
  363. data/fixtures/rails5/test/integration/.keep +0 -0
  364. data/fixtures/rails5/test/mailers/.keep +0 -0
  365. data/fixtures/rails5/test/models/.keep +0 -0
  366. data/fixtures/rails5/test/test_helper.rb +0 -26
  367. data/fixtures/rails5/tmp/.keep +0 -0
  368. data/fixtures/rails5/vendor/assets/javascripts/.keep +0 -0
  369. data/fixtures/rails5/vendor/assets/stylesheets/.keep +0 -0
  370. data/fixtures/rails5_api/.gitignore +0 -21
  371. data/fixtures/rails5_api/Gemfile +0 -46
  372. data/fixtures/rails5_api/README.md +0 -24
  373. data/fixtures/rails5_api/Rakefile +0 -13
  374. data/fixtures/rails5_api/app/channels/application_cable/channel.rb +0 -4
  375. data/fixtures/rails5_api/app/channels/application_cable/connection.rb +0 -4
  376. data/fixtures/rails5_api/app/controllers/application_controller.rb +0 -2
  377. data/fixtures/rails5_api/app/controllers/concerns/.keep +0 -0
  378. data/fixtures/rails5_api/app/controllers/posts_controller.rb +0 -1
  379. data/fixtures/rails5_api/app/controllers/users_controller.rb +0 -1
  380. data/fixtures/rails5_api/app/helpers +0 -1
  381. data/fixtures/rails5_api/app/jobs/application_job.rb +0 -2
  382. data/fixtures/rails5_api/app/mailers/application_mailer.rb +0 -4
  383. data/fixtures/rails5_api/app/models +0 -1
  384. data/fixtures/rails5_api/app/views +0 -1
  385. data/fixtures/rails5_api/bin/bundle +0 -3
  386. data/fixtures/rails5_api/bin/rails +0 -9
  387. data/fixtures/rails5_api/bin/rake +0 -9
  388. data/fixtures/rails5_api/bin/setup +0 -34
  389. data/fixtures/rails5_api/bin/spring +0 -17
  390. data/fixtures/rails5_api/bin/update +0 -29
  391. data/fixtures/rails5_api/config.ru +0 -5
  392. data/fixtures/rails5_api/config/application.rb +0 -30
  393. data/fixtures/rails5_api/config/boot.rb +0 -3
  394. data/fixtures/rails5_api/config/cable.yml +0 -9
  395. data/fixtures/rails5_api/config/database.yml +0 -25
  396. data/fixtures/rails5_api/config/environment.rb +0 -5
  397. data/fixtures/rails5_api/config/environments/development.rb +0 -47
  398. data/fixtures/rails5_api/config/environments/production.rb +0 -78
  399. data/fixtures/rails5_api/config/environments/test.rb +0 -42
  400. data/fixtures/rails5_api/config/initializers/application_controller_renderer.rb +0 -6
  401. data/fixtures/rails5_api/config/initializers/backtrace_silencers.rb +0 -7
  402. data/fixtures/rails5_api/config/initializers/cors.rb +0 -16
  403. data/fixtures/rails5_api/config/initializers/filter_parameter_logging.rb +0 -4
  404. data/fixtures/rails5_api/config/initializers/inflections.rb +0 -16
  405. data/fixtures/rails5_api/config/initializers/mime_types.rb +0 -5
  406. data/fixtures/rails5_api/config/initializers/new_framework_defaults.rb +0 -18
  407. data/fixtures/rails5_api/config/initializers/wrap_parameters.rb +0 -14
  408. data/fixtures/rails5_api/config/locales/en.yml +0 -23
  409. data/fixtures/rails5_api/config/puma.rb +0 -47
  410. data/fixtures/rails5_api/config/routes.rb +0 -8
  411. data/fixtures/rails5_api/config/secrets.yml +0 -22
  412. data/fixtures/rails5_api/config/spring.rb +0 -6
  413. data/fixtures/rails5_api/db/migrate +0 -1
  414. data/fixtures/rails5_api/db/schema.rb +0 -41
  415. data/fixtures/rails5_api/db/seeds.rb +0 -7
  416. data/fixtures/rails5_api/lib/tasks/.keep +0 -0
  417. data/fixtures/rails5_api/log/.keep +0 -0
  418. data/fixtures/rails5_api/public/robots.txt +0 -5
  419. data/fixtures/rails5_api/test/controllers/.keep +0 -0
  420. data/fixtures/rails5_api/test/fixtures/.keep +0 -0
  421. data/fixtures/rails5_api/test/fixtures/files/.keep +0 -0
  422. data/fixtures/rails5_api/test/functional/posts_controller_test.rb +0 -1
  423. data/fixtures/rails5_api/test/functional/users_controller_test.rb +0 -1
  424. data/fixtures/rails5_api/test/integration/.keep +0 -0
  425. data/fixtures/rails5_api/test/mailers/.keep +0 -0
  426. data/fixtures/rails5_api/test/models/.keep +0 -0
  427. data/fixtures/rails5_api/test/test_helper.rb +0 -39
  428. data/fixtures/rails5_api/tmp/.keep +0 -0
  429. data/fixtures/rails6/.gitignore +0 -35
  430. data/fixtures/rails6/Gemfile +0 -58
  431. data/fixtures/rails6/README.md +0 -24
  432. data/fixtures/rails6/Rakefile +0 -14
  433. data/fixtures/rails6/app/assets/config/manifest.js +0 -2
  434. data/fixtures/rails6/app/assets/images/.keep +0 -0
  435. data/fixtures/rails6/app/assets/stylesheets/application.css +0 -15
  436. data/fixtures/rails6/app/channels/application_cable/channel.rb +0 -4
  437. data/fixtures/rails6/app/channels/application_cable/connection.rb +0 -4
  438. data/fixtures/rails6/app/controllers/application_controller.rb +0 -2
  439. data/fixtures/rails6/app/controllers/concerns/.keep +0 -0
  440. data/fixtures/rails6/app/controllers/posts_controller.rb +0 -17
  441. data/fixtures/rails6/app/controllers/users_controller.rb +0 -11
  442. data/fixtures/rails6/app/helpers +0 -1
  443. data/fixtures/rails6/app/javascript/channels/consumer.js +0 -6
  444. data/fixtures/rails6/app/javascript/channels/index.js +0 -5
  445. data/fixtures/rails6/app/javascript/packs/application.js +0 -17
  446. data/fixtures/rails6/app/jobs/application_job.rb +0 -7
  447. data/fixtures/rails6/app/mailers/application_mailer.rb +0 -4
  448. data/fixtures/rails6/app/models +0 -1
  449. data/fixtures/rails6/app/views +0 -1
  450. data/fixtures/rails6/babel.config.js +0 -72
  451. data/fixtures/rails6/bin/bundle +0 -105
  452. data/fixtures/rails6/bin/rails +0 -9
  453. data/fixtures/rails6/bin/rake +0 -9
  454. data/fixtures/rails6/bin/setup +0 -36
  455. data/fixtures/rails6/bin/spring +0 -17
  456. data/fixtures/rails6/bin/webpack +0 -19
  457. data/fixtures/rails6/bin/webpack-dev-server +0 -19
  458. data/fixtures/rails6/bin/yarn +0 -11
  459. data/fixtures/rails6/config.ru +0 -5
  460. data/fixtures/rails6/config/application.rb +0 -19
  461. data/fixtures/rails6/config/boot.rb +0 -4
  462. data/fixtures/rails6/config/cable.yml +0 -10
  463. data/fixtures/rails6/config/credentials.yml.enc +0 -1
  464. data/fixtures/rails6/config/database.yml +0 -25
  465. data/fixtures/rails6/config/environment.rb +0 -5
  466. data/fixtures/rails6/config/environments/development.rb +0 -62
  467. data/fixtures/rails6/config/environments/production.rb +0 -112
  468. data/fixtures/rails6/config/environments/test.rb +0 -48
  469. data/fixtures/rails6/config/initializers/application_controller_renderer.rb +0 -8
  470. data/fixtures/rails6/config/initializers/assets.rb +0 -14
  471. data/fixtures/rails6/config/initializers/backtrace_silencers.rb +0 -7
  472. data/fixtures/rails6/config/initializers/content_security_policy.rb +0 -27
  473. data/fixtures/rails6/config/initializers/cookies_serializer.rb +0 -5
  474. data/fixtures/rails6/config/initializers/filter_parameter_logging.rb +0 -4
  475. data/fixtures/rails6/config/initializers/inflections.rb +0 -16
  476. data/fixtures/rails6/config/initializers/mime_types.rb +0 -6
  477. data/fixtures/rails6/config/initializers/wrap_parameters.rb +0 -14
  478. data/fixtures/rails6/config/locales/en.yml +0 -33
  479. data/fixtures/rails6/config/puma.rb +0 -35
  480. data/fixtures/rails6/config/routes.rb +0 -8
  481. data/fixtures/rails6/config/spring.rb +0 -6
  482. data/fixtures/rails6/config/storage.yml +0 -34
  483. data/fixtures/rails6/config/webpack/development.js +0 -5
  484. data/fixtures/rails6/config/webpack/environment.js +0 -3
  485. data/fixtures/rails6/config/webpack/production.js +0 -5
  486. data/fixtures/rails6/config/webpack/test.js +0 -5
  487. data/fixtures/rails6/config/webpacker.yml +0 -95
  488. data/fixtures/rails6/db/migrate/20111002092016_create_users.rb +0 -11
  489. data/fixtures/rails6/db/migrate/20111002092019_create_posts.rb +0 -10
  490. data/fixtures/rails6/db/migrate/20111002092024_create_phone_numbers.rb +0 -12
  491. data/fixtures/rails6/db/schema.rb +0 -41
  492. data/fixtures/rails6/db/seeds.rb +0 -7
  493. data/fixtures/rails6/lib/assets/.keep +0 -0
  494. data/fixtures/rails6/lib/tasks/.keep +0 -0
  495. data/fixtures/rails6/log/.keep +0 -0
  496. data/fixtures/rails6/package.json +0 -15
  497. data/fixtures/rails6/postcss.config.js +0 -12
  498. data/fixtures/rails6/public/404.html +0 -67
  499. data/fixtures/rails6/public/422.html +0 -67
  500. data/fixtures/rails6/public/500.html +0 -66
  501. data/fixtures/rails6/public/apple-touch-icon-precomposed.png +0 -0
  502. data/fixtures/rails6/public/apple-touch-icon.png +0 -0
  503. data/fixtures/rails6/public/favicon.ico +0 -0
  504. data/fixtures/rails6/public/robots.txt +0 -1
  505. data/fixtures/rails6/storage/.keep +0 -0
  506. data/fixtures/rails6/test/application_system_test_case.rb +0 -5
  507. data/fixtures/rails6/test/channels/application_cable/connection_test.rb +0 -11
  508. data/fixtures/rails6/test/controllers/.keep +0 -0
  509. data/fixtures/rails6/test/fixtures/.keep +0 -0
  510. data/fixtures/rails6/test/fixtures/files/.keep +0 -0
  511. data/fixtures/rails6/test/functional/posts_controller_test.rb +0 -1
  512. data/fixtures/rails6/test/functional/users_controller_test.rb +0 -1
  513. data/fixtures/rails6/test/helpers/.keep +0 -0
  514. data/fixtures/rails6/test/integration/.keep +0 -0
  515. data/fixtures/rails6/test/mailers/.keep +0 -0
  516. data/fixtures/rails6/test/models/.keep +0 -0
  517. data/fixtures/rails6/test/system/.keep +0 -0
  518. data/fixtures/rails6/test/test_helper.rb +0 -27
  519. data/fixtures/rails6/tmp/.keep +0 -0
  520. data/fixtures/rails6/vendor/.keep +0 -0
  521. data/fixtures/rails6/yarn.lock +0 -7201
  522. data/fixtures/sinatra_test/Gemfile +0 -13
  523. data/fixtures/sinatra_test/Rakefile +0 -6
  524. data/fixtures/sinatra_test/app.rb +0 -55
  525. data/fixtures/sinatra_test/config.ru +0 -7
  526. data/fixtures/sinatra_test/db/migrate +0 -1
  527. data/fixtures/sinatra_test/models +0 -1
  528. data/fixtures/sinatra_test/test/functional/posts_controller_test.rb +0 -1
  529. data/fixtures/sinatra_test/test/functional/users_controller_test.rb +0 -1
  530. data/fixtures/sinatra_test/test/test_helper.rb +0 -19
  531. data/fixtures/sinatra_test/views +0 -1
  532. data/rabl.gemspec +0 -34
  533. data/test.watchr +0 -47
  534. data/test/bson_engine_test.rb +0 -310
  535. data/test/builder_test.rb +0 -388
  536. data/test/configuration_test.rb +0 -91
  537. data/test/engine_test.rb +0 -841
  538. data/test/helpers_test.rb +0 -146
  539. data/test/integration/posts_controller_test.rb +0 -108
  540. data/test/integration/rails3_2/posts_controller_test.rb +0 -263
  541. data/test/integration/rails3_2/users_controller_test.rb +0 -87
  542. data/test/integration/rails4/posts_controller_test.rb +0 -248
  543. data/test/integration/rails4/users_controller_test.rb +0 -87
  544. data/test/integration/rails5/posts_controller_test.rb +0 -251
  545. data/test/integration/rails5/users_controller_test.rb +0 -87
  546. data/test/integration/rails6/posts_controller_test.rb +0 -185
  547. data/test/integration/rails6/users_controller_test.rb +0 -87
  548. data/test/integration/test_init.rb +0 -36
  549. data/test/integration/users_controller_test.rb +0 -87
  550. data/test/models/ormless.rb +0 -3
  551. data/test/models/user.rb +0 -35
  552. data/test/msgpack_engine_test.rb +0 -312
  553. data/test/multi_builder_test.rb +0 -69
  554. data/test/partials_test.rb +0 -205
  555. data/test/plist_engine_test.rb +0 -308
  556. data/test/renderer_test.rb +0 -390
  557. data/test/silence.rb +0 -23
  558. data/test/template_test.rb +0 -63
  559. data/test/teststrap.rb +0 -42
  560. data/test/xml_test.rb +0 -297
@@ -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 { |t| t.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 reversed node numbers") do
52
- json_output.map { |u| u["user"]["node_numbers"].map { |n| n["reversed"] } }
53
- end.equals { @users.map { |u| u.phone_numbers.map(&:formatted).map(&:reverse) } }
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
@@ -1,248 +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
- require 'rexml/document'
11
-
12
- context "PostsController" do
13
- helper(:json_output) { JSON.parse(last_response.body) }
14
-
15
- setup do
16
- create_users!
17
- Post.delete_all
18
- @post1 = Post.create(:title => "Foo", :body => "Bar", :user_id => @user1.id)
19
- @post2 = Post.create(:title => "Baz", :body => "Bah", :user_id => @user2.id)
20
- @post3 = Post.create(:title => "Kaz", :body => "<script>alert('xss & test');</script>", :user_id => @user3.id)
21
- @posts = [@post1, @post2, @post3]
22
- end
23
-
24
- context "for index action" do
25
- setup do
26
- get "/posts", format: :json
27
- end
28
-
29
- # Attributes (regular)
30
- asserts("contains post titles") do
31
- json_output['articles'].map { |o| o["article"]["title"] }
32
- end.equals { @posts.map(&:title) }
33
-
34
- asserts("contains post bodies") do
35
- json_output['articles'].map { |o| o["article"]["body"] }
36
- end.equals { @posts.map(&:body) }
37
-
38
- # Attributes (custom name)
39
- asserts("contains post posted_at") do
40
- json_output['articles'].map { |o| o["article"]["posted_at"] }
41
- end.equals { @posts.map(&:created_at).map{ |t| t.iso8601(3) } }
42
-
43
- # Child
44
- asserts("contains post user child username") do
45
- json_output['articles'].map { |o| o["article"]["user"]["username"] }
46
- end.equals { @posts.map(&:user).map(&:username) }
47
-
48
- asserts("contains post user child role") do
49
- json_output['articles'].map { |o| o["article"]["user"]["role"] }
50
- end.equals { ["normal", "normal", "admin"] }
51
-
52
- # Child Numbers of the Child User
53
- asserts("contains post user child numbers") do
54
- json_output['articles'].map { |o| o["article"]["user"]["pnumbers"][0]["pnumber"]["formatted"] }
55
- end.equals { @posts.map(&:user).map(&:phone_numbers).map(&:first).map(&:formatted) }
56
-
57
- # Glue (username to article)
58
- asserts("contains glued usernames") do
59
- json_output['articles'].map { |o| o["article"]["author_name"] }
60
- end.equals { @posts.map(&:user).map(&:username) }
61
-
62
- # Conditional Child (admin)
63
- asserts("contains admin child only for admins") do
64
- json_output['articles'].map { |o| o["article"]["admin"]["username"] if o["article"].has_key?("admin") }.compact
65
- end.equals { [@user3.username] }
66
-
67
- # Conditional Node (created_by_admin)
68
- asserts("contains created_by_admin node for admins") do
69
- json_output['articles'].last['article']['created_by_admin']
70
- end.equals { true }
71
-
72
- denies("contains no created_by_admin node for non-admins") do
73
- json_output['articles'].first['article']
74
- end.includes(:created_by_admin)
75
- end # index action, json
76
-
77
- context "escaping output in index action" do
78
- context "for first post" do
79
- setup do
80
- Rabl.configuration.escape_all_output = true
81
- get "/posts/#{@post1.id}", format: :json
82
- json_output['post']
83
- end
84
-
85
- # Attributes (regular)
86
- asserts("contains post title") { topic['title'] }.equals { @post1.title }
87
- asserts("contains post body") { topic['body'] }.equals { @post1.body }
88
- end
89
-
90
- context "for third post with script tags" do
91
- setup do
92
- Rabl.configuration.escape_all_output = true
93
- get "/posts/#{@post3.id}", format: :json
94
- json_output['post']
95
- end
96
-
97
- # Attributes (regular)
98
- asserts("contains post title") { topic['title'] }.equals { @post3.title }
99
- asserts("contains escaped post body") { topic['body'] }.equals { ERB::Util.h(@post3.body) }
100
- end
101
- end # escaping output
102
-
103
- context "for show action" do
104
- setup do
105
- get "/posts/#{@post1.id}", format: :json
106
- json_output['post']
107
- end
108
-
109
- # Attributes (regular)
110
- asserts("contains post title") { topic['title'] }.equals { @post1.title }
111
- asserts("contains post body") { topic['body'] }.equals { @post1.body }
112
-
113
- # Attributes (custom name)
114
- asserts("contains post posted_at") { topic['posted_at'] }.equals { @post1.created_at.iso8601(3) }
115
-
116
- # Child
117
- asserts("contains post user child username") { topic["user"]["username"] }.equals { @post1.user.username }
118
- asserts("contains post user child role") { topic["user"]["role"] }.equals { "normal" }
119
-
120
- # Child Numbers of the Child User
121
- asserts("contains post user child numbers") do
122
- topic["user"]["pnumbers"][0]["pnumber"]["formatted"]
123
- end.equals { @post1.user.phone_numbers[0].formatted }
124
-
125
- # Glue (username to article)
126
- asserts("contains glued username") { topic["author_name"] }.equals { @post1.user.username }
127
-
128
- # Non-ORM Date Node Partial
129
- context "for date node" do
130
- setup { json_output['post']['created_date'] }
131
- asserts("contains date partial with day") { topic['day'] }.equals { @post1.created_at.day }
132
- asserts("contains date partial with hour") { topic['hour'] }.equals { @post1.created_at.hour }
133
- asserts("contains date partial with full") { topic['full'] }.equals { @post1.created_at.iso8601 }
134
- end # date node
135
-
136
- asserts("contains helper action") { topic["foo"] }.equals { "BAR!" }
137
- denies("contains helper action") { topic["created_at_in_words"] }.nil
138
-
139
- asserts("contains post attributes via node") { topic["post"] }.equals { [@post1.title, @post1.body] }
140
- end # show action, json
141
-
142
- context "renderer" do
143
- setup do
144
- mock(ActionController::Base).perform_caching.any_number_of_times { true }
145
- get "/posts/#{@post1.id}/renderer"
146
- json_output['post']
147
- end
148
-
149
- # Attributes (regular)
150
- asserts("contains post title") { topic['title'] }.equals { @post1.title }
151
- asserts("contains post body") { topic['body'] }.equals { @post1.body }
152
-
153
- # Attributes (partial)
154
- asserts("contains post partial title") { topic['partial']['title'] }.equals { @post1.title }
155
- asserts("contains post partial body") { topic['partial']['body'] }.equals { @post1.body }
156
- end # renderer action, json
157
-
158
- context "for index action rendering JSON within HTML" do
159
- setup do
160
- get "/posts", format: :html
161
- end
162
-
163
- asserts(:body).includes { "<html>" }
164
- end # index action, html
165
-
166
- context "for show action rendering JSON within HTML" do
167
- setup do
168
- get "/posts/#{@post1.id}", format: :html
169
- end
170
-
171
- asserts(:body).includes { "<html>" }
172
- end # show action, html
173
-
174
- context "mime_type" do
175
- setup do
176
- get "/posts/#{@post1.id}", format: :rabl_test_v1
177
- end
178
-
179
- asserts("contains post title") { json_output['post']['title_v1'] }.equals { @post1.title }
180
- asserts("contains username") { json_output['post']['user']['username_v1'] }.equals { @post1.user.username }
181
- end
182
-
183
- context "caching" do
184
- helper(:cache_hit) do |key|
185
- Rails.cache.read(ActiveSupport::Cache.expand_cache_key(key, :rabl))
186
- end
187
-
188
- setup do
189
- mock(ActionController::Base).perform_caching.any_number_of_times { true }
190
- Rails.cache.clear
191
- end
192
-
193
- context "for index action with caching in json" do
194
- setup do
195
- get "/posts", format: :json
196
- end
197
-
198
- asserts("contains post titles") do
199
- json_output['articles'].map { |o| o['article']['title'] }
200
- end.equals { @posts.map(&:title) }
201
-
202
- asserts(:body).equals { cache_hit ['kittens!', @posts, nil, 'json', 'e83f65eee5ffb454c418a59105f222c4'] }
203
-
204
- asserts("contains cache hits per object (posts by title)") do
205
- json_output['articles'].map { |o| o['article']['title'] }
206
- end.equals { @posts.map { |p| cache_hit([p, nil, 'hash', 'e373525f49a3b3b044af05255e84839d'])[:title] } }
207
- end # index action, caching, json
208
-
209
- context "for index action with caching in xml" do
210
- setup do
211
- get "/posts", format: :xml
212
- end
213
-
214
- asserts("contains post titles") do
215
- doc = REXML::Document.new topic.body
216
- doc.elements.inject('articles/article/title', []) {|arr, ele| arr << ele.text}
217
- end.equals { @posts.map(&:title) }
218
-
219
- asserts(:body).equals { cache_hit ['kittens!', @posts, nil, 'xml', 'e83f65eee5ffb454c418a59105f222c4'] }
220
- end # index action, caching, xml
221
-
222
- context "for show action with caching" do
223
- setup do
224
- get "/posts/#{@post1.id}", format: :json
225
- end
226
-
227
- asserts("contains post title") { json_output['post']['title'] }.equals { @post1.title }
228
-
229
- asserts(:body).equals { cache_hit [@post1, nil, 'json', 'e373525f49a3b3b044af05255e84839d'] }
230
- end # show action, caching, json
231
-
232
- context "cache_all_output" do
233
- helper(:cache_hit) do |key|
234
- Rails.cache.read(ActiveSupport::Cache.expand_cache_key([key, 'article', 'json'], :rabl))
235
- end
236
-
237
- setup do
238
- Rabl.configuration.cache_all_output = true
239
- get "/posts", format: :json
240
- end
241
-
242
- asserts("contains cache hits per object (posts by title)") do
243
- json_output['articles'].map { |o| o['article']['title'] }
244
- end.equals { @posts.map{ |p| cache_hit(p)['article'][:title] } }
245
- end # index action, cache_all_output
246
- end
247
-
248
- 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", format: :json
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 { |t| t.iso8601(3) } }
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 reversed node numbers") do
52
- json_output.map { |u| u["user"]["node_numbers"].map { |n| n["reversed"] } }
53
- end.equals { @users.map { |u| u.phone_numbers.map(&:formatted).map(&:reverse) } }
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}", format: :json
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(3) }
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
@@ -1,251 +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
- require 'rexml/document'
11
-
12
- context "PostsController" do
13
- helper(:json_output) { JSON.parse(last_response.body) }
14
-
15
- setup do
16
- create_users!
17
- Post.delete_all
18
- @post1 = Post.create(:title => "Foo", :body => "Bar", :user_id => @user1.id)
19
- @post2 = Post.create(:title => "Baz", :body => "Bah", :user_id => @user2.id)
20
- @post3 = Post.create(:title => "Kaz", :body => "<script>alert('xss & test');</script>", :user_id => @user3.id)
21
- @posts = [@post1, @post2, @post3]
22
- end
23
-
24
- context "for index action" do
25
- setup do
26
- get "/posts", format: :json
27
- end
28
-
29
- # Attributes (regular)
30
- asserts("contains post titles") do
31
- json_output['articles'].map { |o| o["article"]["title"] }
32
- end.equals { @posts.map(&:title) }
33
-
34
- asserts("contains post bodies") do
35
- json_output['articles'].map { |o| o["article"]["body"] }
36
- end.equals { @posts.map(&:body) }
37
-
38
- # Attributes (custom name)
39
- asserts("contains post posted_at") do
40
- json_output['articles'].map { |o| o["article"]["posted_at"] }
41
- end.equals { @posts.map(&:created_at).map{ |t| t.strftime("%Y-%m-%d %H:%M:%S %Z") } }
42
-
43
- # Child
44
- asserts("contains post user child username") do
45
- json_output['articles'].map { |o| o["article"]["user"]["username"] }
46
- end.equals { @posts.map(&:user).map(&:username) }
47
-
48
- asserts("contains post user child role") do
49
- json_output['articles'].map { |o| o["article"]["user"]["role"] }
50
- end.equals { ["normal", "normal", "admin"] }
51
-
52
- # Child Numbers of the Child User
53
- asserts("contains post user child numbers") do
54
- json_output['articles'].map { |o| o["article"]["user"]["pnumbers"][0]["pnumber"]["formatted"] }
55
- end.equals { @posts.map(&:user).map(&:phone_numbers).map(&:first).map(&:formatted) }
56
-
57
- # Glue (username to article)
58
- asserts("contains glued usernames") do
59
- json_output['articles'].map { |o| o["article"]["author_name"] }
60
- end.equals { @posts.map(&:user).map(&:username) }
61
-
62
- # Conditional Child (admin)
63
- asserts("contains admin child only for admins") do
64
- json_output['articles'].map { |o| o["article"]["admin"]["username"] if o["article"].has_key?("admin") }.compact
65
- end.equals { [@user3.username] }
66
-
67
- # Conditional Node (created_by_admin)
68
- asserts("contains created_by_admin node for admins") do
69
- json_output['articles'].last['article']['created_by_admin']
70
- end.equals { true }
71
-
72
- denies("contains no created_by_admin node for non-admins") do
73
- json_output['articles'].first['article']
74
- end.includes(:created_by_admin)
75
- end # index action, json
76
-
77
- context "escaping output in index action" do
78
- context "for first post" do
79
- setup do
80
- Rabl.configuration.escape_all_output = true
81
- get "/posts/#{@post1.id}", format: :json
82
- json_output['post']
83
- end
84
-
85
- # Attributes (regular)
86
- asserts("contains post title") { topic['title'] }.equals { @post1.title }
87
- asserts("contains post body") { topic['body'] }.equals { @post1.body }
88
- end
89
-
90
- context "for third post with script tags" do
91
- setup do
92
- Rabl.configuration.escape_all_output = true
93
- get "/posts/#{@post3.id}", format: :json
94
- json_output['post']
95
- end
96
-
97
- # Attributes (regular)
98
- asserts("contains post title") { topic['title'] }.equals { @post3.title }
99
- asserts("contains escaped post body") { topic['body'] }.equals { ERB::Util.h(@post3.body) }
100
- end
101
- end # escaping output
102
-
103
- context "for show action" do
104
- setup do
105
- get "/posts/#{@post1.id}", format: :json
106
- json_output['post']
107
- end
108
-
109
- # Attributes (regular)
110
- asserts("contains post title") { topic['title'] }.equals { @post1.title }
111
- asserts("contains post body") { topic['body'] }.equals { @post1.body }
112
-
113
- # Attributes (custom name)
114
- asserts("contains post posted_at") { topic['posted_at'] }.equals { @post1.created_at.strftime("%Y-%m-%d %H:%M:%S %Z") }
115
-
116
- # Child
117
- asserts("contains post user child username") { topic["user"]["username"] }.equals { @post1.user.username }
118
- asserts("contains post user child role") { topic["user"]["role"] }.equals { "normal" }
119
-
120
- # Child Numbers of the Child User
121
- asserts("contains post user child numbers") do
122
- topic["user"]["pnumbers"][0]["pnumber"]["formatted"]
123
- end.equals { @post1.user.phone_numbers[0].formatted }
124
-
125
- # Glue (username to article)
126
- asserts("contains glued username") { topic["author_name"] }.equals { @post1.user.username }
127
-
128
- # Non-ORM Date Node Partial
129
- context "for date node" do
130
- setup { json_output['post']['created_date'] }
131
- asserts("contains date partial with day") { topic['day'] }.equals { @post1.created_at.day }
132
- asserts("contains date partial with hour") { topic['hour'] }.equals { @post1.created_at.hour }
133
- asserts("contains date partial with full") { topic['full'] }.equals { @post1.created_at.iso8601 }
134
- end # date node
135
-
136
- asserts("contains helper action") { topic["foo"] }.equals { "BAR!" }
137
- denies("contains helper action") { topic["created_at_in_words"] }.nil
138
-
139
- asserts("contains post attributes via node") { topic["post"] }.equals { [@post1.title, @post1.body] }
140
- end # show action, json
141
-
142
- context "renderer" do
143
- setup do
144
- mock(ActionController::Base).perform_caching.any_number_of_times { true }
145
- get "/posts/#{@post1.id}/renderer"
146
- json_output['post']
147
- end
148
-
149
- # Attributes (regular)
150
- asserts("contains post title") { topic['title'] }.equals { @post1.title }
151
- asserts("contains post body") { topic['body'] }.equals { @post1.body }
152
-
153
- # Attributes (partial)
154
- asserts("contains post partial title") { topic['partial']['title'] }.equals { @post1.title }
155
- asserts("contains post partial body") { topic['partial']['body'] }.equals { @post1.body }
156
- end # renderer action, json
157
-
158
- # HTML isn't supported in API mode
159
- unless Rails.application.config.api_only
160
- context "for index action rendering JSON within HTML" do
161
- setup do
162
- get "/posts", format: :html
163
- end
164
-
165
- asserts(:body).includes { "<html>" }
166
- end # index action, html
167
-
168
- context "for show action rendering JSON within HTML" do
169
- setup do
170
- get "/posts/#{@post1.id}", format: :html
171
- end
172
-
173
- asserts(:body).includes { "<html>" }
174
- end # show action, html
175
- end
176
-
177
- context "mime_type" do
178
- setup do
179
- get "/posts/#{@post1.id}", format: :rabl_test_v1
180
- end
181
-
182
- asserts("contains post title") { json_output['post']['title_v1'] }.equals { @post1.title }
183
- asserts("contains username") { json_output['post']['user']['username_v1'] }.equals { @post1.user.username }
184
- end
185
-
186
- # context "caching" do
187
- # helper(:cache_hit) do |key|
188
- # Rails.cache.read(ActiveSupport::Cache.expand_cache_key(key, :rabl))
189
- # end
190
- #
191
- # setup do
192
- # mock(ActionController::Base).perform_caching.any_number_of_times { true }
193
- # Rails.cache.clear
194
- # end
195
- #
196
- # context "for index action with caching in json" do
197
- # setup do
198
- # get "/posts", format: :json
199
- # end
200
- #
201
- # asserts("contains post titles") do
202
- # json_output['articles'].map { |o| o['article']['title'] }
203
- # end.equals { @posts.map(&:title) }
204
- #
205
- # asserts(:body).equals { cache_hit ['kittens!', @posts, nil, 'json', 'e83f65eee5ffb454c418a59105f222c4'] }
206
- #
207
- # asserts("contains cache hits per object (posts by title)") do
208
- # json_output['articles'].map { |o| o['article']['title'] }
209
- # end.equals { @posts.map { |p| cache_hit([p, nil, 'hash', 'e373525f49a3b3b044af05255e84839d'])[:title] } }
210
- # end # index action, caching, json
211
- #
212
- # context "for index action with caching in xml" do
213
- # setup do
214
- # get "/posts", format: :xml
215
- # end
216
- #
217
- # asserts("contains post titles") do
218
- # doc = REXML::Document.new topic.body
219
- # doc.elements.inject('articles/article/title', []) {|arr, ele| arr << ele.text}
220
- # end.equals { @posts.map(&:title) }
221
- #
222
- # asserts(:body).equals { cache_hit ['kittens!', @posts, nil, 'xml', 'e83f65eee5ffb454c418a59105f222c4'] }
223
- # end # index action, caching, xml
224
- #
225
- # context "for show action with caching" do
226
- # setup do
227
- # get "/posts/#{@post1.id}", format: :json
228
- # end
229
- #
230
- # asserts("contains post title") { json_output['post']['title'] }.equals { @post1.title }
231
- #
232
- # asserts(:body).equals { cache_hit [@post1, nil, 'json', 'e373525f49a3b3b044af05255e84839d'] }
233
- # end # show action, caching, json
234
- #
235
- # context "cache_all_output" do
236
- # helper(:cache_hit) do |key|
237
- # Rails.cache.read(ActiveSupport::Cache.expand_cache_key([key, 'article', 'json'], :rabl))
238
- # end
239
- #
240
- # setup do
241
- # Rabl.configuration.cache_all_output = true
242
- # get "/posts", format: :json
243
- # end
244
- #
245
- # asserts("contains cache hits per object (posts by title)") do
246
- # json_output['articles'].map { |o| o['article']['title'] }
247
- # end.equals { @posts.map{ |p| cache_hit(p)['article'][:title] } }
248
- # end # index action, cache_all_output
249
- # end
250
-
251
- end