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
data/test/engine_test.rb DELETED
@@ -1,841 +0,0 @@
1
- require 'json'
2
- require File.expand_path('../teststrap', __FILE__)
3
- require 'rabl/template'
4
- require File.expand_path('../models/ormless', __FILE__)
5
-
6
- context "Rabl::Engine" do
7
- helper(:rabl) { |t| RablTemplate.new { t } }
8
- # context_scope 'users', [@user]
9
- helper(:context_scope) { |name, value|
10
- scope = Object.new
11
- stub(scope).controller { stub(Object).controller_name { name } }
12
- scope.instance_variable_set :"@#{name}", value
13
- scope
14
- }
15
-
16
- context "#initialize" do
17
- setup do
18
- Rabl::Engine.new("...source...", { :format => 'xml', :root => true, :view_path => '/path/to/views' })
19
- end
20
-
21
- asserts_topic.assigns :_source
22
- asserts_topic.assigns :_options
23
- asserts_topic.assigns :_view_path
24
- end
25
-
26
- context "#apply" do
27
- denies("that it raises exception when given frozen locals").raises(RuntimeError) do
28
- Rabl::Engine.new("").apply(Object.new, {}.freeze)
29
- end
30
- end
31
-
32
- context "#request_format" do
33
- context "is json by default" do
34
- setup do
35
- template = RablTemplate.new("code") { 'node(:foo) { "bar" }' }
36
- template.render(Object.new)
37
- end
38
-
39
- asserts_topic.equivalent_to('{"foo":"bar"}')
40
- end
41
-
42
- context "with a specified format" do
43
- setup do
44
- template = RablTemplate.new("code", :format => 'xml') { 'node(:foo) { "bar" }' }
45
- template.render(Object.new)
46
- end
47
-
48
- asserts_topic.includes('<foo>bar</foo>')
49
- end
50
- end
51
-
52
- context "#cache" do
53
- context "with cache" do
54
- setup do
55
- template = Rabl::Engine.new(%q{
56
- cache 'foo'
57
- })
58
- template.render(Object.new)
59
- template
60
- end
61
-
62
- asserts_topic.assigns(:_cache_key) { 'foo' }
63
- end
64
-
65
- context "with cache and options" do
66
- setup do
67
- template = Rabl::Engine.new(%q{
68
- cache 'foo', :expires_in => 'bar'
69
- })
70
- template.render(Object.new)
71
- template
72
- end
73
-
74
- asserts_topic.assigns(:_cache_key) { 'foo' }
75
- asserts_topic.assigns(:_cache_options) { { :expires_in => 'bar' } }
76
- end
77
-
78
- context "without cache" do
79
- setup do
80
- template = Rabl::Engine.new("")
81
- template.render(Object.new)
82
- template
83
- end
84
-
85
- denies(:instance_variable_defined?, :@_cache_key)
86
- end
87
- end
88
-
89
- context "with defaults" do
90
- setup do
91
- Rabl.configure do |config|
92
- config.include_json_root = true
93
- config.include_xml_root = false
94
- config.enable_json_callbacks = false
95
- end
96
- end
97
-
98
- context "#cache" do
99
- asserts "does not modify output" do
100
- template = rabl %q{
101
- object @user
102
- cache @user
103
- }
104
- scope = Object.new
105
- scope.instance_variable_set :@user, User.new
106
- template.render(scope)
107
- end.matches "{\"user\":{}}"
108
- end
109
-
110
- context "#object" do
111
- asserts "that it sets data source" do
112
- template = rabl %q{
113
- object @user
114
- }
115
- scope = Object.new
116
- scope.instance_variable_set :@user, User.new
117
- template.render(scope)
118
- end.matches "{\"user\":{}}"
119
-
120
- asserts "that it can set root node" do
121
- template = rabl %q{
122
- object @user => :person
123
- }
124
- scope = Object.new
125
- scope.instance_variable_set :@user, User.new
126
- template.render(scope)
127
- end.equals "{\"person\":{}}"
128
-
129
- asserts "that it can set root node with a nil object and explicit name" do
130
- template = rabl %q{
131
- object @user => :person
132
- }
133
- scope = Object.new
134
- scope.instance_variable_set :@user, nil
135
- template.render(scope)
136
- end.equals "{\"person\":{}}"
137
-
138
- asserts "that it can set false root node" do
139
- template = rabl %q{
140
- object @user => false
141
- }
142
- scope = Object.new
143
- scope.instance_variable_set :@user, User.new
144
- template.render(scope)
145
- end.equals "{}"
146
-
147
- asserts "that it can set false root node and correctly render object without root node" do
148
- template = rabl %q{
149
- object @user => false
150
- attribute :name
151
- }
152
- user = User.new(:name => "John Doe")
153
- scope = Object.new
154
- scope.instance_variable_set :@user, user
155
- template.render(scope)
156
- end.equals "{\"name\":\"John Doe\"}"
157
-
158
- asserts "that it can use non-ORM objects" do
159
- template = rabl %q{
160
- object @other
161
- }
162
- scope = Object.new
163
- scope.instance_variable_set :@other, Ormless.new
164
- template.render(scope)
165
- end.equals "{\"ormless\":{}}"
166
-
167
- asserts "that it works with nested controllers" do
168
- template = rabl ""
169
- scope = NestedScope::User.new
170
- scope.instance_variable_set :@user, User.new
171
- template.render(scope)
172
- end.matches "{}"
173
- end
174
-
175
- context "#collection" do
176
- asserts "that it sets object to be blank array" do
177
- template = rabl %{
178
- collection []
179
- }
180
- scope = Object.new
181
- template.render(scope)
182
- end.equals "[]"
183
-
184
- asserts "that it sets object to be casted as a simple array" do
185
- template = rabl %{
186
- collection @users
187
- }
188
- scope = Object.new
189
- scope.instance_variable_set :@users, [User.new, User.new]
190
- template.render(scope)
191
- end.equals "[{\"user\":{}},{\"user\":{}}]"
192
-
193
- asserts "that it sets root node for objects" do
194
- template = rabl %{
195
- collection @users => :people
196
- }
197
- scope = Object.new
198
- scope.instance_variable_set :@users, [User.new, User.new]
199
- template.render(scope)
200
- end.equals "{\"people\":[{\"person\":{}},{\"person\":{}}]}"
201
-
202
- asserts "that it doesn't set root node for objects when specified" do
203
- template = rabl %{
204
- collection @users, :root => :people, :object_root => false
205
- }
206
- scope = Object.new
207
- scope.instance_variable_set :@users, [User.new, User.new]
208
- template.render(scope)
209
- end.equals "{\"people\":[{},{}]}"
210
-
211
- asserts "that it sets proper object and root names when specified" do
212
- template = rabl %{
213
- collection @users, :root => :people, :object_root => :user
214
- }
215
- scope = Object.new
216
- scope.instance_variable_set :@users, [User.new, User.new]
217
- template.render(scope)
218
- end.equals "{\"people\":[{\"user\":{}},{\"user\":{}}]}"
219
-
220
- asserts "that it can use non-ORM objects" do
221
- template = rabl %q{
222
- object @others
223
- }
224
- scope = Object.new
225
- scope.instance_variable_set :@others, [Ormless.new, Ormless.new]
226
- template.render(scope)
227
- end.equals "[{\"ormless\":{}},{\"ormless\":{}}]"
228
- end
229
-
230
- context "#attribute" do
231
- asserts "that it adds an attribute or method to be included in output" do
232
- template = rabl %{
233
- object @user
234
- attribute :name
235
- }
236
- scope = Object.new
237
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
238
- JSON.parse(template.render(scope))
239
- end.equals JSON.parse("{\"user\":{\"name\":\"irvine\"}}")
240
-
241
- asserts "that it can add attribute under a different key name through :as" do
242
- template = rabl %{
243
- object @user
244
- attribute :name, :as => 'city'
245
- }
246
- scope = Object.new
247
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
248
- JSON.parse(template.render(scope))
249
- end.equals JSON.parse("{\"user\":{\"city\":\"irvine\"}}")
250
-
251
- asserts "that it can add attribute under a different key name through hash" do
252
- template = rabl %{
253
- object @user
254
- attribute :name => :city
255
- }
256
- scope = Object.new
257
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
258
- JSON.parse(template.render(scope))
259
- end.equals JSON.parse("{\"user\":{\"city\":\"irvine\"}}")
260
- end
261
-
262
- context "#code" do
263
- asserts "that it can create an arbitraty code node" do
264
- template = rabl %{
265
- code(:foo) { 'bar' }
266
- }
267
- template.render(Object.new)
268
- end.equals "{\"foo\":\"bar\"}"
269
-
270
- asserts "that it can be passed conditionals" do
271
- template = rabl %{
272
- code(:foo, :if => lambda { |i| false }) { 'bar' }
273
- }
274
- template.render(Object.new)
275
- end.equals "{}"
276
-
277
- asserts "that it can merge the result with a collection element given no name" do
278
- template = rabl %{
279
- collection @users
280
- code do |user|
281
- {:name => user.name}
282
- end
283
- }
284
- scope = Object.new
285
- scope.instance_variable_set :@users, [User.new(:name => 'a'), User.new(:name => 'b')]
286
- JSON.parse(template.render(scope))
287
- end.equals JSON.parse("[{\"user\":{\"name\":\"a\"}},{\"user\":{\"name\":\"b\"}}]")
288
-
289
- asserts "that it can merge the result on a child node given no name" do
290
- template = rabl %{
291
- object @user
292
- attribute :name
293
- child(@user) do
294
- code do |user|
295
- {:city => user.city}
296
- end
297
- end
298
- }
299
- scope = Object.new
300
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
301
- JSON.parse(template.render(scope))
302
- end.equals JSON.parse("{\"user\":{\"name\":\"leo\",\"user\":{\"city\":\"LA\"}}}")
303
- end
304
-
305
- context "#child" do
306
- asserts "that it can create a child node" do
307
- template = rabl %{
308
- object @user
309
- attribute :name
310
- child(@user) { attribute :city }
311
- }
312
- scope = Object.new
313
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
314
- JSON.parse(template.render(scope))
315
- end.equals JSON.parse("{\"user\":{\"name\":\"leo\",\"user\":{\"city\":\"LA\"}}}")
316
-
317
- asserts "that it can create a child node with different key" do
318
- template = rabl %{
319
- object @user
320
- attribute :name
321
- child(@user => :person) { attribute :city }
322
- }
323
- scope = Object.new
324
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
325
- JSON.parse(template.render(scope))
326
- end.equals JSON.parse("{\"user\":{\"name\":\"leo\",\"person\":{\"city\":\"LA\"}}}")
327
-
328
- asserts "that it passes the data object to the block" do
329
- template = rabl %{
330
- object @user
331
- child(@user => :person) do |user|
332
- attribute :name if user.name == 'leo'
333
- end
334
- }
335
- scope = Object.new
336
- scope.instance_variable_set :@user, User.new(:name => 'leo')
337
- template.render(scope)
338
- end.equals "{\"user\":{\"person\":{\"name\":\"leo\"}}}"
339
-
340
- asserts "it sets root node for child collection" do
341
- template = rabl %{
342
- object @user
343
- attribute :name
344
- child(@users) { attribute :city }
345
- }
346
- scope = Object.new
347
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
348
- scope.instance_variable_set :@users, [User.new(:name => 'one', :city => 'UNO'), User.new(:name => 'two', :city => 'DOS')]
349
- template.render(scope)
350
- end.equals "{\"user\":{\"name\":\"leo\",\"users\":[{\"user\":{\"city\":\"UNO\"}},{\"user\":{\"city\":\"DOS\"}}]}}"
351
-
352
- asserts "that it chooses a name based on symbol if no elements" do
353
- template = rabl %{
354
- object @bar => :bar
355
- child(:foos) { attribute :city }
356
- }
357
- scope = Object.new
358
- bar = Object.new
359
- stub(bar).foos { [] }
360
- scope.instance_variable_set :@bar, bar
361
- template.render(scope)
362
- end.equals "{\"bar\":{\"foos\":[]}}"
363
-
364
- asserts "that it chooses a name based on symbol if nil" do
365
- template = rabl %{
366
- object @bar => :bar
367
- child(:foos) { attribute :city }
368
- }
369
- scope = Object.new
370
- bar = Object.new
371
- stub(bar).foos { nil }
372
- scope.instance_variable_set :@bar, bar
373
- template.render(scope)
374
- end.equals "{\"bar\":{\"foos\":null}}"
375
-
376
- asserts "it allows suppression of root node for child collection" do
377
- template = rabl %{
378
- object @user
379
- attribute :name
380
- child(@users, :object_root => false) { attribute :city }
381
- }
382
- scope = Object.new
383
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
384
- scope.instance_variable_set :@users, [User.new(:name => 'one', :city => 'UNO'), User.new(:name => 'two', :city => 'DOS')]
385
- template.render(scope)
386
- end.equals "{\"user\":{\"name\":\"leo\",\"users\":[{\"city\":\"UNO\"},{\"city\":\"DOS\"}]}}"
387
-
388
- asserts "it allows modification of object root node for child collection" do
389
- template = rabl %{
390
- object @user
391
- attribute :name
392
- child(@users, :object_root => 'person') { attribute :city }
393
- }
394
- scope = Object.new
395
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
396
- scope.instance_variable_set :@users, [User.new(:name => 'one', :city => 'UNO'), User.new(:name => 'two', :city => 'DOS')]
397
- template.render(scope)
398
- end.equals "{\"user\":{\"name\":\"leo\",\"users\":[{\"person\":{\"city\":\"UNO\"}},{\"person\":{\"city\":\"DOS\"}}]}}"
399
-
400
- asserts "it allows modification of both labels for a child collection" do
401
- template = rabl %{
402
- object @user
403
- attribute :name
404
- child(@users, :root => "people", :object_root => 'item') { attribute :city }
405
- }
406
- scope = Object.new
407
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
408
- scope.instance_variable_set :@users, [User.new(:name => 'one', :city => 'UNO'), User.new(:name => 'two', :city => 'DOS')]
409
- template.render(scope)
410
- end.equals "{\"user\":{\"name\":\"leo\",\"people\":[{\"item\":{\"city\":\"UNO\"}},{\"item\":{\"city\":\"DOS\"}}]}}"
411
- end
412
-
413
- context "#glue" do
414
- asserts "that it glues data from a child node" do
415
- template = rabl %{
416
- object @user
417
- attribute :name
418
- glue(@user) { attribute :city }
419
- glue(@user) { attribute :age }
420
- }
421
- scope = Object.new
422
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA', :age => 12)
423
- JSON.parse(template.render(scope))
424
- end.equals JSON.parse("{\"user\":{\"name\":\"leo\",\"city\":\"LA\",\"age\":12}}")
425
-
426
- asserts "that it passes the data object to the block" do
427
- template = rabl %{
428
- object @user
429
- glue(@user) {|user| attribute :age if user.name == 'leo' }
430
- }
431
- scope = Object.new
432
- scope.instance_variable_set :@user, User.new(:name => 'leo', :age => 12)
433
- template.render(scope)
434
- end.equals "{\"user\":{\"age\":12}}"
435
- end
436
-
437
- context "#partial" do
438
- asserts "that it creates object from partial and passes local" do
439
- template = rabl %{
440
- object false
441
- node :foo do
442
- partial("foo/bar", :object => @user, :locals => { :foo => "bar" })
443
- end
444
- }
445
- scope = Object.new
446
- @user = User.new(:name => 'leo', :city => 'LA', :age => 12)
447
- scope.instance_variable_set :@user, @user
448
- e = Rabl::Engine.new(nil)
449
- mock(e).render.returns({ :name => 'leo', :city => 'LA', :age => 12 })
450
-
451
- any_instance_of(Rabl::Engine) do |b|
452
- mock(b).fetch_source("foo/bar", :view_path => nil).once
453
- mock(b).object_to_engine(@user, :locals => { :foo => "bar" }, :source => nil, :source_location => nil, :template => 'foo/bar').returns(e)
454
- end
455
- JSON.parse(template.render(scope))
456
- end.equals JSON.parse("{ \"foo\" : {\"name\":\"leo\",\"city\":\"LA\",\"age\":12} }")
457
- end
458
-
459
- teardown do
460
- Rabl.reset_configuration!
461
- end
462
- end # with json root
463
-
464
- context "without json root" do
465
- setup do
466
- Rabl.configure do |config|
467
- config.include_json_root = false
468
- config.include_xml_root = false
469
- config.enable_json_callbacks = false
470
- end
471
- end
472
-
473
- context "#object" do
474
- asserts "that it sets default object" do
475
- template = rabl %{
476
- attribute :name
477
- }
478
- scope = context_scope('user', User.new)
479
- template.render(scope).split
480
- end.equals "{\"name\":\"rabl\"}".split
481
-
482
- asserts "that it does not set a collection as default object" do
483
- template = rabl %{
484
- attribute :name
485
- }
486
- scope = context_scope('user', [])
487
- template.render(scope).split
488
- end.equals "{}".split
489
-
490
- asserts "that it sets data source" do
491
- template = rabl %q{
492
- object @user
493
- }
494
- scope = Object.new
495
- scope.instance_variable_set :@user, User.new
496
- template.render(scope)
497
- end.matches "{}"
498
-
499
- asserts "that it can set root node" do
500
- template = rabl %q{
501
- object @user => :person
502
- }
503
- scope = Object.new
504
- scope.instance_variable_set :@user, User.new
505
- template.render(scope)
506
- end.equals "{}"
507
-
508
- asserts "that it can set root node with a nil object and explicit name" do
509
- template = rabl %q{
510
- object @user => :person
511
- attributes :name
512
- }
513
- scope = Object.new
514
- scope.instance_variable_set :@user, nil
515
- template.render(scope)
516
- end.equals "{}"
517
- end
518
-
519
- context "#collection" do
520
- asserts "that it sets object to be casted as a simple array" do
521
- template = rabl %{
522
- collection @users
523
- }
524
- scope = Object.new
525
- scope.instance_variable_set :@users, [User.new, User.new]
526
- template.render(scope)
527
- end.equals "[{},{}]"
528
-
529
- asserts "that it sets root node for objects using hash" do
530
- template = rabl %{
531
- collection @users => :people
532
- }
533
- scope = Object.new
534
- scope.instance_variable_set :@users, [User.new, User.new]
535
- template.render(scope)
536
- end.equals "{\"people\":[{},{}]}"
537
-
538
- asserts "that it sets root node for objects using root option" do
539
- template = rabl %{
540
- collection @users, :root => :people
541
- }
542
- scope = Object.new
543
- scope.instance_variable_set :@users, [User.new, User.new]
544
- template.render(scope)
545
- end.equals "{\"people\":[{},{}]}"
546
-
547
- asserts "that it sets root node for objects using object_root option" do
548
- template = rabl %{
549
- collection @users, :root => :humans, :object_root => :person
550
- }
551
- scope = Object.new
552
- scope.instance_variable_set :@users, [User.new, User.new]
553
- template.render(scope)
554
- end.equals %Q^{"humans":[{"person":{}},{"person":{}}]}^
555
- end
556
-
557
- context "#attribute" do
558
- asserts "that it adds an attribute or method to be included in output" do
559
- template = rabl %{
560
- object @user
561
- attribute :name
562
- }
563
- scope = Object.new
564
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
565
- template.render(scope)
566
- end.equals "{\"name\":\"irvine\"}"
567
-
568
- asserts "that it can add attribute under a different key name through :as" do
569
- template = rabl %{
570
- object @user
571
- attribute :name, :as => 'city'
572
- }
573
- scope = Object.new
574
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
575
- template.render(scope)
576
- end.equals "{\"city\":\"irvine\"}"
577
-
578
- asserts "that it exposes root_object" do
579
- template = rabl %q{
580
- object @user
581
-
582
- attribute :name, :as => root_object.city
583
- }
584
- scope = Object.new
585
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
586
- template.render(scope)
587
- end.equals "{\"irvine\":\"irvine\"}"
588
-
589
- asserts "that it can add attribute under a different key name through hash" do
590
- template = rabl %{
591
- object @user
592
- attribute :name => :city
593
- }
594
- scope = Object.new
595
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
596
- template.render(scope)
597
- end.equals "{\"city\":\"irvine\"}"
598
-
599
- asserts "that it handle structs correctly as child elements" do
600
- template = rabl %{
601
- object @user
602
- child(:city) do
603
- attributes :name
604
- end
605
- }
606
- City = Struct.new(:name)
607
- scope = Object.new
608
- scope.instance_variable_set :@user, User.new(:city => City.new('San Francisco'))
609
- template.render(scope)
610
- end.equals "{\"city\":{\"name\":\"San Francisco\"}}"
611
-
612
- asserts "that it can be passed an if cond for single real attr" do
613
- template = rabl %{
614
- object @user
615
- attribute :name
616
- attributes :age, :first, :if => lambda { |i| i.name != 'irvine' }
617
- }
618
- scope = Object.new
619
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
620
- JSON.parse(template.render(scope))
621
- end.equals JSON.parse("{\"name\":\"irvine\"}")
622
-
623
- asserts "that it can be passed an if cond for aliased attrs" do
624
- template = rabl %{
625
- object @user
626
- attributes :name => :title, :age => :year, :if => lambda { |i| i.name == 'irvine' }
627
- }
628
- scope = Object.new
629
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
630
- JSON.parse(template.render(scope))
631
- end.equals JSON.parse("{\"title\":\"irvine\",\"year\":24}")
632
-
633
- asserts "that it can be passed an unless cond to hide attrs" do
634
- template = rabl %{
635
- object @user
636
- attribute :name
637
- attributes :age, :unless => lambda { |i| i.name == 'irvine' }
638
- }
639
- scope = Object.new
640
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
641
- JSON.parse(template.render(scope))
642
- end.equals JSON.parse("{\"name\":\"irvine\"}")
643
-
644
- asserts "that it can be passed an unless cond for aliased attrs" do
645
- template = rabl %{
646
- object @user
647
- attributes :name => :title, :age => :year, :unless => lambda { |i| i.name == 'irvine' }
648
- }
649
- scope = Object.new
650
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
651
- JSON.parse(template.render(scope))
652
- end.equals JSON.parse("{}")
653
- end # attribute
654
-
655
- context "#code" do
656
- asserts "that it can create an arbitraty code node" do
657
- template = rabl %{
658
- code(:foo) { 'bar' }
659
- }
660
- template.render(Object.new)
661
- end.equals "{\"foo\":\"bar\"}"
662
-
663
- asserts "that it can be passed conditionals" do
664
- template = rabl %{
665
- code(:foo, :if => lambda { |i| false }) { 'bar' }
666
- }
667
- template.render(Object.new)
668
- end.equals "{}"
669
- end
670
-
671
- context "#child" do
672
- asserts "that it can create a singular child node" do
673
- template = rabl %{
674
- object @user
675
- attribute :name
676
- child(@user) { attribute :city }
677
- }
678
- scope = Object.new
679
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
680
- JSON.parse(template.render(scope))
681
- end.equals JSON.parse("{\"name\":\"leo\",\"user\":{\"city\":\"LA\"}}")
682
-
683
- asserts "that it can create a singular child node with different key" do
684
- template = rabl %{
685
- object @user
686
- attribute :name
687
- child(@user => :person) { attribute :city }
688
- }
689
- scope = Object.new
690
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
691
- JSON.parse(template.render(scope))
692
- end.equals JSON.parse("{\"name\":\"leo\",\"person\":{\"city\":\"LA\"}}")
693
-
694
- asserts "that it can create a many child node" do
695
- template = rabl %{
696
- object @user
697
- attribute :name
698
- child(:hobbies) { attribute :name }
699
- }
700
- scope = Object.new
701
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
702
- JSON.parse(template.render(scope))
703
- end.equals JSON.parse(%q^{"name":"leo", "hobbies":[{"hobby":{"name":"Photography"}}]}^)
704
-
705
- asserts "that it can create a many child node with different key" do
706
- template = rabl %{
707
- object @user
708
- attribute :name
709
- child(:hobbies => :interests) { attribute :name }
710
- }
711
- scope = Object.new
712
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
713
- JSON.parse(template.render(scope))
714
- end.equals JSON.parse(%q^{"name":"leo", "interests":[{"interest":{"name":"Photography"}}]}^)
715
-
716
- asserts "that it can create a many child node with no data" do
717
- template = rabl %{
718
- object @user
719
- attribute :name
720
- child(:hobbies) { attribute :name }
721
- }
722
- scope = Object.new
723
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA', :hobbies => [])
724
- JSON.parse(template.render(scope))
725
- end.equals JSON.parse(%q^{"name":"leo", "hobbies":[]}^)
726
-
727
- asserts "that it can be passed conditionals" do
728
- template = rabl %{
729
- object @user
730
- attribute :name
731
- child({:children => :children}, {:if => lambda { |user| user.respond_to?('children') }}) { attribute :test }
732
- }
733
- scope = Object.new
734
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
735
- template.render(scope)
736
- end.equals "{\"name\":\"leo\"}"
737
- end
738
-
739
- context "#glue" do
740
- asserts "that it glues data from a child node" do
741
- template = rabl %{
742
- object @user
743
- attribute :name
744
- glue(@user) { attribute :city }
745
- glue(@user) { attribute :age }
746
- }
747
- scope = Object.new
748
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA', :age => 12)
749
- JSON.parse(template.render(scope))
750
- end.equals JSON.parse("{\"name\":\"leo\",\"city\":\"LA\",\"age\":12}")
751
-
752
- asserts "that it can be passed conditionals" do
753
- template = rabl %{
754
- object @user
755
- attribute :name
756
- glue(@user, {:if => lambda { |i| false }}) { attribute :age }
757
- }
758
- scope = Object.new
759
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA', :age => 12)
760
- JSON.parse(template.render(scope))
761
- end.equals JSON.parse("{\"name\":\"leo\"}")
762
- end
763
-
764
- context "#extends" do
765
- helper(:tmp_path) { @tmp_path ||= Pathname.new(Dir.mktmpdir) }
766
- setup do
767
- Rabl.configure do |config|
768
- config.view_paths = tmp_path
769
- end
770
- File.open(tmp_path + "test.json.rabl", "w") do |f|
771
- f.puts %q{
772
- attributes :age
773
- node(:city) { "Gotham" } if locals[:show_city]
774
- }
775
- end
776
- end
777
-
778
- asserts "that it extends the template with attributes from the file" do
779
- template = rabl %{
780
- object @user
781
- attribute :name
782
- extends 'test'
783
- }
784
- scope = Object.new
785
- scope.instance_variable_set :@user, User.new(:name => 'leo', :age => 12)
786
- JSON.parse(template.render(scope))
787
- end.equals JSON.parse("{\"name\":\"leo\",\"age\":12}")
788
-
789
- asserts "that it can be passed locals" do
790
- template = rabl %{
791
- object @user
792
- attribute :name
793
- extends 'test', :locals => { :show_city => true }
794
- }
795
- scope = Object.new
796
- scope.instance_variable_set :@user, User.new(:name => 'leo', :age => 12)
797
- JSON.parse(template.render(scope))
798
- end.equals JSON.parse("{\"name\":\"leo\",\"age\":12,\"city\":\"Gotham\"}")
799
-
800
- asserts "that it can be passed conditionals" do
801
- template = rabl %{
802
- object @user
803
- attribute :name
804
- extends('test', {:if => lambda { |i| false }})
805
- }
806
- scope = Object.new
807
- scope.instance_variable_set :@user, User.new(:name => 'leo', :age => 12)
808
- JSON.parse(template.render(scope))
809
- end.equals JSON.parse("{\"name\":\"leo\"}")
810
- end
811
-
812
- teardown do
813
- Rabl.reset_configuration!
814
- end
815
- end # without json root
816
-
817
- context "without child root" do
818
- setup do
819
- Rabl.configure do |config|
820
- config.include_child_root = false
821
- config.include_xml_root = false
822
- config.enable_json_callbacks = false
823
- end
824
- end
825
-
826
- context "#child" do
827
- asserts "that it can create a child node without child root" do
828
- template = rabl %{
829
- child @users
830
- }
831
- scope = Object.new
832
- scope.instance_variable_set :@users, [User.new, User.new]
833
- template.render(scope)
834
- end.equals "{\"users\":[{},{}]}"
835
- end
836
-
837
- teardown do
838
- Rabl.reset_configuration!
839
- end
840
- end
841
- end