rabl 0.14.3 → 0.14.4

Sign up to get free protection for your applications and to get access to all the features.
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