rabl 0.13.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (303) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +35 -0
  3. data/CONTRIBUTING.md +2 -2
  4. data/README.md +16 -11
  5. data/lib/rabl/builder.rb +29 -17
  6. data/lib/rabl/cache_engine.rb +30 -1
  7. data/lib/rabl/configuration.rb +3 -1
  8. data/lib/rabl/digestor/rails3.rb +12 -0
  9. data/lib/rabl/digestor/rails41.rb +12 -0
  10. data/lib/rabl/digestor/rails5.rb +6 -0
  11. data/lib/rabl/digestor.rb +5 -37
  12. data/lib/rabl/engine.rb +30 -11
  13. data/lib/rabl/helpers.rb +7 -3
  14. data/lib/rabl/railtie.rb +18 -1
  15. data/lib/rabl/template.rb +21 -1
  16. data/lib/rabl/version.rb +1 -1
  17. data/lib/rabl.rb +5 -5
  18. metadata +15 -298
  19. data/.gitignore +0 -8
  20. data/.travis.yml +0 -15
  21. data/Gemfile +0 -27
  22. data/Rakefile +0 -54
  23. data/examples/base.json.rabl +0 -8
  24. data/examples/demo.json.rabl +0 -42
  25. data/examples/inherited.json.rabl +0 -11
  26. data/fixtures/ashared/NOTES +0 -44
  27. data/fixtures/ashared/README +0 -39
  28. data/fixtures/ashared/migrate/20111002092016_create_users.rb +0 -15
  29. data/fixtures/ashared/migrate/20111002092019_create_posts.rb +0 -14
  30. data/fixtures/ashared/migrate/20111002092024_create_phone_numbers.rb +0 -16
  31. data/fixtures/ashared/models/phone_number.rb +0 -7
  32. data/fixtures/ashared/models/post.rb +0 -3
  33. data/fixtures/ashared/models/user.rb +0 -3
  34. data/fixtures/ashared/views/layouts/application.html.erb +0 -9
  35. data/fixtures/ashared/views/posts/_show_footer_script.js.erb +0 -1
  36. data/fixtures/ashared/views/posts/date.rabl +0 -3
  37. data/fixtures/ashared/views/posts/index.rabl +0 -12
  38. data/fixtures/ashared/views/posts/show.rabl +0 -17
  39. data/fixtures/ashared/views/users/index.json.rabl +0 -3
  40. data/fixtures/ashared/views/users/phone_number.json.rabl +0 -6
  41. data/fixtures/ashared/views/users/show.json.rabl +0 -16
  42. data/fixtures/ashared/views_rails_3/layouts/application.html.erb +0 -13
  43. data/fixtures/ashared/views_rails_3/posts/_show_footer_script.js.erb +0 -1
  44. data/fixtures/ashared/views_rails_3/posts/date.rabl +0 -3
  45. data/fixtures/ashared/views_rails_3/posts/index.html.erb +0 -3
  46. data/fixtures/ashared/views_rails_3/posts/index.rabl +0 -12
  47. data/fixtures/ashared/views_rails_3/posts/renderer.rabl +0 -8
  48. data/fixtures/ashared/views_rails_3/posts/renderer_partial.rabl +0 -4
  49. data/fixtures/ashared/views_rails_3/posts/show.html.erb +0 -3
  50. data/fixtures/ashared/views_rails_3/posts/show.rabl +0 -25
  51. data/fixtures/ashared/views_rails_3/posts/show.rabl_test_v1.rabl +0 -7
  52. data/fixtures/ashared/views_rails_3/users/index.json.rabl +0 -3
  53. data/fixtures/ashared/views_rails_3/users/phone_number.json.rabl +0 -8
  54. data/fixtures/ashared/views_rails_3/users/phone_number.xml.rabl +0 -8
  55. data/fixtures/ashared/views_rails_3/users/show.json.rabl +0 -16
  56. data/fixtures/ashared/views_rails_3/users/show.rabl_test_v1.rabl +0 -3
  57. data/fixtures/padrino_test/.components +0 -7
  58. data/fixtures/padrino_test/.gitignore +0 -7
  59. data/fixtures/padrino_test/Gemfile +0 -17
  60. data/fixtures/padrino_test/Rakefile +0 -3
  61. data/fixtures/padrino_test/app/app.rb +0 -31
  62. data/fixtures/padrino_test/app/controllers/posts.rb +0 -11
  63. data/fixtures/padrino_test/app/controllers/users.rb +0 -11
  64. data/fixtures/padrino_test/app/helpers/posts_helper.rb +0 -7
  65. data/fixtures/padrino_test/app/helpers/users_helper.rb +0 -7
  66. data/fixtures/padrino_test/config/apps.rb +0 -34
  67. data/fixtures/padrino_test/config/boot.rb +0 -29
  68. data/fixtures/padrino_test/config/database.rb +0 -43
  69. data/fixtures/padrino_test/config.ru +0 -9
  70. data/fixtures/padrino_test/db/schema.rb +0 -42
  71. data/fixtures/padrino_test/public/favicon.ico +0 -0
  72. data/fixtures/padrino_test/test/app/controllers/posts_controller_test.rb +0 -108
  73. data/fixtures/padrino_test/test/app/controllers/users_controller_test.rb +0 -87
  74. data/fixtures/padrino_test/test/test.rake +0 -18
  75. data/fixtures/padrino_test/test/test_config.rb +0 -18
  76. data/fixtures/rails2/.gitignore +0 -1
  77. data/fixtures/rails2/Gemfile +0 -10
  78. data/fixtures/rails2/Rakefile +0 -14
  79. data/fixtures/rails2/app/controllers/application_controller.rb +0 -10
  80. data/fixtures/rails2/app/controllers/posts_controller.rb +0 -15
  81. data/fixtures/rails2/app/controllers/users_controller.rb +0 -15
  82. data/fixtures/rails2/app/helpers/application_helper.rb +0 -2
  83. data/fixtures/rails2/app/helpers/posts_helper.rb +0 -2
  84. data/fixtures/rails2/app/helpers/users_helper.rb +0 -2
  85. data/fixtures/rails2/config/boot.rb +0 -129
  86. data/fixtures/rails2/config/database.yml +0 -16
  87. data/fixtures/rails2/config/environment.rb +0 -64
  88. data/fixtures/rails2/config/environments/development.rb +0 -17
  89. data/fixtures/rails2/config/environments/production.rb +0 -28
  90. data/fixtures/rails2/config/environments/test.rb +0 -28
  91. data/fixtures/rails2/config/initializers/backtrace_silencers.rb +0 -7
  92. data/fixtures/rails2/config/initializers/cookie_verification_secret.rb +0 -7
  93. data/fixtures/rails2/config/initializers/inflections.rb +0 -10
  94. data/fixtures/rails2/config/initializers/mime_types.rb +0 -5
  95. data/fixtures/rails2/config/initializers/new_rails_defaults.rb +0 -21
  96. data/fixtures/rails2/config/initializers/session_store.rb +0 -15
  97. data/fixtures/rails2/config/locales/en.yml +0 -5
  98. data/fixtures/rails2/config/preinitializer.rb +0 -20
  99. data/fixtures/rails2/config/routes.rb +0 -45
  100. data/fixtures/rails2/db/schema.rb +0 -40
  101. data/fixtures/rails2/db/seeds.rb +0 -7
  102. data/fixtures/rails2/public/404.html +0 -30
  103. data/fixtures/rails2/public/422.html +0 -30
  104. data/fixtures/rails2/public/500.html +0 -30
  105. data/fixtures/rails2/public/favicon.ico +0 -0
  106. data/fixtures/rails2/public/images/rails.png +0 -0
  107. data/fixtures/rails2/public/index.html +0 -275
  108. data/fixtures/rails2/public/robots.txt +0 -5
  109. data/fixtures/rails2/script/about +0 -4
  110. data/fixtures/rails2/script/console +0 -3
  111. data/fixtures/rails2/script/dbconsole +0 -3
  112. data/fixtures/rails2/script/destroy +0 -3
  113. data/fixtures/rails2/script/generate +0 -3
  114. data/fixtures/rails2/script/performance/benchmarker +0 -3
  115. data/fixtures/rails2/script/performance/profiler +0 -3
  116. data/fixtures/rails2/script/plugin +0 -3
  117. data/fixtures/rails2/script/runner +0 -3
  118. data/fixtures/rails2/script/server +0 -3
  119. data/fixtures/rails2/test/functionals/posts_controller_test.rb +0 -108
  120. data/fixtures/rails2/test/functionals/users_controller_test.rb +0 -87
  121. data/fixtures/rails2/test/test_helper.rb +0 -33
  122. data/fixtures/rails3/.gitignore +0 -4
  123. data/fixtures/rails3/Gemfile +0 -37
  124. data/fixtures/rails3/Rakefile +0 -12
  125. data/fixtures/rails3/app/controllers/application_controller.rb +0 -14
  126. data/fixtures/rails3/app/controllers/posts_controller.rb +0 -11
  127. data/fixtures/rails3/app/controllers/users_controller.rb +0 -11
  128. data/fixtures/rails3/config/application.rb +0 -42
  129. data/fixtures/rails3/config/boot.rb +0 -6
  130. data/fixtures/rails3/config/database.yml +0 -22
  131. data/fixtures/rails3/config/environment.rb +0 -5
  132. data/fixtures/rails3/config/environments/development.rb +0 -26
  133. data/fixtures/rails3/config/environments/production.rb +0 -49
  134. data/fixtures/rails3/config/environments/test.rb +0 -35
  135. data/fixtures/rails3/config/initializers/backtrace_silencers.rb +0 -7
  136. data/fixtures/rails3/config/initializers/inflections.rb +0 -10
  137. data/fixtures/rails3/config/initializers/mime_types.rb +0 -5
  138. data/fixtures/rails3/config/initializers/secret_token.rb +0 -7
  139. data/fixtures/rails3/config/initializers/session_store.rb +0 -8
  140. data/fixtures/rails3/config/locales/en.yml +0 -5
  141. data/fixtures/rails3/config/routes.rb +0 -61
  142. data/fixtures/rails3/config.ru +0 -4
  143. data/fixtures/rails3/db/seeds.rb +0 -7
  144. data/fixtures/rails3/lib/tasks/.gitkeep +0 -0
  145. data/fixtures/rails3/public/404.html +0 -26
  146. data/fixtures/rails3/public/422.html +0 -26
  147. data/fixtures/rails3/public/500.html +0 -26
  148. data/fixtures/rails3/public/favicon.ico +0 -0
  149. data/fixtures/rails3/public/images/rails.png +0 -0
  150. data/fixtures/rails3/public/index.html +0 -239
  151. data/fixtures/rails3/public/robots.txt +0 -5
  152. data/fixtures/rails3/public/stylesheets/.gitkeep +0 -0
  153. data/fixtures/rails3/script/rails +0 -6
  154. data/fixtures/rails3/test/functional/posts_controller_test.rb +0 -108
  155. data/fixtures/rails3/test/functional/users_controller_test.rb +0 -87
  156. data/fixtures/rails3/test/test_helper.rb +0 -26
  157. data/fixtures/rails3_2/.gitignore +0 -15
  158. data/fixtures/rails3_2/Gemfile +0 -40
  159. data/fixtures/rails3_2/README.rdoc +0 -261
  160. data/fixtures/rails3_2/Rakefile +0 -12
  161. data/fixtures/rails3_2/app/assets/images/rails.png +0 -0
  162. data/fixtures/rails3_2/app/assets/javascripts/application.js +0 -15
  163. data/fixtures/rails3_2/app/assets/javascripts/posts.js.coffee +0 -3
  164. data/fixtures/rails3_2/app/assets/javascripts/users.js.coffee +0 -3
  165. data/fixtures/rails3_2/app/assets/stylesheets/application.css +0 -13
  166. data/fixtures/rails3_2/app/assets/stylesheets/posts.css.scss +0 -3
  167. data/fixtures/rails3_2/app/assets/stylesheets/users.css.scss +0 -3
  168. data/fixtures/rails3_2/app/controllers/application_controller.rb +0 -14
  169. data/fixtures/rails3_2/app/controllers/posts_controller.rb +0 -16
  170. data/fixtures/rails3_2/app/controllers/users_controller.rb +0 -11
  171. data/fixtures/rails3_2/app/helpers/application_helper.rb +0 -5
  172. data/fixtures/rails3_2/app/helpers/posts_helper.rb +0 -2
  173. data/fixtures/rails3_2/app/helpers/users_helper.rb +0 -2
  174. data/fixtures/rails3_2/app/mailers/.gitkeep +0 -0
  175. data/fixtures/rails3_2/config/application.rb +0 -59
  176. data/fixtures/rails3_2/config/boot.rb +0 -6
  177. data/fixtures/rails3_2/config/database.yml +0 -25
  178. data/fixtures/rails3_2/config/environment.rb +0 -5
  179. data/fixtures/rails3_2/config/environments/development.rb +0 -37
  180. data/fixtures/rails3_2/config/environments/production.rb +0 -67
  181. data/fixtures/rails3_2/config/environments/test.rb +0 -37
  182. data/fixtures/rails3_2/config/initializers/backtrace_silencers.rb +0 -7
  183. data/fixtures/rails3_2/config/initializers/inflections.rb +0 -15
  184. data/fixtures/rails3_2/config/initializers/mime_types.rb +0 -7
  185. data/fixtures/rails3_2/config/initializers/secret_token.rb +0 -7
  186. data/fixtures/rails3_2/config/initializers/session_store.rb +0 -8
  187. data/fixtures/rails3_2/config/initializers/wrap_parameters.rb +0 -14
  188. data/fixtures/rails3_2/config/locales/en.yml +0 -5
  189. data/fixtures/rails3_2/config/routes.rb +0 -64
  190. data/fixtures/rails3_2/config.ru +0 -4
  191. data/fixtures/rails3_2/db/schema.rb +0 -42
  192. data/fixtures/rails3_2/db/seeds.rb +0 -7
  193. data/fixtures/rails3_2/doc/README_FOR_APP +0 -2
  194. data/fixtures/rails3_2/lib/assets/.gitkeep +0 -0
  195. data/fixtures/rails3_2/lib/tasks/.gitkeep +0 -0
  196. data/fixtures/rails3_2/log/.gitkeep +0 -0
  197. data/fixtures/rails3_2/public/404.html +0 -26
  198. data/fixtures/rails3_2/public/422.html +0 -26
  199. data/fixtures/rails3_2/public/500.html +0 -25
  200. data/fixtures/rails3_2/public/favicon.ico +0 -0
  201. data/fixtures/rails3_2/public/index.html +0 -241
  202. data/fixtures/rails3_2/public/robots.txt +0 -5
  203. data/fixtures/rails3_2/script/rails +0 -6
  204. data/fixtures/rails3_2/test/fixtures/phone_numbers.yml +0 -11
  205. data/fixtures/rails3_2/test/fixtures/posts.yml +0 -11
  206. data/fixtures/rails3_2/test/fixtures/users.yml +0 -11
  207. data/fixtures/rails3_2/test/functional/posts_controller_test.rb +0 -263
  208. data/fixtures/rails3_2/test/functional/users_controller_test.rb +0 -87
  209. data/fixtures/rails3_2/test/integration/.gitkeep +0 -0
  210. data/fixtures/rails3_2/test/performance/browsing_test.rb +0 -12
  211. data/fixtures/rails3_2/test/test_helper.rb +0 -26
  212. data/fixtures/rails3_2/test/unit/helpers/posts_helper_test.rb +0 -4
  213. data/fixtures/rails3_2/test/unit/helpers/users_helper_test.rb +0 -4
  214. data/fixtures/rails3_2/test/unit/phone_number_test.rb +0 -7
  215. data/fixtures/rails3_2/test/unit/post_test.rb +0 -7
  216. data/fixtures/rails3_2/test/unit/user_test.rb +0 -7
  217. data/fixtures/rails3_2/vendor/assets/javascripts/.gitkeep +0 -0
  218. data/fixtures/rails3_2/vendor/assets/stylesheets/.gitkeep +0 -0
  219. data/fixtures/rails3_2/vendor/plugins/.gitkeep +0 -0
  220. data/fixtures/rails4/.gitignore +0 -16
  221. data/fixtures/rails4/Gemfile +0 -49
  222. data/fixtures/rails4/README.rdoc +0 -28
  223. data/fixtures/rails4/Rakefile +0 -11
  224. data/fixtures/rails4/app/assets/javascripts/application.js +0 -16
  225. data/fixtures/rails4/app/assets/stylesheets/application.css +0 -13
  226. data/fixtures/rails4/app/controllers/application_controller.rb +0 -5
  227. data/fixtures/rails4/app/controllers/concerns/.keep +0 -0
  228. data/fixtures/rails4/app/controllers/posts_controller.rb +0 -16
  229. data/fixtures/rails4/app/controllers/users_controller.rb +0 -11
  230. data/fixtures/rails4/app/helpers/application_helper.rb +0 -5
  231. data/fixtures/rails4/app/mailers/.keep +0 -0
  232. data/fixtures/rails4/bin/bundle +0 -3
  233. data/fixtures/rails4/bin/rails +0 -4
  234. data/fixtures/rails4/bin/rake +0 -4
  235. data/fixtures/rails4/config/application.rb +0 -23
  236. data/fixtures/rails4/config/boot.rb +0 -4
  237. data/fixtures/rails4/config/database.yml +0 -25
  238. data/fixtures/rails4/config/environment.rb +0 -5
  239. data/fixtures/rails4/config/environments/development.rb +0 -29
  240. data/fixtures/rails4/config/environments/production.rb +0 -80
  241. data/fixtures/rails4/config/environments/test.rb +0 -36
  242. data/fixtures/rails4/config/initializers/backtrace_silencers.rb +0 -7
  243. data/fixtures/rails4/config/initializers/filter_parameter_logging.rb +0 -4
  244. data/fixtures/rails4/config/initializers/inflections.rb +0 -16
  245. data/fixtures/rails4/config/initializers/mime_types.rb +0 -7
  246. data/fixtures/rails4/config/initializers/secret_token.rb +0 -12
  247. data/fixtures/rails4/config/initializers/session_store.rb +0 -3
  248. data/fixtures/rails4/config/initializers/wrap_parameters.rb +0 -14
  249. data/fixtures/rails4/config/locales/en.yml +0 -23
  250. data/fixtures/rails4/config/routes.rb +0 -55
  251. data/fixtures/rails4/config.ru +0 -4
  252. data/fixtures/rails4/db/seeds.rb +0 -7
  253. data/fixtures/rails4/lib/assets/.keep +0 -0
  254. data/fixtures/rails4/lib/tasks/.keep +0 -0
  255. data/fixtures/rails4/log/.keep +0 -0
  256. data/fixtures/rails4/public/404.html +0 -58
  257. data/fixtures/rails4/public/422.html +0 -58
  258. data/fixtures/rails4/public/500.html +0 -57
  259. data/fixtures/rails4/public/favicon.ico +0 -0
  260. data/fixtures/rails4/public/robots.txt +0 -5
  261. data/fixtures/rails4/test/controllers/.keep +0 -0
  262. data/fixtures/rails4/test/fixtures/.keep +0 -0
  263. data/fixtures/rails4/test/functional/posts_controller_test.rb +0 -248
  264. data/fixtures/rails4/test/functional/users_controller_test.rb +0 -87
  265. data/fixtures/rails4/test/helpers/.keep +0 -0
  266. data/fixtures/rails4/test/integration/.keep +0 -0
  267. data/fixtures/rails4/test/mailers/.keep +0 -0
  268. data/fixtures/rails4/test/models/.keep +0 -0
  269. data/fixtures/rails4/test/test_helper.rb +0 -26
  270. data/fixtures/rails4/vendor/assets/javascripts/.keep +0 -0
  271. data/fixtures/rails4/vendor/assets/stylesheets/.keep +0 -0
  272. data/fixtures/sinatra_test/Gemfile +0 -13
  273. data/fixtures/sinatra_test/Rakefile +0 -6
  274. data/fixtures/sinatra_test/app.rb +0 -55
  275. data/fixtures/sinatra_test/config.ru +0 -7
  276. data/fixtures/sinatra_test/test/functional/posts_controller_test.rb +0 -108
  277. data/fixtures/sinatra_test/test/functional/users_controller_test.rb +0 -87
  278. data/fixtures/sinatra_test/test/test_helper.rb +0 -19
  279. data/rabl.gemspec +0 -36
  280. data/test/bson_engine_test.rb +0 -310
  281. data/test/builder_test.rb +0 -362
  282. data/test/configuration_test.rb +0 -91
  283. data/test/engine_test.rb +0 -835
  284. data/test/helpers_test.rb +0 -136
  285. data/test/integration/posts_controller_test.rb +0 -108
  286. data/test/integration/rails3_2/posts_controller_test.rb +0 -263
  287. data/test/integration/rails3_2/users_controller_test.rb +0 -87
  288. data/test/integration/rails4/posts_controller_test.rb +0 -248
  289. data/test/integration/rails4/users_controller_test.rb +0 -87
  290. data/test/integration/test_init.rb +0 -36
  291. data/test/integration/users_controller_test.rb +0 -87
  292. data/test/models/ormless.rb +0 -3
  293. data/test/models/user.rb +0 -34
  294. data/test/msgpack_engine_test.rb +0 -312
  295. data/test/multi_builder_test.rb +0 -69
  296. data/test/partials_test.rb +0 -205
  297. data/test/plist_engine_test.rb +0 -308
  298. data/test/renderer_test.rb +0 -390
  299. data/test/silence.rb +0 -21
  300. data/test/template_test.rb +0 -63
  301. data/test/teststrap.rb +0 -37
  302. data/test/xml_test.rb +0 -297
  303. data/test.watchr +0 -47
