rabl 0.14.3 → 0.14.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/lib/rabl/version.rb +1 -1
  4. metadata +2 -558
  5. data/.gitignore +0 -8
  6. data/.travis.yml +0 -18
  7. data/Gemfile +0 -29
  8. data/Rakefile +0 -63
  9. data/examples/base.json.rabl +0 -8
  10. data/examples/demo.json.rabl +0 -42
  11. data/examples/inherited.json.rabl +0 -11
  12. data/fixtures/ashared/NOTES +0 -100
  13. data/fixtures/ashared/README +0 -39
  14. data/fixtures/ashared/controllers_rails_5/posts_controller.rb +0 -17
  15. data/fixtures/ashared/controllers_rails_5/users_controller.rb +0 -11
  16. data/fixtures/ashared/helpers/application_helper.rb +0 -5
  17. data/fixtures/ashared/migrate/20111002092016_create_users.rb +0 -15
  18. data/fixtures/ashared/migrate/20111002092019_create_posts.rb +0 -14
  19. data/fixtures/ashared/migrate/20111002092024_create_phone_numbers.rb +0 -16
  20. data/fixtures/ashared/models/phone_number.rb +0 -7
  21. data/fixtures/ashared/models/post.rb +0 -3
  22. data/fixtures/ashared/models/user.rb +0 -3
  23. data/fixtures/ashared/views/layouts/application.html.erb +0 -9
  24. data/fixtures/ashared/views/posts/_show_footer_script.js.erb +0 -1
  25. data/fixtures/ashared/views/posts/date.rabl +0 -3
  26. data/fixtures/ashared/views/posts/index.rabl +0 -12
  27. data/fixtures/ashared/views/posts/show.rabl +0 -17
  28. data/fixtures/ashared/views/users/index.json.rabl +0 -3
  29. data/fixtures/ashared/views/users/phone_number.json.rabl +0 -6
  30. data/fixtures/ashared/views/users/show.json.rabl +0 -16
  31. data/fixtures/ashared/views_rails_3/layouts/application.html.erb +0 -13
  32. data/fixtures/ashared/views_rails_3/posts/_show_footer_script.js.erb +0 -1
  33. data/fixtures/ashared/views_rails_3/posts/date.rabl +0 -3
  34. data/fixtures/ashared/views_rails_3/posts/index.html.erb +0 -3
  35. data/fixtures/ashared/views_rails_3/posts/index.rabl +0 -12
  36. data/fixtures/ashared/views_rails_3/posts/renderer.rabl +0 -8
  37. data/fixtures/ashared/views_rails_3/posts/renderer_partial.rabl +0 -4
  38. data/fixtures/ashared/views_rails_3/posts/show.html.erb +0 -3
  39. data/fixtures/ashared/views_rails_3/posts/show.rabl +0 -25
  40. data/fixtures/ashared/views_rails_3/posts/show.rabl_test_v1.rabl +0 -7
  41. data/fixtures/ashared/views_rails_3/users/index.json.rabl +0 -3
  42. data/fixtures/ashared/views_rails_3/users/phone_number.json.rabl +0 -8
  43. data/fixtures/ashared/views_rails_3/users/phone_number.xml.rabl +0 -1
  44. data/fixtures/ashared/views_rails_3/users/show.json.rabl +0 -16
  45. data/fixtures/ashared/views_rails_3/users/show.rabl_test_v1.rabl +0 -3
  46. data/fixtures/ashared/views_rails_6/layouts/application.html.erb +0 -13
  47. data/fixtures/ashared/views_rails_6/posts/_show_footer_script.js.erb +0 -1
  48. data/fixtures/ashared/views_rails_6/posts/date.rabl +0 -3
  49. data/fixtures/ashared/views_rails_6/posts/index.html.erb +0 -3
  50. data/fixtures/ashared/views_rails_6/posts/index.rabl +0 -12
  51. data/fixtures/ashared/views_rails_6/posts/renderer.rabl +0 -8
  52. data/fixtures/ashared/views_rails_6/posts/renderer_partial.rabl +0 -4
  53. data/fixtures/ashared/views_rails_6/posts/show.html.erb +0 -3
  54. data/fixtures/ashared/views_rails_6/posts/show.rabl +0 -25
  55. data/fixtures/ashared/views_rails_6/posts/show.rabl_test_v1.rabl +0 -7
  56. data/fixtures/ashared/views_rails_6/users/index.json.rabl +0 -3
  57. data/fixtures/ashared/views_rails_6/users/phone_number.json.rabl +0 -8
  58. data/fixtures/ashared/views_rails_6/users/phone_number.xml.rabl +0 -1
  59. data/fixtures/ashared/views_rails_6/users/show.json.rabl +0 -16
  60. data/fixtures/ashared/views_rails_6/users/show.rabl_test_v1.rabl +0 -3
  61. data/fixtures/padrino_test/.components +0 -7
  62. data/fixtures/padrino_test/.gitignore +0 -7
  63. data/fixtures/padrino_test/Gemfile +0 -17
  64. data/fixtures/padrino_test/Rakefile +0 -3
  65. data/fixtures/padrino_test/app/app.rb +0 -31
  66. data/fixtures/padrino_test/app/controllers/posts.rb +0 -11
  67. data/fixtures/padrino_test/app/controllers/users.rb +0 -11
  68. data/fixtures/padrino_test/app/helpers/posts_helper.rb +0 -7
  69. data/fixtures/padrino_test/app/helpers/users_helper.rb +0 -7
  70. data/fixtures/padrino_test/app/views +0 -1
  71. data/fixtures/padrino_test/config.ru +0 -9
  72. data/fixtures/padrino_test/config/apps.rb +0 -34
  73. data/fixtures/padrino_test/config/boot.rb +0 -29
  74. data/fixtures/padrino_test/config/database.rb +0 -43
  75. data/fixtures/padrino_test/db/migrate +0 -1
  76. data/fixtures/padrino_test/db/schema.rb +0 -42
  77. data/fixtures/padrino_test/models +0 -1
  78. data/fixtures/padrino_test/public/favicon.ico +0 -0
  79. data/fixtures/padrino_test/test/app/controllers/posts_controller_test.rb +0 -1
  80. data/fixtures/padrino_test/test/app/controllers/users_controller_test.rb +0 -1
  81. data/fixtures/padrino_test/test/test.rake +0 -18
  82. data/fixtures/padrino_test/test/test_config.rb +0 -18
  83. data/fixtures/rails2/.gitignore +0 -1
  84. data/fixtures/rails2/Gemfile +0 -10
  85. data/fixtures/rails2/Rakefile +0 -14
  86. data/fixtures/rails2/app/controllers/application_controller.rb +0 -10
  87. data/fixtures/rails2/app/controllers/posts_controller.rb +0 -15
  88. data/fixtures/rails2/app/controllers/users_controller.rb +0 -15
  89. data/fixtures/rails2/app/helpers/application_helper.rb +0 -2
  90. data/fixtures/rails2/app/helpers/posts_helper.rb +0 -2
  91. data/fixtures/rails2/app/helpers/users_helper.rb +0 -2
  92. data/fixtures/rails2/app/models +0 -1
  93. data/fixtures/rails2/app/views +0 -1
  94. data/fixtures/rails2/config/boot.rb +0 -129
  95. data/fixtures/rails2/config/database.yml +0 -16
  96. data/fixtures/rails2/config/environment.rb +0 -64
  97. data/fixtures/rails2/config/environments/development.rb +0 -17
  98. data/fixtures/rails2/config/environments/production.rb +0 -28
  99. data/fixtures/rails2/config/environments/test.rb +0 -28
  100. data/fixtures/rails2/config/initializers/backtrace_silencers.rb +0 -7
  101. data/fixtures/rails2/config/initializers/cookie_verification_secret.rb +0 -7
  102. data/fixtures/rails2/config/initializers/inflections.rb +0 -10
  103. data/fixtures/rails2/config/initializers/mime_types.rb +0 -5
  104. data/fixtures/rails2/config/initializers/new_rails_defaults.rb +0 -21
  105. data/fixtures/rails2/config/initializers/session_store.rb +0 -15
  106. data/fixtures/rails2/config/locales/en.yml +0 -5
  107. data/fixtures/rails2/config/preinitializer.rb +0 -20
  108. data/fixtures/rails2/config/routes.rb +0 -45
  109. data/fixtures/rails2/db/migrate +0 -1
  110. data/fixtures/rails2/db/schema.rb +0 -40
  111. data/fixtures/rails2/db/seeds.rb +0 -7
  112. data/fixtures/rails2/public/404.html +0 -30
  113. data/fixtures/rails2/public/422.html +0 -30
  114. data/fixtures/rails2/public/500.html +0 -30
  115. data/fixtures/rails2/public/favicon.ico +0 -0
  116. data/fixtures/rails2/public/images/rails.png +0 -0
  117. data/fixtures/rails2/public/index.html +0 -275
  118. data/fixtures/rails2/public/robots.txt +0 -5
  119. data/fixtures/rails2/script/about +0 -4
  120. data/fixtures/rails2/script/console +0 -3
  121. data/fixtures/rails2/script/dbconsole +0 -3
  122. data/fixtures/rails2/script/destroy +0 -3
  123. data/fixtures/rails2/script/generate +0 -3
  124. data/fixtures/rails2/script/performance/benchmarker +0 -3
  125. data/fixtures/rails2/script/performance/profiler +0 -3
  126. data/fixtures/rails2/script/plugin +0 -3
  127. data/fixtures/rails2/script/runner +0 -3
  128. data/fixtures/rails2/script/server +0 -3
  129. data/fixtures/rails2/test/functionals/posts_controller_test.rb +0 -1
  130. data/fixtures/rails2/test/functionals/users_controller_test.rb +0 -1
  131. data/fixtures/rails2/test/test_helper.rb +0 -33
  132. data/fixtures/rails3/.gitignore +0 -4
  133. data/fixtures/rails3/Gemfile +0 -37
  134. data/fixtures/rails3/Rakefile +0 -12
  135. data/fixtures/rails3/app/controllers/application_controller.rb +0 -14
  136. data/fixtures/rails3/app/controllers/posts_controller.rb +0 -11
  137. data/fixtures/rails3/app/controllers/users_controller.rb +0 -11
  138. data/fixtures/rails3/app/models +0 -1
  139. data/fixtures/rails3/app/views +0 -1
  140. data/fixtures/rails3/config.ru +0 -4
  141. data/fixtures/rails3/config/application.rb +0 -42
  142. data/fixtures/rails3/config/boot.rb +0 -6
  143. data/fixtures/rails3/config/database.yml +0 -22
  144. data/fixtures/rails3/config/environment.rb +0 -5
  145. data/fixtures/rails3/config/environments/development.rb +0 -26
  146. data/fixtures/rails3/config/environments/production.rb +0 -49
  147. data/fixtures/rails3/config/environments/test.rb +0 -35
  148. data/fixtures/rails3/config/initializers/backtrace_silencers.rb +0 -7
  149. data/fixtures/rails3/config/initializers/inflections.rb +0 -10
  150. data/fixtures/rails3/config/initializers/mime_types.rb +0 -5
  151. data/fixtures/rails3/config/initializers/secret_token.rb +0 -7
  152. data/fixtures/rails3/config/initializers/session_store.rb +0 -8
  153. data/fixtures/rails3/config/locales/en.yml +0 -5
  154. data/fixtures/rails3/config/routes.rb +0 -61
  155. data/fixtures/rails3/db/migrate +0 -1
  156. data/fixtures/rails3/db/schema.rb +0 -42
  157. data/fixtures/rails3/db/seeds.rb +0 -7
  158. data/fixtures/rails3/lib/tasks/.gitkeep +0 -0
  159. data/fixtures/rails3/public/404.html +0 -26
  160. data/fixtures/rails3/public/422.html +0 -26
  161. data/fixtures/rails3/public/500.html +0 -26
  162. data/fixtures/rails3/public/favicon.ico +0 -0
  163. data/fixtures/rails3/public/images/rails.png +0 -0
  164. data/fixtures/rails3/public/index.html +0 -239
  165. data/fixtures/rails3/public/robots.txt +0 -5
  166. data/fixtures/rails3/public/stylesheets/.gitkeep +0 -0
  167. data/fixtures/rails3/script/rails +0 -6
  168. data/fixtures/rails3/test/functional/posts_controller_test.rb +0 -1
  169. data/fixtures/rails3/test/functional/users_controller_test.rb +0 -1
  170. data/fixtures/rails3/test/test_helper.rb +0 -26
  171. data/fixtures/rails3_2/.gitignore +0 -15
  172. data/fixtures/rails3_2/Gemfile +0 -40
  173. data/fixtures/rails3_2/README.rdoc +0 -261
  174. data/fixtures/rails3_2/Rakefile +0 -12
  175. data/fixtures/rails3_2/app/assets/images/rails.png +0 -0
  176. data/fixtures/rails3_2/app/assets/javascripts/application.js +0 -15
  177. data/fixtures/rails3_2/app/assets/javascripts/posts.js.coffee +0 -3
  178. data/fixtures/rails3_2/app/assets/javascripts/users.js.coffee +0 -3
  179. data/fixtures/rails3_2/app/assets/stylesheets/application.css +0 -13
  180. data/fixtures/rails3_2/app/assets/stylesheets/posts.css.scss +0 -3
  181. data/fixtures/rails3_2/app/assets/stylesheets/users.css.scss +0 -3
  182. data/fixtures/rails3_2/app/controllers/application_controller.rb +0 -14
  183. data/fixtures/rails3_2/app/controllers/posts_controller.rb +0 -16
  184. data/fixtures/rails3_2/app/controllers/users_controller.rb +0 -11
  185. data/fixtures/rails3_2/app/helpers/application_helper.rb +0 -5
  186. data/fixtures/rails3_2/app/helpers/posts_helper.rb +0 -2
  187. data/fixtures/rails3_2/app/helpers/users_helper.rb +0 -2
  188. data/fixtures/rails3_2/app/mailers/.gitkeep +0 -0
  189. data/fixtures/rails3_2/app/models +0 -1
  190. data/fixtures/rails3_2/app/views +0 -1
  191. data/fixtures/rails3_2/config.ru +0 -4
  192. data/fixtures/rails3_2/config/application.rb +0 -59
  193. data/fixtures/rails3_2/config/boot.rb +0 -6
  194. data/fixtures/rails3_2/config/database.yml +0 -25
  195. data/fixtures/rails3_2/config/environment.rb +0 -5
  196. data/fixtures/rails3_2/config/environments/development.rb +0 -37
  197. data/fixtures/rails3_2/config/environments/production.rb +0 -67
  198. data/fixtures/rails3_2/config/environments/test.rb +0 -37
  199. data/fixtures/rails3_2/config/initializers/backtrace_silencers.rb +0 -7
  200. data/fixtures/rails3_2/config/initializers/inflections.rb +0 -15
  201. data/fixtures/rails3_2/config/initializers/mime_types.rb +0 -7
  202. data/fixtures/rails3_2/config/initializers/secret_token.rb +0 -7
  203. data/fixtures/rails3_2/config/initializers/session_store.rb +0 -8
  204. data/fixtures/rails3_2/config/initializers/wrap_parameters.rb +0 -14
  205. data/fixtures/rails3_2/config/locales/en.yml +0 -5
  206. data/fixtures/rails3_2/config/routes.rb +0 -64
  207. data/fixtures/rails3_2/db/migrate +0 -1
  208. data/fixtures/rails3_2/db/schema.rb +0 -42
  209. data/fixtures/rails3_2/db/seeds.rb +0 -7
  210. data/fixtures/rails3_2/doc/README_FOR_APP +0 -2
  211. data/fixtures/rails3_2/lib/assets/.gitkeep +0 -0
  212. data/fixtures/rails3_2/lib/tasks/.gitkeep +0 -0
  213. data/fixtures/rails3_2/log/.gitkeep +0 -0
  214. data/fixtures/rails3_2/public/404.html +0 -26
  215. data/fixtures/rails3_2/public/422.html +0 -26
  216. data/fixtures/rails3_2/public/500.html +0 -25
  217. data/fixtures/rails3_2/public/favicon.ico +0 -0
  218. data/fixtures/rails3_2/public/index.html +0 -241
  219. data/fixtures/rails3_2/public/robots.txt +0 -5
  220. data/fixtures/rails3_2/script/rails +0 -6
  221. data/fixtures/rails3_2/test/fixtures/phone_numbers.yml +0 -11
  222. data/fixtures/rails3_2/test/fixtures/posts.yml +0 -11
  223. data/fixtures/rails3_2/test/fixtures/users.yml +0 -11
  224. data/fixtures/rails3_2/test/functional/posts_controller_test.rb +0 -1
  225. data/fixtures/rails3_2/test/functional/users_controller_test.rb +0 -1
  226. data/fixtures/rails3_2/test/integration/.gitkeep +0 -0
  227. data/fixtures/rails3_2/test/performance/browsing_test.rb +0 -12
  228. data/fixtures/rails3_2/test/test_helper.rb +0 -26
  229. data/fixtures/rails3_2/test/unit/helpers/posts_helper_test.rb +0 -4
  230. data/fixtures/rails3_2/test/unit/helpers/users_helper_test.rb +0 -4
  231. data/fixtures/rails3_2/test/unit/phone_number_test.rb +0 -7
  232. data/fixtures/rails3_2/test/unit/post_test.rb +0 -7
  233. data/fixtures/rails3_2/test/unit/user_test.rb +0 -7
  234. data/fixtures/rails3_2/vendor/assets/javascripts/.gitkeep +0 -0
  235. data/fixtures/rails3_2/vendor/assets/stylesheets/.gitkeep +0 -0
  236. data/fixtures/rails3_2/vendor/plugins/.gitkeep +0 -0
  237. data/fixtures/rails4/.gitignore +0 -16
  238. data/fixtures/rails4/Gemfile +0 -53
  239. data/fixtures/rails4/README.rdoc +0 -28
  240. data/fixtures/rails4/Rakefile +0 -11
  241. data/fixtures/rails4/app/assets/javascripts/application.js +0 -16
  242. data/fixtures/rails4/app/assets/stylesheets/application.css +0 -13
  243. data/fixtures/rails4/app/controllers/application_controller.rb +0 -5
  244. data/fixtures/rails4/app/controllers/concerns/.keep +0 -0
  245. data/fixtures/rails4/app/controllers/posts_controller.rb +0 -16
  246. data/fixtures/rails4/app/controllers/users_controller.rb +0 -11
  247. data/fixtures/rails4/app/helpers/application_helper.rb +0 -5
  248. data/fixtures/rails4/app/mailers/.keep +0 -0
  249. data/fixtures/rails4/app/models +0 -1
  250. data/fixtures/rails4/app/views +0 -1
  251. data/fixtures/rails4/bin/bundle +0 -3
  252. data/fixtures/rails4/bin/rails +0 -4
  253. data/fixtures/rails4/bin/rake +0 -4
  254. data/fixtures/rails4/config.ru +0 -4
  255. data/fixtures/rails4/config/application.rb +0 -23
  256. data/fixtures/rails4/config/boot.rb +0 -4
  257. data/fixtures/rails4/config/database.yml +0 -25
  258. data/fixtures/rails4/config/environment.rb +0 -5
  259. data/fixtures/rails4/config/environments/development.rb +0 -29
  260. data/fixtures/rails4/config/environments/production.rb +0 -80
  261. data/fixtures/rails4/config/environments/test.rb +0 -39
  262. data/fixtures/rails4/config/initializers/backtrace_silencers.rb +0 -7
  263. data/fixtures/rails4/config/initializers/filter_parameter_logging.rb +0 -4
  264. data/fixtures/rails4/config/initializers/inflections.rb +0 -16
  265. data/fixtures/rails4/config/initializers/mime_types.rb +0 -7
  266. data/fixtures/rails4/config/initializers/secret_token.rb +0 -12
  267. data/fixtures/rails4/config/initializers/session_store.rb +0 -3
  268. data/fixtures/rails4/config/initializers/wrap_parameters.rb +0 -14
  269. data/fixtures/rails4/config/locales/en.yml +0 -23
  270. data/fixtures/rails4/config/routes.rb +0 -55
  271. data/fixtures/rails4/db/migrate +0 -1
  272. data/fixtures/rails4/db/schema.rb +0 -42
  273. data/fixtures/rails4/db/seeds.rb +0 -7
  274. data/fixtures/rails4/lib/assets/.keep +0 -0
  275. data/fixtures/rails4/lib/tasks/.keep +0 -0
  276. data/fixtures/rails4/log/.keep +0 -0
  277. data/fixtures/rails4/public/404.html +0 -58
  278. data/fixtures/rails4/public/422.html +0 -58
  279. data/fixtures/rails4/public/500.html +0 -57
  280. data/fixtures/rails4/public/favicon.ico +0 -0
  281. data/fixtures/rails4/public/robots.txt +0 -5
  282. data/fixtures/rails4/test/controllers/.keep +0 -0
  283. data/fixtures/rails4/test/fixtures/.keep +0 -0
  284. data/fixtures/rails4/test/functional/posts_controller_test.rb +0 -1
  285. data/fixtures/rails4/test/functional/users_controller_test.rb +0 -1
  286. data/fixtures/rails4/test/helpers/.keep +0 -0
  287. data/fixtures/rails4/test/integration/.keep +0 -0
  288. data/fixtures/rails4/test/mailers/.keep +0 -0
  289. data/fixtures/rails4/test/models/.keep +0 -0
  290. data/fixtures/rails4/test/test_helper.rb +0 -26
  291. data/fixtures/rails4/vendor/assets/javascripts/.keep +0 -0
  292. data/fixtures/rails4/vendor/assets/stylesheets/.keep +0 -0
  293. data/fixtures/rails5/.gitignore +0 -21
  294. data/fixtures/rails5/Gemfile +0 -53
  295. data/fixtures/rails5/README.md +0 -24
  296. data/fixtures/rails5/Rakefile +0 -13
  297. data/fixtures/rails5/app/assets/config/manifest.js +0 -3
  298. data/fixtures/rails5/app/assets/images/.keep +0 -0
  299. data/fixtures/rails5/app/assets/javascripts/application.js +0 -16
  300. data/fixtures/rails5/app/assets/javascripts/cable.js +0 -13
  301. data/fixtures/rails5/app/assets/javascripts/channels/.keep +0 -0
  302. data/fixtures/rails5/app/assets/stylesheets/application.css +0 -15
  303. data/fixtures/rails5/app/channels/application_cable/channel.rb +0 -4
  304. data/fixtures/rails5/app/channels/application_cable/connection.rb +0 -4
  305. data/fixtures/rails5/app/controllers/application_controller.rb +0 -3
  306. data/fixtures/rails5/app/controllers/concerns/.keep +0 -0
  307. data/fixtures/rails5/app/controllers/posts_controller.rb +0 -1
  308. data/fixtures/rails5/app/controllers/users_controller.rb +0 -1
  309. data/fixtures/rails5/app/helpers +0 -1
  310. data/fixtures/rails5/app/jobs/application_job.rb +0 -2
  311. data/fixtures/rails5/app/mailers/application_mailer.rb +0 -4
  312. data/fixtures/rails5/app/models +0 -1
  313. data/fixtures/rails5/app/views +0 -1
  314. data/fixtures/rails5/bin/bundle +0 -3
  315. data/fixtures/rails5/bin/rails +0 -9
  316. data/fixtures/rails5/bin/rake +0 -9
  317. data/fixtures/rails5/bin/setup +0 -34
  318. data/fixtures/rails5/bin/spring +0 -15
  319. data/fixtures/rails5/bin/update +0 -29
  320. data/fixtures/rails5/config.ru +0 -5
  321. data/fixtures/rails5/config/application.rb +0 -15
  322. data/fixtures/rails5/config/boot.rb +0 -3
  323. data/fixtures/rails5/config/cable.yml +0 -9
  324. data/fixtures/rails5/config/database.yml +0 -25
  325. data/fixtures/rails5/config/environment.rb +0 -5
  326. data/fixtures/rails5/config/environments/development.rb +0 -54
  327. data/fixtures/rails5/config/environments/production.rb +0 -86
  328. data/fixtures/rails5/config/environments/test.rb +0 -42
  329. data/fixtures/rails5/config/initializers/application_controller_renderer.rb +0 -6
  330. data/fixtures/rails5/config/initializers/assets.rb +0 -11
  331. data/fixtures/rails5/config/initializers/backtrace_silencers.rb +0 -7
  332. data/fixtures/rails5/config/initializers/cookies_serializer.rb +0 -5
  333. data/fixtures/rails5/config/initializers/filter_parameter_logging.rb +0 -4
  334. data/fixtures/rails5/config/initializers/inflections.rb +0 -16
  335. data/fixtures/rails5/config/initializers/mime_types.rb +0 -6
  336. data/fixtures/rails5/config/initializers/new_framework_defaults.rb +0 -24
  337. data/fixtures/rails5/config/initializers/session_store.rb +0 -3
  338. data/fixtures/rails5/config/initializers/wrap_parameters.rb +0 -14
  339. data/fixtures/rails5/config/locales/en.yml +0 -23
  340. data/fixtures/rails5/config/puma.rb +0 -47
  341. data/fixtures/rails5/config/routes.rb +0 -8
  342. data/fixtures/rails5/config/secrets.yml +0 -22
  343. data/fixtures/rails5/config/spring.rb +0 -6
  344. data/fixtures/rails5/db/migrate +0 -1
  345. data/fixtures/rails5/db/schema.rb +0 -41
  346. data/fixtures/rails5/db/seeds.rb +0 -7
  347. data/fixtures/rails5/lib/assets/.keep +0 -0
  348. data/fixtures/rails5/lib/tasks/.keep +0 -0
  349. data/fixtures/rails5/log/.keep +0 -0
  350. data/fixtures/rails5/public/404.html +0 -67
  351. data/fixtures/rails5/public/422.html +0 -67
  352. data/fixtures/rails5/public/500.html +0 -66
  353. data/fixtures/rails5/public/apple-touch-icon-precomposed.png +0 -0
  354. data/fixtures/rails5/public/apple-touch-icon.png +0 -0
  355. data/fixtures/rails5/public/favicon.ico +0 -0
  356. data/fixtures/rails5/public/robots.txt +0 -5
  357. data/fixtures/rails5/test/controllers/.keep +0 -0
  358. data/fixtures/rails5/test/fixtures/.keep +0 -0
  359. data/fixtures/rails5/test/fixtures/files/.keep +0 -0
  360. data/fixtures/rails5/test/functional/posts_controller_test.rb +0 -1
  361. data/fixtures/rails5/test/functional/users_controller_test.rb +0 -1
  362. data/fixtures/rails5/test/helpers/.keep +0 -0
  363. data/fixtures/rails5/test/integration/.keep +0 -0
  364. data/fixtures/rails5/test/mailers/.keep +0 -0
  365. data/fixtures/rails5/test/models/.keep +0 -0
  366. data/fixtures/rails5/test/test_helper.rb +0 -26
  367. data/fixtures/rails5/tmp/.keep +0 -0
  368. data/fixtures/rails5/vendor/assets/javascripts/.keep +0 -0
  369. data/fixtures/rails5/vendor/assets/stylesheets/.keep +0 -0
  370. data/fixtures/rails5_api/.gitignore +0 -21
  371. data/fixtures/rails5_api/Gemfile +0 -46
  372. data/fixtures/rails5_api/README.md +0 -24
  373. data/fixtures/rails5_api/Rakefile +0 -13
  374. data/fixtures/rails5_api/app/channels/application_cable/channel.rb +0 -4
  375. data/fixtures/rails5_api/app/channels/application_cable/connection.rb +0 -4
  376. data/fixtures/rails5_api/app/controllers/application_controller.rb +0 -2
  377. data/fixtures/rails5_api/app/controllers/concerns/.keep +0 -0
  378. data/fixtures/rails5_api/app/controllers/posts_controller.rb +0 -1
  379. data/fixtures/rails5_api/app/controllers/users_controller.rb +0 -1
  380. data/fixtures/rails5_api/app/helpers +0 -1
  381. data/fixtures/rails5_api/app/jobs/application_job.rb +0 -2
  382. data/fixtures/rails5_api/app/mailers/application_mailer.rb +0 -4
  383. data/fixtures/rails5_api/app/models +0 -1
  384. data/fixtures/rails5_api/app/views +0 -1
  385. data/fixtures/rails5_api/bin/bundle +0 -3
  386. data/fixtures/rails5_api/bin/rails +0 -9
  387. data/fixtures/rails5_api/bin/rake +0 -9
  388. data/fixtures/rails5_api/bin/setup +0 -34
  389. data/fixtures/rails5_api/bin/spring +0 -17
  390. data/fixtures/rails5_api/bin/update +0 -29
  391. data/fixtures/rails5_api/config.ru +0 -5
  392. data/fixtures/rails5_api/config/application.rb +0 -30
  393. data/fixtures/rails5_api/config/boot.rb +0 -3
  394. data/fixtures/rails5_api/config/cable.yml +0 -9
  395. data/fixtures/rails5_api/config/database.yml +0 -25
  396. data/fixtures/rails5_api/config/environment.rb +0 -5
  397. data/fixtures/rails5_api/config/environments/development.rb +0 -47
  398. data/fixtures/rails5_api/config/environments/production.rb +0 -78
  399. data/fixtures/rails5_api/config/environments/test.rb +0 -42
  400. data/fixtures/rails5_api/config/initializers/application_controller_renderer.rb +0 -6
  401. data/fixtures/rails5_api/config/initializers/backtrace_silencers.rb +0 -7
  402. data/fixtures/rails5_api/config/initializers/cors.rb +0 -16
  403. data/fixtures/rails5_api/config/initializers/filter_parameter_logging.rb +0 -4
  404. data/fixtures/rails5_api/config/initializers/inflections.rb +0 -16
  405. data/fixtures/rails5_api/config/initializers/mime_types.rb +0 -5
  406. data/fixtures/rails5_api/config/initializers/new_framework_defaults.rb +0 -18
  407. data/fixtures/rails5_api/config/initializers/wrap_parameters.rb +0 -14
  408. data/fixtures/rails5_api/config/locales/en.yml +0 -23
  409. data/fixtures/rails5_api/config/puma.rb +0 -47
  410. data/fixtures/rails5_api/config/routes.rb +0 -8
  411. data/fixtures/rails5_api/config/secrets.yml +0 -22
  412. data/fixtures/rails5_api/config/spring.rb +0 -6
  413. data/fixtures/rails5_api/db/migrate +0 -1
  414. data/fixtures/rails5_api/db/schema.rb +0 -41
  415. data/fixtures/rails5_api/db/seeds.rb +0 -7
  416. data/fixtures/rails5_api/lib/tasks/.keep +0 -0
  417. data/fixtures/rails5_api/log/.keep +0 -0
  418. data/fixtures/rails5_api/public/robots.txt +0 -5
  419. data/fixtures/rails5_api/test/controllers/.keep +0 -0
  420. data/fixtures/rails5_api/test/fixtures/.keep +0 -0
  421. data/fixtures/rails5_api/test/fixtures/files/.keep +0 -0
  422. data/fixtures/rails5_api/test/functional/posts_controller_test.rb +0 -1
  423. data/fixtures/rails5_api/test/functional/users_controller_test.rb +0 -1
  424. data/fixtures/rails5_api/test/integration/.keep +0 -0
  425. data/fixtures/rails5_api/test/mailers/.keep +0 -0
  426. data/fixtures/rails5_api/test/models/.keep +0 -0
  427. data/fixtures/rails5_api/test/test_helper.rb +0 -39
  428. data/fixtures/rails5_api/tmp/.keep +0 -0
  429. data/fixtures/rails6/.gitignore +0 -35
  430. data/fixtures/rails6/Gemfile +0 -58
  431. data/fixtures/rails6/README.md +0 -24
  432. data/fixtures/rails6/Rakefile +0 -14
  433. data/fixtures/rails6/app/assets/config/manifest.js +0 -2
  434. data/fixtures/rails6/app/assets/images/.keep +0 -0
  435. data/fixtures/rails6/app/assets/stylesheets/application.css +0 -15
  436. data/fixtures/rails6/app/channels/application_cable/channel.rb +0 -4
  437. data/fixtures/rails6/app/channels/application_cable/connection.rb +0 -4
  438. data/fixtures/rails6/app/controllers/application_controller.rb +0 -2
  439. data/fixtures/rails6/app/controllers/concerns/.keep +0 -0
  440. data/fixtures/rails6/app/controllers/posts_controller.rb +0 -17
  441. data/fixtures/rails6/app/controllers/users_controller.rb +0 -11
  442. data/fixtures/rails6/app/helpers +0 -1
  443. data/fixtures/rails6/app/javascript/channels/consumer.js +0 -6
  444. data/fixtures/rails6/app/javascript/channels/index.js +0 -5
  445. data/fixtures/rails6/app/javascript/packs/application.js +0 -17
  446. data/fixtures/rails6/app/jobs/application_job.rb +0 -7
  447. data/fixtures/rails6/app/mailers/application_mailer.rb +0 -4
  448. data/fixtures/rails6/app/models +0 -1
  449. data/fixtures/rails6/app/views +0 -1
  450. data/fixtures/rails6/babel.config.js +0 -72
  451. data/fixtures/rails6/bin/bundle +0 -105
  452. data/fixtures/rails6/bin/rails +0 -9
  453. data/fixtures/rails6/bin/rake +0 -9
  454. data/fixtures/rails6/bin/setup +0 -36
  455. data/fixtures/rails6/bin/spring +0 -17
  456. data/fixtures/rails6/bin/webpack +0 -19
  457. data/fixtures/rails6/bin/webpack-dev-server +0 -19
  458. data/fixtures/rails6/bin/yarn +0 -11
  459. data/fixtures/rails6/config.ru +0 -5
  460. data/fixtures/rails6/config/application.rb +0 -19
  461. data/fixtures/rails6/config/boot.rb +0 -4
  462. data/fixtures/rails6/config/cable.yml +0 -10
  463. data/fixtures/rails6/config/credentials.yml.enc +0 -1
  464. data/fixtures/rails6/config/database.yml +0 -25
  465. data/fixtures/rails6/config/environment.rb +0 -5
  466. data/fixtures/rails6/config/environments/development.rb +0 -62
  467. data/fixtures/rails6/config/environments/production.rb +0 -112
  468. data/fixtures/rails6/config/environments/test.rb +0 -48
  469. data/fixtures/rails6/config/initializers/application_controller_renderer.rb +0 -8
  470. data/fixtures/rails6/config/initializers/assets.rb +0 -14
  471. data/fixtures/rails6/config/initializers/backtrace_silencers.rb +0 -7
  472. data/fixtures/rails6/config/initializers/content_security_policy.rb +0 -27
  473. data/fixtures/rails6/config/initializers/cookies_serializer.rb +0 -5
  474. data/fixtures/rails6/config/initializers/filter_parameter_logging.rb +0 -4
  475. data/fixtures/rails6/config/initializers/inflections.rb +0 -16
  476. data/fixtures/rails6/config/initializers/mime_types.rb +0 -6
  477. data/fixtures/rails6/config/initializers/wrap_parameters.rb +0 -14
  478. data/fixtures/rails6/config/locales/en.yml +0 -33
  479. data/fixtures/rails6/config/puma.rb +0 -35
  480. data/fixtures/rails6/config/routes.rb +0 -8
  481. data/fixtures/rails6/config/spring.rb +0 -6
  482. data/fixtures/rails6/config/storage.yml +0 -34
  483. data/fixtures/rails6/config/webpack/development.js +0 -5
  484. data/fixtures/rails6/config/webpack/environment.js +0 -3
  485. data/fixtures/rails6/config/webpack/production.js +0 -5
  486. data/fixtures/rails6/config/webpack/test.js +0 -5
  487. data/fixtures/rails6/config/webpacker.yml +0 -95
  488. data/fixtures/rails6/db/migrate/20111002092016_create_users.rb +0 -11
  489. data/fixtures/rails6/db/migrate/20111002092019_create_posts.rb +0 -10
  490. data/fixtures/rails6/db/migrate/20111002092024_create_phone_numbers.rb +0 -12
  491. data/fixtures/rails6/db/schema.rb +0 -41
  492. data/fixtures/rails6/db/seeds.rb +0 -7
  493. data/fixtures/rails6/lib/assets/.keep +0 -0
  494. data/fixtures/rails6/lib/tasks/.keep +0 -0
  495. data/fixtures/rails6/log/.keep +0 -0
  496. data/fixtures/rails6/package.json +0 -15
  497. data/fixtures/rails6/postcss.config.js +0 -12
  498. data/fixtures/rails6/public/404.html +0 -67
  499. data/fixtures/rails6/public/422.html +0 -67
  500. data/fixtures/rails6/public/500.html +0 -66
  501. data/fixtures/rails6/public/apple-touch-icon-precomposed.png +0 -0
  502. data/fixtures/rails6/public/apple-touch-icon.png +0 -0
  503. data/fixtures/rails6/public/favicon.ico +0 -0
  504. data/fixtures/rails6/public/robots.txt +0 -1
  505. data/fixtures/rails6/storage/.keep +0 -0
  506. data/fixtures/rails6/test/application_system_test_case.rb +0 -5
  507. data/fixtures/rails6/test/channels/application_cable/connection_test.rb +0 -11
  508. data/fixtures/rails6/test/controllers/.keep +0 -0
  509. data/fixtures/rails6/test/fixtures/.keep +0 -0
  510. data/fixtures/rails6/test/fixtures/files/.keep +0 -0
  511. data/fixtures/rails6/test/functional/posts_controller_test.rb +0 -1
  512. data/fixtures/rails6/test/functional/users_controller_test.rb +0 -1
  513. data/fixtures/rails6/test/helpers/.keep +0 -0
  514. data/fixtures/rails6/test/integration/.keep +0 -0
  515. data/fixtures/rails6/test/mailers/.keep +0 -0
  516. data/fixtures/rails6/test/models/.keep +0 -0
  517. data/fixtures/rails6/test/system/.keep +0 -0
  518. data/fixtures/rails6/test/test_helper.rb +0 -27
  519. data/fixtures/rails6/tmp/.keep +0 -0
  520. data/fixtures/rails6/vendor/.keep +0 -0
  521. data/fixtures/rails6/yarn.lock +0 -7201
  522. data/fixtures/sinatra_test/Gemfile +0 -13
  523. data/fixtures/sinatra_test/Rakefile +0 -6
  524. data/fixtures/sinatra_test/app.rb +0 -55
  525. data/fixtures/sinatra_test/config.ru +0 -7
  526. data/fixtures/sinatra_test/db/migrate +0 -1
  527. data/fixtures/sinatra_test/models +0 -1
  528. data/fixtures/sinatra_test/test/functional/posts_controller_test.rb +0 -1
  529. data/fixtures/sinatra_test/test/functional/users_controller_test.rb +0 -1
  530. data/fixtures/sinatra_test/test/test_helper.rb +0 -19
  531. data/fixtures/sinatra_test/views +0 -1
  532. data/rabl.gemspec +0 -34
  533. data/test.watchr +0 -47
  534. data/test/bson_engine_test.rb +0 -310
  535. data/test/builder_test.rb +0 -388
  536. data/test/configuration_test.rb +0 -91
  537. data/test/engine_test.rb +0 -841
  538. data/test/helpers_test.rb +0 -146
  539. data/test/integration/posts_controller_test.rb +0 -108
  540. data/test/integration/rails3_2/posts_controller_test.rb +0 -263
  541. data/test/integration/rails3_2/users_controller_test.rb +0 -87
  542. data/test/integration/rails4/posts_controller_test.rb +0 -248
  543. data/test/integration/rails4/users_controller_test.rb +0 -87
  544. data/test/integration/rails5/posts_controller_test.rb +0 -251
  545. data/test/integration/rails5/users_controller_test.rb +0 -87
  546. data/test/integration/rails6/posts_controller_test.rb +0 -185
  547. data/test/integration/rails6/users_controller_test.rb +0 -87
  548. data/test/integration/test_init.rb +0 -36
  549. data/test/integration/users_controller_test.rb +0 -87
  550. data/test/models/ormless.rb +0 -3
  551. data/test/models/user.rb +0 -35
  552. data/test/msgpack_engine_test.rb +0 -312
  553. data/test/multi_builder_test.rb +0 -69
  554. data/test/partials_test.rb +0 -205
  555. data/test/plist_engine_test.rb +0 -308
  556. data/test/renderer_test.rb +0 -390
  557. data/test/silence.rb +0 -23
  558. data/test/template_test.rb +0 -63
  559. data/test/teststrap.rb +0 -42
  560. data/test/xml_test.rb +0 -297
@@ -1,308 +0,0 @@
1
- require File.expand_path('../teststrap', __FILE__)
2
- require 'rabl/template'
3
-
4
- context "Rabl::Engine" do
5
- helper(:rabl) { |t| RablTemplate.new("code", :format => 'plist') { t } }
6
-
7
- context "with plist defaults" do
8
- setup do
9
- Rabl.configure do |config|
10
- # Comment this line out because include_plist_root is default.
11
- #config.include_plist_root = true
12
- end
13
- end
14
-
15
- context "#object" do
16
- asserts "that it sets data source" do
17
- template = rabl %q{
18
- object @user
19
- }
20
- scope = Object.new
21
- scope.instance_variable_set :@user, User.new
22
- template.render(scope)
23
- end.matches "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>user</key>\n\t<dict/>\n</dict>\n</plist>\n"
24
-
25
- asserts "that it can set root node" do
26
- template = rabl %q{
27
- object @user => :person
28
- }
29
- scope = Object.new
30
- scope.instance_variable_set :@user, User.new
31
- template.render(scope).split("").sort
32
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>person</key>\n\t<dict/>\n</dict>\n</plist>\n".split("").sort
33
- end
34
-
35
- context "#collection" do
36
- asserts "that it sets object to be casted as a simple array" do
37
- template = rabl %{
38
- collection @users
39
- }
40
- scope = Object.new
41
- scope.instance_variable_set :@users, [User.new, User.new]
42
- template.render(scope).split("").sort
43
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<array>\n\t<dict>\n\t\t<key>user</key>\n\t\t<dict/>\n\t</dict>\n\t<dict>\n\t\t<key>user</key>\n\t\t<dict/>\n\t</dict>\n</array>\n</plist>\n".split("").sort
44
-
45
- asserts "that it sets root node for objects" do
46
- template = rabl %{
47
- collection @users => :person
48
- }
49
- scope = Object.new
50
- scope.instance_variable_set :@users, [User.new, User.new]
51
- template.render(scope).split("").sort
52
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>person</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>person</key>\n\t\t\t<dict/>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>person</key>\n\t\t\t<dict/>\n\t\t</dict>\n\t</array>\n</dict>\n</plist>\n".split("").sort
53
- end
54
-
55
- context "#attribute" do
56
- asserts "that it adds an attribute or method to be included in output" do
57
- template = rabl %{
58
- object @user
59
- attribute :name
60
- }
61
- scope = Object.new
62
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
63
- template.render(scope).split("").sort
64
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>user</key>\n\t<dict>\n\t\t<key>name</key>\n\t\t<string>irvine</string>\n\t</dict>\n</dict>\n</plist>\n".split("").sort
65
-
66
- asserts "that it can add attribute under a different key name through :as" do
67
- template = rabl %{
68
- object @user
69
- attribute :name, :as => 'city'
70
- }
71
- scope = Object.new
72
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
73
- template.render(scope).split("").sort
74
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>user</key>\n\t<dict>\n\t\t<key>city</key>\n\t\t<string>irvine</string>\n\t</dict>\n</dict>\n</plist>\n".split("").sort
75
-
76
- asserts "that it can add attribute under a different key name through hash" do
77
- template = rabl %{
78
- object @user
79
- attribute :name => :city
80
- }
81
- scope = Object.new
82
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
83
- template.render(scope).split("").sort
84
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>user</key>\n\t<dict>\n\t\t<key>city</key>\n\t\t<string>irvine</string>\n\t</dict>\n</dict>\n</plist>\n".split("").sort
85
- end
86
-
87
- context "#code" do
88
- asserts "that it can create an arbitraty code node" do
89
- template = rabl %{
90
- code(:foo) { 'bar' }
91
- }
92
- template.render(Object.new).split("").sort
93
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>foo</key>\n\t<string>bar</string>\n</dict>\n</plist>\n".split("").sort
94
-
95
- asserts "that it can be passed conditionals" do
96
- template = rabl %{
97
- code(:foo, :if => lambda { |i| false }) { 'bar' }
98
- }
99
- template.render(Object.new).split("").sort
100
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict/>\n</plist>\n".split("").sort
101
- end
102
-
103
- context "#child" do
104
- asserts "that it can create a child node" do
105
- template = rabl %{
106
- object @user
107
- child(@user) { attribute :city }
108
- }
109
- scope = Object.new
110
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
111
- template.render(scope).split("").sort
112
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>user</key>\n\t<dict>\n\t\t<key>user</key>\n\t\t<dict>\n\t\t\t<key>city</key>\n\t\t\t<string>LA</string>\n\t\t</dict>\n\t</dict>\n</dict>\n</plist>\n".split("").sort
113
-
114
- asserts "that it can create a child node with different key" do
115
- template = rabl %{
116
- object @user
117
- attribute :name
118
- child(@user => :person) { attribute :city }
119
- }
120
- scope = Object.new
121
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
122
- template.render(scope)
123
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>user</key>\n\t<dict>\n\t\t<key>name</key>\n\t\t<string>leo</string>\n\t\t<key>person</key>\n\t\t<dict>\n\t\t\t<key>city</key>\n\t\t\t<string>LA</string>\n\t\t</dict>\n\t</dict>\n</dict>\n</plist>\n"
124
- end
125
-
126
- context "#glue" do
127
- asserts "that it glues data from a child node" do
128
- template = rabl %{
129
- object @user
130
- attribute :name
131
- glue(@user) { attribute :city }
132
- glue(@user) { attribute :age }
133
- }
134
- scope = Object.new
135
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA', :age => 12)
136
- template.render(scope)
137
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>user</key>\n\t<dict>\n\t\t<key>age</key>\n\t\t<integer>12</integer>\n\t\t<key>city</key>\n\t\t<string>LA</string>\n\t\t<key>name</key>\n\t\t<string>leo</string>\n\t</dict>\n</dict>\n</plist>\n"
138
- end
139
-
140
- teardown do
141
- Rabl.reset_configuration!
142
- end
143
- end
144
-
145
- context "with plist_engine" do
146
- setup do
147
- class CustomPlistEncodeEngine
148
- def self.dump string
149
- 42
150
- end
151
- end
152
-
153
- Rabl.configure do |config|
154
- config.plist_engine = CustomPlistEncodeEngine
155
- end
156
- end
157
-
158
- asserts 'that it returns process by custom to_json' do
159
- template = rabl %q{
160
- object @user
161
- }
162
- scope = Object.new
163
- scope.instance_variable_set :@user, User.new
164
- template.render(scope)
165
- end.equals 42
166
-
167
- teardown do
168
- Rabl.reset_configuration!
169
- end
170
- end
171
-
172
- context "without plist root" do
173
- setup do
174
- Rabl.configure do |config|
175
- config.include_plist_root = false
176
- end
177
- end
178
-
179
- context "#object" do
180
- asserts "that it sets data source" do
181
- template = rabl %q{
182
- object @user
183
- }
184
- scope = Object.new
185
- scope.instance_variable_set :@user, User.new
186
- template.render(scope)
187
- end.matches "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict/>\n</plist>\n"
188
-
189
- asserts "that it can set root node" do
190
- template = rabl %q{
191
- object @user => :person
192
- }
193
- scope = Object.new
194
- scope.instance_variable_set :@user, User.new
195
- template.render(scope)
196
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict/>\n</plist>\n"
197
- end
198
-
199
- context "#collection" do
200
- asserts "that it sets object to be casted as a simple array" do
201
- template = rabl %{
202
- collection @users
203
- }
204
- scope = Object.new
205
- scope.instance_variable_set :@users, [User.new, User.new]
206
- template.render(scope)
207
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<array>\n\t<dict/>\n\t<dict/>\n</array>\n</plist>\n"
208
-
209
- asserts "that it sets root node for objects" do
210
- template = rabl %{
211
- collection @users => :person
212
- }
213
- scope = Object.new
214
- scope.instance_variable_set :@users, [User.new, User.new]
215
- template.render(scope)
216
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>person</key>\n\t<array>\n\t\t<dict/>\n\t\t<dict/>\n\t</array>\n</dict>\n</plist>\n"
217
- end
218
-
219
- context "#attribute" do
220
- asserts "that it adds an attribute or method to be included in output" do
221
- template = rabl %{
222
- object @user
223
- attribute :name
224
- }
225
- scope = Object.new
226
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
227
- template.render(scope)
228
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>name</key>\n\t<string>irvine</string>\n</dict>\n</plist>\n"
229
-
230
- asserts "that it can add attribute under a different key name through :as" do
231
- template = rabl %{
232
- object @user
233
- attribute :name, :as => 'city'
234
- }
235
- scope = Object.new
236
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
237
- template.render(scope)
238
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>city</key>\n\t<string>irvine</string>\n</dict>\n</plist>\n"
239
-
240
- asserts "that it can add attribute under a different key name through hash" do
241
- template = rabl %{
242
- object @user
243
- attribute :name => :city
244
- }
245
- scope = Object.new
246
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
247
- template.render(scope)
248
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>city</key>\n\t<string>irvine</string>\n</dict>\n</plist>\n"
249
- end
250
-
251
- context "#code" do
252
- asserts "that it can create an arbitrary code node" do
253
- template = rabl %{
254
- code(:foo) { 'bar' }
255
- }
256
- template.render(Object.new)
257
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>foo</key>\n\t<string>bar</string>\n</dict>\n</plist>\n"
258
-
259
- asserts "that it can be passed conditionals" do
260
- template = rabl %{
261
- code(:foo, :if => lambda { |i| false }) { 'bar' }
262
- }
263
- template.render(Object.new)
264
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict/>\n</plist>\n"
265
- end
266
-
267
- context "#child" do
268
- asserts "that it can create a child node" do
269
- template = rabl %{
270
- object @user
271
- child(@user) { attribute :city }
272
- }
273
- scope = Object.new
274
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
275
- template.render(scope).split("").sort
276
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>user</key>\n\t<dict>\n\t\t<key>city</key>\n\t\t<string>LA</string>\n\t</dict>\n</dict>\n</plist>\n".split("").sort
277
-
278
- asserts "that it can create a child node with different key" do
279
- template = rabl %{
280
- object @user
281
- attribute :name
282
- child(@user => :person) { attribute :city }
283
- }
284
- scope = Object.new
285
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA')
286
- template.render(scope)
287
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>name</key>\n\t<string>leo</string>\n\t<key>person</key>\n\t<dict>\n\t\t<key>city</key>\n\t\t<string>LA</string>\n\t</dict>\n</dict>\n</plist>\n"
288
- end
289
-
290
- context "#glue" do
291
- asserts "that it glues data from a child node" do
292
- template = rabl %{
293
- object @user
294
- attribute :name
295
- glue(@user) { attribute :city }
296
- glue(@user) { attribute :age }
297
- }
298
- scope = Object.new
299
- scope.instance_variable_set :@user, User.new(:name => 'leo', :city => 'LA', :age => 12)
300
- template.render(scope)
301
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>age</key>\n\t<integer>12</integer>\n\t<key>city</key>\n\t<string>LA</string>\n\t<key>name</key>\n\t<string>leo</string>\n</dict>\n</plist>\n"
302
- end
303
-
304
- teardown do
305
- Rabl.reset_configuration!
306
- end
307
- end
308
- end
@@ -1,390 +0,0 @@
1
- require 'tmpdir'
2
- require 'pathname'
3
- require 'json'
4
- require File.expand_path('../teststrap', __FILE__)
5
-
6
- context "Rabl::Renderer" do
7
- helper(:tmp_path) { @tmp_path ||= Pathname.new(Dir.mktmpdir) }
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.pluralize}", nil
13
- scope.instance_variable_set :"@#{name}", value
14
- scope
15
- }
16
-
17
- context "#render" do
18
- asserts 'renders empty array' do
19
- source = %q{
20
- collection @users
21
- attribute :name, :as => 'city'
22
- }
23
-
24
- scope = Object.new
25
- scope.instance_variable_set :@users, []
26
-
27
- renderer = Rabl::Renderer.new(source, [], { :format => 'json', :root => true, :view_path => '/path/to/views', :scope => scope })
28
- renderer.render
29
- end.equals "[]"
30
-
31
- asserts 'renders string as source' do
32
- source = %q{
33
- object @user
34
- attribute :name, :as => 'city'
35
- }
36
-
37
- user = User.new(:name => 'irvine')
38
-
39
- renderer = Rabl::Renderer.new(source, user, { :format => 'json', :root => true, :view_path => '/path/to/views' })
40
- JSON.parse(renderer.render)
41
- end.equals JSON.parse("{\"user\":{\"city\":\"irvine\"}}")
42
-
43
- asserts 'allows redirecting scope to another object' do
44
- source = %q{
45
- object @user
46
- attribute :name, :as => 'city'
47
- }
48
-
49
- scope = Object.new
50
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
51
-
52
- renderer = Rabl::Renderer.new(source, nil, { :format => 'json', :scope => scope })
53
- JSON.parse(renderer.render)
54
- end.equals JSON.parse("{\"user\":{\"city\":\"irvine\"}}")
55
-
56
- asserts 'accepts scope on render' do
57
- source = %q{
58
- object @user
59
- attribute :name, :as => 'city'
60
- }
61
-
62
- scope = Object.new
63
- scope.instance_variable_set :@user, User.new(:name => 'irvine')
64
-
65
- renderer = Rabl::Renderer.new(source)
66
- JSON.parse(renderer.render(scope))
67
- end.equals JSON.parse("{\"user\":{\"city\":\"irvine\"}}")
68
-
69
- asserts 'passes :locals to render' do
70
- source = %q{
71
- attribute :name, :as => 'city'
72
- node(:zipcode) { @zipcode }
73
- }
74
-
75
- user = User.new(:name => 'irvine')
76
-
77
- renderer = Rabl::Renderer.new(source, nil, { :format => 'json', :locals => {:object => user, :zipcode => "92602"} })
78
- JSON.parse(renderer.render)
79
- end.equals JSON.parse("{\"user\":{\"city\":\"irvine\",\"zipcode\":\"92602\"}}")
80
-
81
- asserts 'loads source from file' do
82
- File.open(tmp_path + "test.json.rabl", "w") do |f|
83
- f.puts %q{
84
- object @user
85
- attributes :age, :name
86
- }
87
- end
88
-
89
- user = User.new(:name => 'irvine')
90
-
91
- renderer = Rabl::Renderer.new('test', user, :view_path => tmp_path)
92
- JSON.parse(renderer.render)
93
- end.equals JSON.parse("{\"user\":{\"age\":24,\"name\":\"irvine\"}}")
94
-
95
- asserts 'uses globally configured view paths' do
96
- Rabl.configure do |config|
97
- config.view_paths << tmp_path
98
- end
99
-
100
- File.open(tmp_path + "test.rabl", "w") do |f|
101
- f.puts %q{
102
- attributes :age
103
- }
104
- end
105
-
106
- user = User.new(:name => 'irvine')
107
-
108
- renderer = Rabl::Renderer.new('test', user)
109
- JSON.parse(renderer.render)
110
- end.equals JSON.parse("{\"user\":{\"age\":24,\"name\":\"irvine\"}}")
111
-
112
- asserts 'handles paths for extends' do
113
- File.open(tmp_path + "test.json.rabl", "w") do |f|
114
- f.puts %q{
115
- attributes :age
116
- }
117
- end
118
-
119
- File.open(tmp_path + "user.json.rabl", "w") do |f|
120
- f.puts %(
121
- object @user
122
- attribute :name
123
- extends 'test'
124
- )
125
- end
126
-
127
- user = User.new(:name => 'irvine')
128
-
129
- renderer = Rabl::Renderer.new('user', user, :view_path => tmp_path)
130
- JSON.parse(renderer.render)
131
- end.equals JSON.parse("{\"user\":{\"age\":24,\"name\":\"irvine\"}}")
132
-
133
-
134
- asserts 'handles extends with child as nil' do
135
- File.open(tmp_path + "foo.json.rabl", "w") do |f|
136
- f.puts %q{
137
- object @foo
138
- node(:test) do |foo|
139
- {
140
- test: "#{foo.attribute}"
141
- }
142
- end
143
- }
144
- end
145
-
146
- File.open(tmp_path + "bar.json.rabl", "w") do |f|
147
- f.puts %q{
148
- object false
149
- node do
150
- {
151
- test_attribute: 'test_value'
152
- }
153
- end
154
- child(@foos => :foo_collection) do
155
- extends 'foo'
156
- end
157
- }
158
- end
159
-
160
- sc = Object.new
161
- sc.instance_variable_set :@foos, nil
162
- renderer = Rabl::Renderer.new('bar', false, :view_path => tmp_path, :scope => sc)
163
- JSON.parse(renderer.render)
164
- end.equals JSON.parse("{\"test_attribute\":\"test_value\", \"foo_collection\":null}")
165
-
166
- asserts 'handles extends with custom node and object set false' do
167
- File.open(tmp_path + "test.json.rabl", "w") do |f|
168
- f.puts %q{
169
- node(:foo) { 'baz' }
170
- }
171
- end
172
-
173
- File.open(tmp_path + "user.json.rabl", "w") do |f|
174
- f.puts %(
175
- object false
176
- node(:baz) { "bar" }
177
- extends 'test'
178
- )
179
- end
180
-
181
- scope = context_scope('users', [User.new, User.new, User.new])
182
- renderer = Rabl::Renderer.new('user', false, :view_path => tmp_path, :scope => scope)
183
- JSON.parse(renderer.render)
184
- end.equals(JSON.parse(%Q^{"foo":"baz", "baz":"bar" }^))
185
-
186
- asserts 'handles extends with attributes and object set false' do
187
- File.open(tmp_path + "test.json.rabl", "w") do |f|
188
- f.puts %q{
189
- attributes :foo, :bar, :baz
190
- node(:test) { |bar| bar.demo if bar }
191
- }
192
- end
193
-
194
- File.open(tmp_path + "user.json.rabl", "w") do |f|
195
- f.puts %(
196
- object false
197
- extends 'test'
198
- )
199
- end
200
-
201
- renderer = Rabl::Renderer.new('user', false, :view_path => tmp_path)
202
- JSON.parse(renderer.render)
203
- end.equals(JSON.parse(%Q^{"test": null}^))
204
-
205
- # FIXME template is found and rendered but not included in final results
206
- # asserts 'handles paths for partial' do
207
- # File.open(tmp_path + "test.json.rabl", "w") do |f|
208
- # f.puts %q{
209
- # attributes :age
210
- # }
211
- # end
212
-
213
- # File.open(tmp_path + "user.json.rabl", "w") do |f|
214
- # f.puts %(
215
- # object @user
216
- # attribute :name
217
- # partial 'test', :object => @user
218
- # )
219
- # end
220
-
221
- # user = User.new(:name => 'irvine')
222
-
223
- # renderer = Rabl::Renderer.new('user', user, :view_path => tmp_path)
224
- # JSON.parse(renderer.render)
225
- # end.equals JSON.parse("{\"user\":{\"age\":24,\"name\":\"irvine\"}}")
226
-
227
- asserts 'Rabl.render calls Renderer' do
228
- File.open(tmp_path + "test.json.rabl", "w") do |f|
229
- f.puts %q{
230
- object @user
231
- attributes :age, :name
232
- }
233
- end
234
-
235
- user = User.new(:name => 'irvine')
236
-
237
- JSON.parse(Rabl.render(user, 'test', :view_path => tmp_path))
238
- end.equals JSON.parse("{\"user\":{\"age\":24,\"name\":\"irvine\"}}")
239
-
240
- asserts 'it renders collections' do
241
- File.open(tmp_path + "test.json.rabl", "w") do |f|
242
- f.puts %q{
243
- collection @users => :users
244
- attributes :age, :name
245
- }
246
- end
247
-
248
- sc = Object.new
249
- sc.instance_variable_set :@users, nil
250
- Rabl.render([], 'test', :view_path => tmp_path, :scope => sc)
251
- end.equals "{\"users\":[]}"
252
-
253
- asserts 'it renders an array when given an empty collection' do
254
- File.open(tmp_path + "test.json.rabl", "w") do |f|
255
- f.puts %q{
256
- collection @users
257
- attribute :name, :age
258
- }
259
- end
260
-
261
- scope = Object.new
262
- scope.instance_variable_set :@users, nil
263
- Rabl.render([], 'test', :view_path => tmp_path, :root => false, :scope => scope)
264
- end.equals "[]"
265
-
266
- asserts 'handles view path for when it specified and config is empty' do
267
- Rabl.configuration.view_paths = []
268
-
269
- File.open(tmp_path + "profile.json.rabl", "w") do |f|
270
- f.puts %q{
271
- attributes :gender
272
- }
273
- end
274
-
275
- File.open(tmp_path + "user.json.rabl", "w") do |f|
276
- f.puts %(
277
- object @user
278
- attribute :name
279
- glue(:profile) do
280
- extends 'profile'
281
- end
282
- child(:profile) do
283
- extends 'profile'
284
- end
285
- )
286
- end
287
-
288
- user = User.new(:name => 'irvine')
289
- stub(user).profile { stub!.gender { "male" } }
290
-
291
- renderer = Rabl::Renderer.new('user', user, :view_path => tmp_path)
292
- JSON.parse(renderer.render)
293
- end.equals JSON.parse("{\"user\":{\"name\":\"irvine\",\"object\":{\"gender\":\"male\"},\"gender\":\"male\"}}")
294
-
295
-
296
- asserts "it renders for object false" do
297
- File.open(tmp_path + "test2.rabl", "w") do |f|
298
- f.puts %q{
299
- object false
300
- node(:foo) { 'bar' }
301
- }
302
- end
303
-
304
- user = User.new(:name => 'ivan')
305
- JSON.parse(Rabl.render(user, 'test2', :view_path => tmp_path))
306
- end.equals JSON.parse("{\"foo\":\"bar\"}")
307
-
308
- asserts "it renders for object key specified in template" do
309
- File.open(tmp_path + "test3.rabl", "w") do |f|
310
- f.puts %q{
311
- object @user => :person
312
- attributes :age, :name
313
- }
314
- end
315
-
316
- user = User.new(:name => 'ivan')
317
- JSON.parse(Rabl.render(user, 'test3', :view_path => tmp_path))
318
- end.equals JSON.parse("{\"person\":{\"age\":24,\"name\":\"ivan\"} }")
319
-
320
- asserts "it renders for overwriting object key specified in render" do
321
- File.open(tmp_path + "test4.rabl", "w") do |f|
322
- f.puts %q{
323
- object @user => :person
324
- attributes :age, :name
325
- }
326
- end
327
-
328
- sc = Object.new
329
- sc.instance_variable_set :@user, nil
330
- user = User.new(:name => 'ivan')
331
- JSON.parse(Rabl.render({ user => :human }, 'test4', :view_path => tmp_path, :scope => sc))
332
- end.equals JSON.parse("{\"human\":{\"age\":24,\"name\":\"ivan\"} }")
333
-
334
- asserts "it renders for specific object key passed to render" do
335
- File.open(tmp_path + "test5.rabl", "w") do |f|
336
- f.puts %q{
337
- object @user
338
- attributes :age, :name
339
- }
340
- end
341
-
342
- sc = Object.new
343
- sc.instance_variable_set :@user, nil
344
- user = User.new(:name => 'ivan')
345
- JSON.parse(Rabl.render({ user => :person }, 'test5', :view_path => tmp_path, :scope => sc))
346
- end.equals JSON.parse("{\"person\":{\"age\":24,\"name\":\"ivan\"} }")
347
- end # render
348
-
349
- context '.json' do
350
- asserts 'it renders json' do
351
- File.open(tmp_path + "test.rabl", "w") do |f|
352
- f.puts %q{
353
- object @user
354
- attributes :age, :name, :float
355
- }
356
- end
357
-
358
- user = User.new(:name => 'ivan')
359
- JSON.parse(Rabl::Renderer.json(user, 'test', :view_path => tmp_path))
360
- end.equals JSON.parse("{\"user\":{\"age\":24,\"name\":\"ivan\",\"float\":1234.56}}")
361
- end # json
362
-
363
- context '.msgpack' do
364
- asserts 'it renders msgpack' do
365
- File.open(tmp_path + "test.rabl", "w") do |f|
366
- f.puts %q{
367
- object @user
368
- attributes :age, :name, :float
369
- }
370
- end
371
-
372
- user = User.new(:name => 'ivan')
373
- char_split Rabl::Renderer.msgpack(user, 'test', :view_path => tmp_path)
374
- end.equals char_split("\x81\xA4user\x83\xA3age\x18\xA4name\xA4ivan\xA5float\xCB@\x93J=p\xA3\xD7\n")
375
- end
376
-
377
- context '.plist' do
378
- asserts 'it renders xml' do
379
- File.open(tmp_path + "test.rabl", "w") do |f|
380
- f.puts %q{
381
- object @user
382
- attributes :age, :name, :float
383
- }
384
- end
385
-
386
- user = User.new(:name => 'ivan')
387
- Rabl::Renderer.plist(user, 'test', :view_path => tmp_path)
388
- end.equals "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>user</key>\n\t<dict>\n\t\t<key>age</key>\n\t\t<integer>24</integer>\n\t\t<key>float</key>\n\t\t<real>1234.56</real>\n\t\t<key>name</key>\n\t\t<string>ivan</string>\n\t</dict>\n</dict>\n</plist>\n"
389
- end
390
- end