@@ -1,16 +0,0 @@
1
- class CreatePhoneNumbers < ActiveRecord::Migration
2
- def self.up
3
- create_table :phone_numbers do |t|
4
- t.integer :user_id
5
- t.boolean :is_primary
6
- t.string :area_code
7
- t.string :prefix
8
- t.string :suffix
9
- t.string :name
10
- end
11
- end
12
-
13
- def self.down
14
- drop_table :phone_numbers
15
- end
16
- end
@@ -1,7 +0,0 @@
1
- class PhoneNumber < ActiveRecord::Base
2
- belongs_to :user
3
-
4
- def formatted
5
- "(#{self.area_code}) #{self.prefix}-#{self.suffix}"
6
- end
7
- end
@@ -1,3 +0,0 @@
1
- class Post < ActiveRecord::Base
2
- belongs_to :user
3
- end
@@ -1,3 +0,0 @@
1
- class User < ActiveRecord::Base
2
- has_many :phone_numbers
3
- end
@@ -1,9 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>RABL ROCKS!</title>
5
- </head>
6
- <body>
7
- <%= yield %>
8
- </body>
9
- </html>
@@ -1 +0,0 @@
1
- var output = <%= render(file: 'posts/show', formats: :json).html_safe %>;
@@ -1,3 +0,0 @@
1
- code(:day) { |d| d.day }
2
- code(:hour) { |d| d.hour }
3
- code(:full) { |d| d.iso8601 }
@@ -1,12 +0,0 @@
1
- collection @posts => :articles
2
- cache ['kittens!', @posts]
3
-
4
- extends "posts/show"
5
-
6
- node(:created_by_admin, :if => lambda { |p| p.user.is_admin }) do |p|
7
- true
8
- end
9
-
10
- child({ :user => :admin }, { :if => lambda { |p| p.user.is_admin }}) do |p|
11
- extends "users/show"
12
- end
@@ -1,17 +0,0 @@
1
- object @post
2
- cache @post
3
-
4
- attributes :title, :body
5
- attributes :created_at => :posted_at
6
-
7
- child :user do
8
- extends "users/show"
9
- end
10
-
11
- glue :user do
12
- attributes :username => :author_name
13
- end
14
-
15
- code(:created_date) do |p|
16
- partial("posts/date", :object => p.created_at)
17
- end
@@ -1,3 +0,0 @@
1
- collection @users
2
-
3
- extends "users/show"
@@ -1,6 +0,0 @@
1
- attributes :prefix, :suffix, :area_code
2
- attributes :is_primary => :primary
3
-
4
- node :formatted do |n|
5
- n.formatted
6
- end
@@ -1,16 +0,0 @@
1
- object @user => :person
2
-
3
- attributes :username, :email, :location
4
- attributes :created_at => :registered_at
5
-
6
- node :role do |user|
7
- user.is_admin ? 'admin' : 'normal'
8
- end
9
-
10
- child :phone_numbers => :pnumbers do
11
- extends "users/phone_number"
12
- end
13
-
14
- node :node_numbers do |u|
15
- partial("users/phone_number", :object => u.phone_numbers)
16
- end
@@ -1,13 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>RABL ROCKS!</title>
5
- </head>
6
- <body>
7
- <%= yield %>
8
-
9
- <%= javascript_tag do %>
10
- <%= yield(:footer_scripts) %>
11
- <% end %>
12
- </body>
13
- </html>
@@ -1 +0,0 @@
1
- var output = <%= render(file: 'posts/show', formats: :json).html_safe %>;
@@ -1,3 +0,0 @@
1
- code(:day) { |d| d.day }
2
- code(:hour) { |d| d.hour }
3
- code(:full) { |d| d.iso8601 }
@@ -1,3 +0,0 @@
1
- <%= content_for :footer_scripts do %>
2
- var output = <%= render(file: 'posts/index', formats: :json).html_safe %>;
3
- <% end %>
@@ -1,12 +0,0 @@
1
- collection @posts => :articles
2
- cache ['kittens!', @posts]
3
-
4
- extends "posts/show"
5
-
6
- node(:created_by_admin, :if => lambda { |p| p.user.is_admin }) do |p|
7
- true
8
- end
9
-
10
- child({ :user => :admin }, { :if => lambda { |p| p.user.is_admin }}) do |p|
11
- extends "users/show"
12
- end
@@ -1,8 +0,0 @@
1
- object @post
2
- cache @post
3
-
4
- attributes :title, :body
5
-
6
- node :partial do |p|
7
- partial('posts/renderer_partial', object: p)
8
- end
@@ -1,4 +0,0 @@
1
- object @post
2
- cache @post
3
-
4
- attributes :title, :body
@@ -1,3 +0,0 @@
1
- <%= content_for :footer_scripts do %>
2
- <%= render partial: "show_footer_script", formats: :js %>
3
- <% end %>
@@ -1,25 +0,0 @@
1
- object @post
2
- cache @post
3
-
4
- attributes :title, :body
5
- attributes :created_at => :posted_at
6
-
7
- child :user do
8
- extends "users/show"
9
- end
10
-
11
- glue :user do
12
- attributes :username => :author_name
13
- end
14
-
15
- code(:created_date) do |p|
16
- partial("posts/date", :object => p.created_at)
17
- end
18
-
19
- node(:post) do |post|
20
- [post.title, post.body]
21
- end
22
-
23
- node(:foo) { helper_foo }
24
-
25
- node(:created_at_in_words) {|p| time_ago_in_words(p.created_at) }
@@ -1,7 +0,0 @@
1
- object @post
2
-
3
- attribute :title => :title_v1
4
-
5
- child :user do
6
- extends "users/show"
7
- end
@@ -1,3 +0,0 @@
1
- collection @users
2
-
3
- extends "users/show", :locals => { :reversed => true }
@@ -1,8 +0,0 @@
1
- attributes :prefix, :suffix, :area_code
2
- attributes :is_primary => :primary
3
-
4
- if locals[:reversed]
5
- node(:reversed) { |n| n.formatted.reverse }
6
- else
7
- node(:formatted) { |n| n.formatted }
8
- end
@@ -1,8 +0,0 @@
1
- attributes :prefix, :suffix, :area_code
2
- attributes :is_primary => :primary
3
-
4
- if locals[:reversed]
5
- node(:reversed) { |n| n.formatted.reverse }
6
- else
7
- node(:formatted) { |n| n.formatted }
8
- end
@@ -1,16 +0,0 @@
1
- object @user => :person
2
-
3
- attributes :username, :email, :location
4
- attributes :created_at => :registered_at
5
-
6
- node :role do |user|
7
- user.is_admin ? 'admin' : 'normal'
8
- end
9
-
10
- child :phone_numbers => :pnumbers do
11
- extends "users/phone_number"
12
- end
13
-
14
- node :node_numbers do |u|
15
- partial("users/phone_number", :object => u.phone_numbers, :locals => { :reversed => locals[:reversed].presence })
16
- end
@@ -1,3 +0,0 @@
1
- object @user => :person
2
-
3
- attribute :username => :username_v1
@@ -1,7 +0,0 @@
1
- ---
2
- :orm: activerecord
3
- :test: riot
4
- :mock: none
5
- :script: none
6
- :renderer: haml
7
- :stylesheet: none
@@ -1,7 +0,0 @@
1
- .DS_Store
2
- log/**/*
3
- tmp/**/*
4
- bin/*
5
- vendor/gems/*
6
- !vendor/gems/cache/
7
- .sass-cache/*
@@ -1,17 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Project requirements
4
- gem 'rake'
5
-
6
- # Component requirements
7
- gem 'activerecord', :require => "active_record"
8
- gem 'sqlite3'
9
-
10
- # Test requirements
11
- gem 'riot', :group => "test"
12
- gem 'rack-test', :require => "rack/test", :group => "test"
13
-
14
- # Padrino
15
- gem 'padrino', '~> 0.10.7'
16
- gem 'json'
17
- gem 'rabl', :path => File.expand_path(File.dirname(__FILE__) + "/../../")
@@ -1,3 +0,0 @@
1
- require File.expand_path('../config/boot.rb', __FILE__)
2
- require 'padrino-core/cli/rake'
3
- PadrinoTasks.init
@@ -1,31 +0,0 @@
1
- class PadrinoTest < Padrino::Application
2
- register Padrino::Rendering
3
- register Padrino::Mailer
4
- register Padrino::Helpers
5
-
6
- enable :sessions
7
-
8
- ##
9
- # Application configuration options
10
- #
11
- # set :raise_errors, true # Raise exceptions (will stop application) (default for test)
12
- # set :dump_errors, true # Exception backtraces are written to STDERR (default for production/development)
13
- # set :show_exceptions, true # Shows a stack trace in browser (default for development)
14
- # set :logging, true # Logging in STDOUT for development and file for production (default only for development)
15
- # set :public, "foo/bar" # Location for static assets (default root/public)
16
- # set :reload, false # Reload application files (default in development)
17
- # set :default_builder, "foo" # Set a custom form builder (default 'StandardFormBuilder')
18
- # set :locale_path, "bar" # Set path for I18n translations (default your_app/locales)
19
- # disable :sessions # Disabled sessions by default (enable if needed)
20
- # disable :flash # Disables rack-flash (enabled by default if Rack::Flash is defined)
21
- # layout :my_layout # Layout can be in views/layouts/foo.ext or views/foo.ext (default :application)
22
- #
23
- end
24
-
25
- # Patch times to return as iso8601
26
- class Time
27
- alias_method :old_to_s, :to_s
28
- def to_s(format=nil)
29
- format ? old_to_s(format) : iso8601
30
- end
31
- end
@@ -1,11 +0,0 @@
1
- PadrinoTest.controllers :posts do
2
- get :index do
3
- @posts = Post.order("id ASC")
4
- render "posts/index"
5
- end
6
-
7
- get :show, :map => "/posts", :with => :id do
8
- @post = Post.find(params[:id])
9
- render "posts/show"
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- PadrinoTest.controllers :users do
2
- get :index do
3
- @users = User.order("username ASC")
4
- render "users/index"
5
- end
6
-
7
- get :show, :map => "/users", :with => :id do
8
- @user = User.find(params[:id])
9
- render "users/show"
10
- end
11
- end
@@ -1,7 +0,0 @@
1
- # Helper methods defined here can be accessed in any controller or view in the application
2
-
3
- PadrinoTest.helpers do
4
- # def simple_helper_method
5
- # ...
6
- # end
7
- end
@@ -1,7 +0,0 @@
1
- # Helper methods defined here can be accessed in any controller or view in the application
2
-
3
- PadrinoTest.helpers do
4
- # def simple_helper_method
5
- # ...
6
- # end
7
- end
@@ -1,34 +0,0 @@
1
- ##
2
- # This file mounts each app in the Padrino project to a specified sub-uri.
3
- # You can mount additional applications using any of these commands below:
4
- #
5
- # Padrino.mount("blog").to('/blog')
6
- # Padrino.mount("blog", :app_class => "BlogApp").to('/blog')
7
- # Padrino.mount("blog", :app_file => "path/to/blog/app.rb").to('/blog')
8
- #
9
- # You can also map apps to a specified host:
10
- #
11
- # Padrino.mount("Admin").host("admin.example.org")
12
- # Padrino.mount("WebSite").host(/.*\.?example.org/)
13
- # Padrino.mount("Foo").to("/foo").host("bar.example.org")
14
- #
15
- # Note 1: Mounted apps (by default) should be placed into the project root at '/app_name'.
16
- # Note 2: If you use the host matching remember to respect the order of the rules.
17
- #
18
- # By default, this file mounts the primary app which was generated with this project.
19
- # However, the mounted app can be modified as needed:
20
- #
21
- # Padrino.mount("AppName", :app_file => "path/to/file", :app_class => "BlogApp").to('/')
22
- #
23
-
24
- ##
25
- # Setup global project settings for your apps. These settings are inherited by every subapp. You can
26
- # override these settings in the subapps as needed.
27
- #
28
- Padrino.configure_apps do
29
- # enable :sessions
30
- set :session_secret, '1559bdc5e1f33a0d1c9a597580a189080b39ab7d06eed1a7db12e90f9d269e89'
31
- end
32
-
33
- # Mounts the core application for this project
34
- Padrino.mount("PadrinoTest").to('/')
@@ -1,29 +0,0 @@
1
- # Defines our constants
2
- PADRINO_ENV = ENV["PADRINO_ENV"] ||= ENV["RACK_ENV"] ||= "development" unless defined?(PADRINO_ENV)
3
- PADRINO_ROOT = File.expand_path('../..', __FILE__) unless defined?(PADRINO_ROOT)
4
-
5
- # Load our dependencies
6
- require 'rubygems' unless defined?(Gem)
7
- require 'bundler/setup'
8
- Bundler.require(:default, PADRINO_ENV)
9
-
10
- ##
11
- # Enable devel logging
12
- #
13
- # Padrino::Logger::Config[:development] = { :log_level => :devel, :stream => :stdout }
14
- # Padrino::Logger.log_static = true
15
- #
16
-
17
- ##
18
- # Add your before load hooks here
19
- #
20
- Padrino.before_load do
21
- end
22
-
23
- ##
24
- # Add your after load hooks here
25
- #
26
- Padrino.after_load do
27
- end
28
-
29
- Padrino.load!
@@ -1,43 +0,0 @@
1
- ##
2
- # You can use other adapters like:
3
- #
4
- # ActiveRecord::Base.configurations[:development] = {
5
- # :adapter => 'mysql',
6
- # :encoding => 'utf8',
7
- # :reconnect => true,
8
- # :database => 'your_database',
9
- # :pool => 5,
10
- # :username => 'root',
11
- # :password => '',
12
- # :host => 'localhost',
13
- # :socket => '/tmp/mysql.sock'
14
- # }
15
- #
16
- ActiveRecord::Base.configurations[:development] = {
17
- :adapter => 'sqlite3',
18
- :database => ":memory:"
19
- }
20
-
21
- ActiveRecord::Base.configurations[:test] = {
22
- :adapter => 'sqlite3',
23
- :database => ":memory:"
24
- }
25
-
26
- # Setup our logger
27
- ActiveRecord::Base.logger = logger
28
-
29
- # Include Active Record class name as root for JSON serialized output.
30
- ActiveRecord::Base.include_root_in_json = true
31
-
32
- # Store the full class name (including module namespace) in STI type column.
33
- ActiveRecord::Base.store_full_sti_class = true
34
-
35
- # Use ISO 8601 format for JSON serialized times and dates.
36
- ActiveSupport.use_standard_json_time_format = true
37
-
38
- # Don't escape HTML entities in JSON, leave that for the #json_escape helper.
39
- # if you're including raw json in an HTML page.
40
- ActiveSupport.escape_html_entities_in_json = false
41
-
42
- # Now we can estabilish connection with our db
43
- ActiveRecord::Base.establish_connection(ActiveRecord::Base.configurations[Padrino.env])
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env rackup
2
- # encoding: utf-8
3
-
4
- # This file can be used to start Padrino,
5
- # just execute it from the command line.
6
-
7
- require File.expand_path("../config/boot.rb", __FILE__)
8
-
9
- run Padrino.application
@@ -1,42 +0,0 @@
1
- # encoding: UTF-8
2
- # This file is auto-generated from the current state of the database. Instead
3
- # of editing this file, please use the migrations feature of Active Record to
4
- # incrementally modify your database, and then regenerate this schema definition.
5
- #
6
- # Note that this schema.rb definition is the authoritative source for your
7
- # database schema. If you need to create the application database on another
8
- # system, you should be using db:schema:load, not running all the migrations
9
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
10
- # you'll amass, the slower it'll run and the greater likelihood for issues).
11
- #
12
- # It's strongly recommended to check this file into your version control system.
13
-
14
- ActiveRecord::Schema.define(:version => 3) do
15
-
16
- create_table "phone_numbers", :force => true do |t|
17
- t.integer "user_id"
18
- t.boolean "is_primary"
19
- t.string "area_code"
20
- t.string "prefix"
21
- t.string "suffix"
22
- t.string "name"
23
- end
24
-
25
- create_table "posts", :force => true do |t|
26
- t.integer "user_id"
27
- t.string "title"
28
- t.text "body"
29
- t.datetime "created_at"
30
- t.datetime "updated_at"
31
- end
32
-
33
- create_table "users", :force => true do |t|
34
- t.string "username"
35
- t.string "email"
36
- t.string "location"
37
- t.boolean "is_admin"
38
- t.datetime "created_at"
39
- t.datetime "updated_at"
40
- end
41
-
42
- end
File without changes
@@ -1,108 +0,0 @@
1
- # Lives in <rabl>/test/integration/posts_controller_test.rb
2
- # Symlinked to fixture applications
3
-
4
- begin # Padrino
5
- require File.expand_path(File.dirname(__FILE__) + '/../../test_config.rb')
6
- rescue LoadError # Rails
7
- require File.expand_path(File.dirname(__FILE__) + '/../test_helper.rb')
8
- end
9
-
10
- context "PostsController" do
11
- helper(:json_output) { JSON.parse(last_response.body) }
12
-
13
- setup do
14
- create_users!
15
- Post.delete_all
16
- @post1 = Post.create(:title => "Foo", :body => "Bar", :user_id => @user1.id)
17
- @post2 = Post.create(:title => "Baz", :body => "Bah", :user_id => @user2.id)
18
- @post3 = Post.create(:title => "Kaz", :body => "Paz", :user_id => @user3.id)
19
- @posts = [@post1, @post2, @post3]
20
- end
21
-
22
- context "for index action" do
23
- setup do
24
- get "/posts", :format => :json
25
- end
26
-
27
- # Attributes (regular)
28
- asserts("contains post titles") do
29
- json_output['articles'].map { |o| o["article"]["title"] }
30
- end.equals { @posts.map(&:title) }
31
-
32
- asserts("contains post bodies") do
33
- json_output['articles'].map { |o| o["article"]["body"] }
34
- end.equals { @posts.map(&:body) }
35
-
36
- # Attributes (custom name)
37
- asserts("contains post posted_at") do
38
- json_output['articles'].map { |o| o["article"]["posted_at"] }
39
- end.equals { @posts.map(&:created_at).map(&:iso8601) }
40
-
41
- # Child
42
- asserts("contains post user child username") do
43
- json_output['articles'].map { |o| o["article"]["user"]["username"] }
44
- end.equals { @posts.map(&:user).map(&:username) }
45
-
46
- asserts("contains post user child role") do
47
- json_output['articles'].map { |o| o["article"]["user"]["role"] }
48
- end.equals { ["normal", "normal", "admin"] }
49
-
50
- # Child Numbers of the Child User
51
- asserts("contains post user child numbers") do
52
- json_output['articles'].map { |o| o["article"]["user"]["pnumbers"][0]["pnumber"]["formatted"] }
53
- end.equals { @posts.map(&:user).map(&:phone_numbers).map(&:first).map(&:formatted) }
54
-
55
- # Glue (username to article)
56
- asserts("contains glued usernames") do
57
- json_output['articles'].map { |o| o["article"]["author_name"] }
58
- end.equals { @posts.map(&:user).map(&:username) }
59
-
60
- # Conditional Child (admin)
61
- asserts("contains admin child only for admins") do
62
- json_output['articles'].map { |o| o["article"]["admin"]["username"] if o["article"].has_key?("admin") }.compact
63
- end.equals { [@user3.username] }
64
-
65
- # Conditional Node (created_by_admin)
66
- asserts("contains created_by_admin node for admins") do
67
- json_output['articles'].last['article']['created_by_admin']
68
- end.equals { true }
69
-
70
- denies("contains no created_by_admin node for non-admins") do
71
- json_output['articles'].first['article']
72
- end.includes(:created_by_admin)
73
- end # index action
74
-
75
- context "for show action" do
76
- setup do
77
- get "/posts/#{@post1.id}", :format => :json
78
- json_output['post']
79
- end
80
-
81
- # Attributes (regular)
82
- asserts("contains post title") { topic['title'] }.equals { @post1.title }
83
- asserts("contains post body") { topic['body'] }.equals { @post1.body }
84
-
85
- # Attributes (custom name)
86
- asserts("contains post posted_at") { topic['posted_at'] }.equals { @post1.created_at.iso8601 }
87
-
88
- # Child
89
- asserts("contains post user child username") { topic["user"]["username"] }.equals { @post1.user.username }
90
- asserts("contains post user child role") { topic["user"]["role"] }.equals { "normal" }
91
-
92
- # Child Numbers of the Child User
93
- asserts("contains post user child numbers") do
94
- topic["user"]["pnumbers"][0]["pnumber"]["formatted"]
95
- end.equals { @post1.user.phone_numbers[0].formatted }
96
-
97
- # Glue (username to article)
98
- asserts("contains glued username") { topic["author_name"] }.equals { @post1.user.username }
99
-
100
- # Non-ORM Date Node Partial
101
- context "for date node" do
102
- setup { json_output['post']['created_date'] }
103
- asserts("contains date partial with day") { topic['day'] }.equals { @post1.created_at.day }
104
- asserts("contains date partial with hour") { topic['hour'] }.equals { @post1.created_at.hour }
105
- asserts("contains date partial with full") { topic['full'] }.equals { @post1.created_at.iso8601 }
106
- end # date node
107
- end # show action
108
- end