restfulie-nosqlite 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (516) hide show
  1. data/.gitignore +20 -0
  2. data/.gitmodules +3 -0
  3. data/.rspec +2 -0
  4. data/Gemfile +22 -0
  5. data/LICENSE +17 -0
  6. data/README.textile +93 -0
  7. data/Rakefile +119 -0
  8. data/full-examples/.gitignore +4 -0
  9. data/full-examples/README.textile +1 -0
  10. data/full-examples/mikemaze/README.textile +6 -0
  11. data/full-examples/mikemaze/maze_basic.rb +37 -0
  12. data/full-examples/mikemaze/maze_solver_spec.rb +108 -0
  13. data/full-examples/rest_from_scratch/part_1/.gitignore +4 -0
  14. data/full-examples/rest_from_scratch/part_1/.rspec +1 -0
  15. data/full-examples/rest_from_scratch/part_1/Gemfile +33 -0
  16. data/full-examples/rest_from_scratch/part_1/Gemfile.lock +101 -0
  17. data/full-examples/rest_from_scratch/part_1/README +256 -0
  18. data/full-examples/rest_from_scratch/part_1/Rakefile +7 -0
  19. data/full-examples/rest_from_scratch/part_1/app/controllers/application_controller.rb +3 -0
  20. data/full-examples/rest_from_scratch/part_1/app/controllers/items_controller.rb +20 -0
  21. data/full-examples/rest_from_scratch/part_1/app/helpers/application_helper.rb +2 -0
  22. data/full-examples/rest_from_scratch/part_1/app/helpers/items_helper.rb +2 -0
  23. data/full-examples/rest_from_scratch/part_1/app/models/item.rb +2 -0
  24. data/full-examples/rest_from_scratch/part_1/app/views/items/_form.html.erb +25 -0
  25. data/full-examples/rest_from_scratch/part_1/app/views/items/edit.html.erb +6 -0
  26. data/full-examples/rest_from_scratch/part_1/app/views/items/index.html.erb +25 -0
  27. data/full-examples/rest_from_scratch/part_1/app/views/items/new.html.erb +5 -0
  28. data/full-examples/rest_from_scratch/part_1/app/views/items/show.html.erb +15 -0
  29. data/full-examples/rest_from_scratch/part_1/app/views/layouts/application.html.erb +14 -0
  30. data/full-examples/rest_from_scratch/part_1/autotest/discover.rb +1 -0
  31. data/full-examples/rest_from_scratch/part_1/config/application.rb +42 -0
  32. data/full-examples/rest_from_scratch/part_1/config/boot.rb +13 -0
  33. data/full-examples/rest_from_scratch/part_1/config/database.yml +22 -0
  34. data/full-examples/rest_from_scratch/part_1/config/environment.rb +5 -0
  35. data/full-examples/rest_from_scratch/part_1/config/environments/development.rb +26 -0
  36. data/full-examples/rest_from_scratch/part_1/config/environments/production.rb +49 -0
  37. data/full-examples/rest_from_scratch/part_1/config/environments/test.rb +35 -0
  38. data/full-examples/rest_from_scratch/part_1/config/initializers/backtrace_silencers.rb +7 -0
  39. data/full-examples/rest_from_scratch/part_1/config/initializers/inflections.rb +10 -0
  40. data/full-examples/rest_from_scratch/part_1/config/initializers/mime_types.rb +5 -0
  41. data/full-examples/rest_from_scratch/part_1/config/initializers/secret_token.rb +7 -0
  42. data/full-examples/rest_from_scratch/part_1/config/initializers/session_store.rb +8 -0
  43. data/full-examples/rest_from_scratch/part_1/config/locales/en.yml +5 -0
  44. data/full-examples/rest_from_scratch/part_1/config/routes.rb +60 -0
  45. data/full-examples/rest_from_scratch/part_1/config.ru +4 -0
  46. data/full-examples/rest_from_scratch/part_1/db/migrate/20100830171258_create_items.rb +14 -0
  47. data/full-examples/rest_from_scratch/part_1/db/schema.rb +22 -0
  48. data/full-examples/rest_from_scratch/part_1/db/seeds.rb +7 -0
  49. data/full-examples/rest_from_scratch/part_1/lib/tasks/.gitkeep +0 -0
  50. data/full-examples/rest_from_scratch/part_1/public/404.html +26 -0
  51. data/full-examples/rest_from_scratch/part_1/public/422.html +26 -0
  52. data/full-examples/rest_from_scratch/part_1/public/500.html +26 -0
  53. data/full-examples/rest_from_scratch/part_1/public/favicon.ico +0 -0
  54. data/full-examples/rest_from_scratch/part_1/public/images/rails.png +0 -0
  55. data/full-examples/rest_from_scratch/part_1/public/index.html +239 -0
  56. data/full-examples/rest_from_scratch/part_1/public/javascripts/application.js +2 -0
  57. data/full-examples/rest_from_scratch/part_1/public/javascripts/controls.js +965 -0
  58. data/full-examples/rest_from_scratch/part_1/public/javascripts/dragdrop.js +974 -0
  59. data/full-examples/rest_from_scratch/part_1/public/javascripts/effects.js +1123 -0
  60. data/full-examples/rest_from_scratch/part_1/public/javascripts/prototype.js +6001 -0
  61. data/full-examples/rest_from_scratch/part_1/public/javascripts/rails.js +175 -0
  62. data/full-examples/rest_from_scratch/part_1/public/robots.txt +5 -0
  63. data/full-examples/rest_from_scratch/part_1/public/stylesheets/.gitkeep +0 -0
  64. data/full-examples/rest_from_scratch/part_1/public/stylesheets/scaffold.css +56 -0
  65. data/full-examples/rest_from_scratch/part_1/script/rails +6 -0
  66. data/full-examples/rest_from_scratch/part_1/spec/items_spec.rb +31 -0
  67. data/full-examples/rest_from_scratch/part_1/spec/spec_helper.rb +27 -0
  68. data/full-examples/rest_from_scratch/part_1/test/fixtures/items.yml +9 -0
  69. data/full-examples/rest_from_scratch/part_1/test/functional/items_controller_test.rb +49 -0
  70. data/full-examples/rest_from_scratch/part_1/test/performance/browsing_test.rb +9 -0
  71. data/full-examples/rest_from_scratch/part_1/test/test_helper.rb +13 -0
  72. data/full-examples/rest_from_scratch/part_1/test/unit/helpers/items_helper_test.rb +4 -0
  73. data/full-examples/rest_from_scratch/part_1/test/unit/item_test.rb +8 -0
  74. data/full-examples/rest_from_scratch/part_1/vendor/plugins/.gitkeep +0 -0
  75. data/full-examples/rest_from_scratch/part_2/.gitignore +4 -0
  76. data/full-examples/rest_from_scratch/part_2/.rspec +1 -0
  77. data/full-examples/rest_from_scratch/part_2/Gemfile +34 -0
  78. data/full-examples/rest_from_scratch/part_2/Gemfile.lock +101 -0
  79. data/full-examples/rest_from_scratch/part_2/README +256 -0
  80. data/full-examples/rest_from_scratch/part_2/Rakefile +7 -0
  81. data/full-examples/rest_from_scratch/part_2/app/controllers/application_controller.rb +3 -0
  82. data/full-examples/rest_from_scratch/part_2/app/controllers/baskets_controller.rb +25 -0
  83. data/full-examples/rest_from_scratch/part_2/app/controllers/items_controller.rb +20 -0
  84. data/full-examples/rest_from_scratch/part_2/app/controllers/payments_controller.rb +17 -0
  85. data/full-examples/rest_from_scratch/part_2/app/helpers/application_helper.rb +2 -0
  86. data/full-examples/rest_from_scratch/part_2/app/helpers/baskets_helper.rb +2 -0
  87. data/full-examples/rest_from_scratch/part_2/app/helpers/items_helper.rb +2 -0
  88. data/full-examples/rest_from_scratch/part_2/app/helpers/payments_helper.rb +2 -0
  89. data/full-examples/rest_from_scratch/part_2/app/models/basket.rb +11 -0
  90. data/full-examples/rest_from_scratch/part_2/app/models/item.rb +2 -0
  91. data/full-examples/rest_from_scratch/part_2/app/models/payment.rb +3 -0
  92. data/full-examples/rest_from_scratch/part_2/app/views/baskets/show.tokamak +9 -0
  93. data/full-examples/rest_from_scratch/part_2/app/views/items/_show.tokamak +6 -0
  94. data/full-examples/rest_from_scratch/part_2/app/views/items/index.tokamak +14 -0
  95. data/full-examples/rest_from_scratch/part_2/app/views/layouts/application.html.erb +14 -0
  96. data/full-examples/rest_from_scratch/part_2/autotest/discover.rb +1 -0
  97. data/full-examples/rest_from_scratch/part_2/config/application.rb +42 -0
  98. data/full-examples/rest_from_scratch/part_2/config/boot.rb +13 -0
  99. data/full-examples/rest_from_scratch/part_2/config/database.yml +22 -0
  100. data/full-examples/rest_from_scratch/part_2/config/environment.rb +5 -0
  101. data/full-examples/rest_from_scratch/part_2/config/environments/development.rb +26 -0
  102. data/full-examples/rest_from_scratch/part_2/config/environments/production.rb +49 -0
  103. data/full-examples/rest_from_scratch/part_2/config/environments/test.rb +35 -0
  104. data/full-examples/rest_from_scratch/part_2/config/initializers/backtrace_silencers.rb +7 -0
  105. data/full-examples/rest_from_scratch/part_2/config/initializers/inflections.rb +10 -0
  106. data/full-examples/rest_from_scratch/part_2/config/initializers/mime_types.rb +5 -0
  107. data/full-examples/rest_from_scratch/part_2/config/initializers/secret_token.rb +7 -0
  108. data/full-examples/rest_from_scratch/part_2/config/initializers/session_store.rb +8 -0
  109. data/full-examples/rest_from_scratch/part_2/config/locales/en.yml +5 -0
  110. data/full-examples/rest_from_scratch/part_2/config/routes.rb +65 -0
  111. data/full-examples/rest_from_scratch/part_2/config.ru +4 -0
  112. data/full-examples/rest_from_scratch/part_2/db/migrate/20100830171258_create_items.rb +16 -0
  113. data/full-examples/rest_from_scratch/part_2/db/migrate/20100830180139_create_baskets.rb +12 -0
  114. data/full-examples/rest_from_scratch/part_2/db/migrate/20100830180203_create_payments.rb +16 -0
  115. data/full-examples/rest_from_scratch/part_2/db/migrate/20100830185456_connect_baskets_to_items.rb +13 -0
  116. data/full-examples/rest_from_scratch/part_2/db/schema.rb +43 -0
  117. data/full-examples/rest_from_scratch/part_2/db/seeds.rb +7 -0
  118. data/full-examples/rest_from_scratch/part_2/lib/tasks/.gitkeep +0 -0
  119. data/full-examples/rest_from_scratch/part_2/public/404.html +26 -0
  120. data/full-examples/rest_from_scratch/part_2/public/422.html +26 -0
  121. data/full-examples/rest_from_scratch/part_2/public/500.html +26 -0
  122. data/full-examples/rest_from_scratch/part_2/public/favicon.ico +0 -0
  123. data/full-examples/rest_from_scratch/part_2/public/images/rails.png +0 -0
  124. data/full-examples/rest_from_scratch/part_2/public/index.html +239 -0
  125. data/full-examples/rest_from_scratch/part_2/public/javascripts/application.js +2 -0
  126. data/full-examples/rest_from_scratch/part_2/public/javascripts/controls.js +965 -0
  127. data/full-examples/rest_from_scratch/part_2/public/javascripts/dragdrop.js +974 -0
  128. data/full-examples/rest_from_scratch/part_2/public/javascripts/effects.js +1123 -0
  129. data/full-examples/rest_from_scratch/part_2/public/javascripts/prototype.js +6001 -0
  130. data/full-examples/rest_from_scratch/part_2/public/javascripts/rails.js +175 -0
  131. data/full-examples/rest_from_scratch/part_2/public/robots.txt +5 -0
  132. data/full-examples/rest_from_scratch/part_2/public/stylesheets/.gitkeep +0 -0
  133. data/full-examples/rest_from_scratch/part_2/public/stylesheets/scaffold.css +56 -0
  134. data/full-examples/rest_from_scratch/part_2/script/rails +6 -0
  135. data/full-examples/rest_from_scratch/part_2/spec/full_cycle_spec.rb +31 -0
  136. data/full-examples/rest_from_scratch/part_2/spec/items_spec.rb +31 -0
  137. data/full-examples/rest_from_scratch/part_2/spec/spec_helper.rb +27 -0
  138. data/full-examples/rest_from_scratch/part_2/test/fixtures/items.yml +9 -0
  139. data/full-examples/rest_from_scratch/part_2/test/functional/items_controller_test.rb +49 -0
  140. data/full-examples/rest_from_scratch/part_2/test/performance/browsing_test.rb +9 -0
  141. data/full-examples/rest_from_scratch/part_2/test/test_helper.rb +13 -0
  142. data/full-examples/rest_from_scratch/part_2/test/unit/helpers/items_helper_test.rb +4 -0
  143. data/full-examples/rest_from_scratch/part_2/test/unit/item_test.rb +8 -0
  144. data/full-examples/rest_from_scratch/part_2/vendor/plugins/.gitkeep +0 -0
  145. data/full-examples/rest_from_scratch/part_3/.gitignore +4 -0
  146. data/full-examples/rest_from_scratch/part_3/.rspec +1 -0
  147. data/full-examples/rest_from_scratch/part_3/Gemfile +33 -0
  148. data/full-examples/rest_from_scratch/part_3/Gemfile.lock +101 -0
  149. data/full-examples/rest_from_scratch/part_3/README +256 -0
  150. data/full-examples/rest_from_scratch/part_3/Rakefile +7 -0
  151. data/full-examples/rest_from_scratch/part_3/app/controllers/application_controller.rb +3 -0
  152. data/full-examples/rest_from_scratch/part_3/app/controllers/baskets_controller.rb +34 -0
  153. data/full-examples/rest_from_scratch/part_3/app/controllers/items_controller.rb +20 -0
  154. data/full-examples/rest_from_scratch/part_3/app/controllers/payments_controller.rb +17 -0
  155. data/full-examples/rest_from_scratch/part_3/app/helpers/application_helper.rb +2 -0
  156. data/full-examples/rest_from_scratch/part_3/app/helpers/baskets_helper.rb +2 -0
  157. data/full-examples/rest_from_scratch/part_3/app/helpers/items_helper.rb +2 -0
  158. data/full-examples/rest_from_scratch/part_3/app/helpers/payments_helper.rb +2 -0
  159. data/full-examples/rest_from_scratch/part_3/app/models/basket.rb +11 -0
  160. data/full-examples/rest_from_scratch/part_3/app/models/item.rb +2 -0
  161. data/full-examples/rest_from_scratch/part_3/app/models/payment.rb +3 -0
  162. data/full-examples/rest_from_scratch/part_3/app/views/baskets/show.tokamak +9 -0
  163. data/full-examples/rest_from_scratch/part_3/app/views/items/_show.tokamak +6 -0
  164. data/full-examples/rest_from_scratch/part_3/app/views/items/index.tokamak +14 -0
  165. data/full-examples/rest_from_scratch/part_3/app/views/layouts/application.html.erb +14 -0
  166. data/full-examples/rest_from_scratch/part_3/autotest/discover.rb +1 -0
  167. data/full-examples/rest_from_scratch/part_3/config/application.rb +42 -0
  168. data/full-examples/rest_from_scratch/part_3/config/boot.rb +13 -0
  169. data/full-examples/rest_from_scratch/part_3/config/database.yml +22 -0
  170. data/full-examples/rest_from_scratch/part_3/config/environment.rb +5 -0
  171. data/full-examples/rest_from_scratch/part_3/config/environments/development.rb +26 -0
  172. data/full-examples/rest_from_scratch/part_3/config/environments/production.rb +49 -0
  173. data/full-examples/rest_from_scratch/part_3/config/environments/test.rb +35 -0
  174. data/full-examples/rest_from_scratch/part_3/config/initializers/backtrace_silencers.rb +7 -0
  175. data/full-examples/rest_from_scratch/part_3/config/initializers/inflections.rb +10 -0
  176. data/full-examples/rest_from_scratch/part_3/config/initializers/mime_types.rb +5 -0
  177. data/full-examples/rest_from_scratch/part_3/config/initializers/secret_token.rb +7 -0
  178. data/full-examples/rest_from_scratch/part_3/config/initializers/session_store.rb +8 -0
  179. data/full-examples/rest_from_scratch/part_3/config/locales/en.yml +5 -0
  180. data/full-examples/rest_from_scratch/part_3/config/routes.rb +67 -0
  181. data/full-examples/rest_from_scratch/part_3/config.ru +4 -0
  182. data/full-examples/rest_from_scratch/part_3/db/migrate/20100830171258_create_items.rb +16 -0
  183. data/full-examples/rest_from_scratch/part_3/db/migrate/20100830180139_create_baskets.rb +12 -0
  184. data/full-examples/rest_from_scratch/part_3/db/migrate/20100830180203_create_payments.rb +16 -0
  185. data/full-examples/rest_from_scratch/part_3/db/migrate/20100830185456_connect_baskets_to_items.rb +13 -0
  186. data/full-examples/rest_from_scratch/part_3/db/schema.rb +43 -0
  187. data/full-examples/rest_from_scratch/part_3/db/seeds.rb +7 -0
  188. data/full-examples/rest_from_scratch/part_3/lib/tasks/.gitkeep +0 -0
  189. data/full-examples/rest_from_scratch/part_3/public/404.html +26 -0
  190. data/full-examples/rest_from_scratch/part_3/public/422.html +26 -0
  191. data/full-examples/rest_from_scratch/part_3/public/500.html +26 -0
  192. data/full-examples/rest_from_scratch/part_3/public/favicon.ico +0 -0
  193. data/full-examples/rest_from_scratch/part_3/public/images/rails.png +0 -0
  194. data/full-examples/rest_from_scratch/part_3/public/index.html +239 -0
  195. data/full-examples/rest_from_scratch/part_3/public/javascripts/application.js +2 -0
  196. data/full-examples/rest_from_scratch/part_3/public/javascripts/controls.js +965 -0
  197. data/full-examples/rest_from_scratch/part_3/public/javascripts/dragdrop.js +974 -0
  198. data/full-examples/rest_from_scratch/part_3/public/javascripts/effects.js +1123 -0
  199. data/full-examples/rest_from_scratch/part_3/public/javascripts/prototype.js +6001 -0
  200. data/full-examples/rest_from_scratch/part_3/public/javascripts/rails.js +175 -0
  201. data/full-examples/rest_from_scratch/part_3/public/robots.txt +5 -0
  202. data/full-examples/rest_from_scratch/part_3/public/stylesheets/.gitkeep +0 -0
  203. data/full-examples/rest_from_scratch/part_3/public/stylesheets/scaffold.css +56 -0
  204. data/full-examples/rest_from_scratch/part_3/script/rails +6 -0
  205. data/full-examples/rest_from_scratch/part_3/spec/buying_process_spec.rb +24 -0
  206. data/full-examples/rest_from_scratch/part_3/spec/client/buying_process.rb +23 -0
  207. data/full-examples/rest_from_scratch/part_3/spec/client/scenarios/buying_process.scenario +15 -0
  208. data/full-examples/rest_from_scratch/part_3/spec/client/steps/buying_process.rb +56 -0
  209. data/full-examples/rest_from_scratch/part_3/spec/full_cycle_spec.rb +30 -0
  210. data/full-examples/rest_from_scratch/part_3/spec/items_spec.rb +31 -0
  211. data/full-examples/rest_from_scratch/part_3/spec/spec_helper.rb +27 -0
  212. data/full-examples/rest_from_scratch/part_3/test/fixtures/items.yml +9 -0
  213. data/full-examples/rest_from_scratch/part_3/test/functional/items_controller_test.rb +49 -0
  214. data/full-examples/rest_from_scratch/part_3/test/performance/browsing_test.rb +9 -0
  215. data/full-examples/rest_from_scratch/part_3/test/test_helper.rb +13 -0
  216. data/full-examples/rest_from_scratch/part_3/test/unit/helpers/items_helper_test.rb +4 -0
  217. data/full-examples/rest_from_scratch/part_3/test/unit/item_test.rb +8 -0
  218. data/full-examples/rest_from_scratch/part_3/vendor/plugins/.gitkeep +0 -0
  219. data/init.rb +1 -0
  220. data/lib/restfulie/client/README.textile +33 -0
  221. data/lib/restfulie/client/base.rb +36 -0
  222. data/lib/restfulie/client/cache/basic.rb +78 -0
  223. data/lib/restfulie/client/cache/fake.rb +15 -0
  224. data/lib/restfulie/client/cache/http_ext.rb +123 -0
  225. data/lib/restfulie/client/cache/restrictions.rb +15 -0
  226. data/lib/restfulie/client/cache.rb +11 -0
  227. data/lib/restfulie/client/configuration.rb +67 -0
  228. data/lib/restfulie/client/dsl.rb +52 -0
  229. data/lib/restfulie/client/entry_point.rb +61 -0
  230. data/lib/restfulie/client/ext/http_ext.rb +22 -0
  231. data/lib/restfulie/client/ext/link_ext.rb +11 -0
  232. data/lib/restfulie/client/ext/open_search_ext.rb +26 -0
  233. data/lib/restfulie/client/ext.rb +3 -0
  234. data/lib/restfulie/client/feature/base.rb +75 -0
  235. data/lib/restfulie/client/feature/base_request.rb +46 -0
  236. data/lib/restfulie/client/feature/cache.rb +16 -0
  237. data/lib/restfulie/client/feature/conneg_when_unaccepted.rb +25 -0
  238. data/lib/restfulie/client/feature/enhance_response.rb +12 -0
  239. data/lib/restfulie/client/feature/fake_response.rb +13 -0
  240. data/lib/restfulie/client/feature/follow_request.rb +59 -0
  241. data/lib/restfulie/client/feature/history.rb +26 -0
  242. data/lib/restfulie/client/feature/history_request.rb +17 -0
  243. data/lib/restfulie/client/feature/open_search/pattern_matcher.rb +25 -0
  244. data/lib/restfulie/client/feature/open_search.rb +21 -0
  245. data/lib/restfulie/client/feature/rescue_exception.rb +13 -0
  246. data/lib/restfulie/client/feature/retry_when_unavailable.rb +25 -0
  247. data/lib/restfulie/client/feature/serialize_body.rb +35 -0
  248. data/lib/restfulie/client/feature/setup_header.rb +22 -0
  249. data/lib/restfulie/client/feature/throw_error_request.rb +46 -0
  250. data/lib/restfulie/client/feature/verb.rb +112 -0
  251. data/lib/restfulie/client/feature.rb +5 -0
  252. data/lib/restfulie/client/http/cache.rb +28 -0
  253. data/lib/restfulie/client/http/error.rb +77 -0
  254. data/lib/restfulie/client/http/link_header.rb +39 -0
  255. data/lib/restfulie/client/http/response_holder.rb +29 -0
  256. data/lib/restfulie/client/http.rb +7 -0
  257. data/lib/restfulie/client/master_delegator.rb +31 -0
  258. data/lib/restfulie/client/mikyung/concatenator.rb +18 -0
  259. data/lib/restfulie/client/mikyung/core.rb +71 -0
  260. data/lib/restfulie/client/mikyung/languages/german.rb +24 -0
  261. data/lib/restfulie/client/mikyung/languages/portuguese.rb +23 -0
  262. data/lib/restfulie/client/mikyung/languages.rb +11 -0
  263. data/lib/restfulie/client/mikyung/rest_process_model.rb +191 -0
  264. data/lib/restfulie/client/mikyung/steady_state_walker.rb +38 -0
  265. data/lib/restfulie/client/mikyung/then_condition.rb +39 -0
  266. data/lib/restfulie/client/mikyung/when_condition.rb +57 -0
  267. data/lib/restfulie/client/mikyung.rb +15 -0
  268. data/lib/restfulie/client/stack_navigator.rb +39 -0
  269. data/lib/restfulie/client.rb +24 -0
  270. data/lib/restfulie/common/error.rb +19 -0
  271. data/lib/restfulie/common/logger.rb +19 -0
  272. data/lib/restfulie/common.rb +17 -0
  273. data/lib/restfulie/server/action_controller/base.rb +46 -0
  274. data/lib/restfulie/server/action_controller/params_parser.rb +100 -0
  275. data/lib/restfulie/server/action_controller/patch.rb +6 -0
  276. data/lib/restfulie/server/action_controller/restful_responder.rb +12 -0
  277. data/lib/restfulie/server/action_controller/trait/cacheable.rb +94 -0
  278. data/lib/restfulie/server/action_controller/trait/created.rb +17 -0
  279. data/lib/restfulie/server/action_controller/trait/save_prior_to_create.rb +13 -0
  280. data/lib/restfulie/server/action_controller/trait.rb +9 -0
  281. data/lib/restfulie/server/action_controller.rb +11 -0
  282. data/lib/restfulie/server/configuration.rb +24 -0
  283. data/lib/restfulie/server/controller.rb +74 -0
  284. data/lib/restfulie/server/core_ext/array.rb +35 -0
  285. data/lib/restfulie/server/core_ext.rb +1 -0
  286. data/lib/restfulie/server/hypertemplate.rb +3 -0
  287. data/lib/restfulie/server.rb +26 -0
  288. data/lib/restfulie/version.rb +14 -0
  289. data/lib/restfulie.rb +34 -0
  290. data/restfulie-nosqlite.gemspec +39 -0
  291. data/script/console +8 -0
  292. data/site/README +1 -0
  293. data/site/Rakefile +10 -0
  294. data/site/app/controllers/application_controller.rb +11 -0
  295. data/site/app/controllers/java_controller.rb +53 -0
  296. data/site/app/controllers/javascript_controller.rb +12 -0
  297. data/site/app/controllers/restful_csharp_controller.rb +12 -0
  298. data/site/app/controllers/ruby_controller.rb +24 -0
  299. data/site/app/controllers/systems_controller.rb +14 -0
  300. data/site/app/helpers/application_helper.rb +10 -0
  301. data/site/app/helpers/documentation_helper.rb +2 -0
  302. data/site/app/views/java/features.html.erb +99 -0
  303. data/site/app/views/java/hypermedia.html.erb +97 -0
  304. data/site/app/views/java/server.html.erb +0 -0
  305. data/site/app/views/layouts/_blackmenu.html.erb +11 -0
  306. data/site/app/views/layouts/_uppermenu.html.erb +24 -0
  307. data/site/app/views/layouts/application.html.erb +50 -0
  308. data/site/app/views/layouts/java.html.erb +72 -0
  309. data/site/app/views/layouts/javascript.html.erb +62 -0
  310. data/site/app/views/layouts/restful_csharp.html.erb +81 -0
  311. data/site/app/views/layouts/restful_java.html.erb +87 -0
  312. data/site/app/views/shared/_examples.html.erb +29 -0
  313. data/site/app/views/shared/_negotiation.html.erb +9 -0
  314. data/site/app/views/shared/_simple_representation.html.erb +37 -0
  315. data/site/app/views/systems/features.html.erb +106 -0
  316. data/site/app/views/systems/index.html.erb +97 -0
  317. data/site/app/views/systems/support.html.erb +54 -0
  318. data/site/config/boot.rb +110 -0
  319. data/site/config/database.yml +22 -0
  320. data/site/config/environment.rb +41 -0
  321. data/site/config/environments/development.rb +17 -0
  322. data/site/config/environments/production.rb +28 -0
  323. data/site/config/environments/test.rb +28 -0
  324. data/site/config/initializers/backtrace_silencers.rb +7 -0
  325. data/site/config/initializers/inflections.rb +10 -0
  326. data/site/config/initializers/mime_types.rb +5 -0
  327. data/site/config/initializers/new_rails_defaults.rb +21 -0
  328. data/site/config/initializers/session_store.rb +15 -0
  329. data/site/config/locales/en.yml +5 -0
  330. data/site/config/routes.rb +56 -0
  331. data/site/db/seeds.rb +7 -0
  332. data/site/public/404.html +30 -0
  333. data/site/public/422.html +30 -0
  334. data/site/public/500.html +30 -0
  335. data/site/public/caelumobjects-restful-rails.pdf +0 -0
  336. data/site/public/docs.html +164 -0
  337. data/site/public/favicon.ico +0 -0
  338. data/site/public/images/bgBarHome-trans.png +0 -0
  339. data/site/public/images/bgHeader.png +0 -0
  340. data/site/public/images/bgSubMenu-trans.png +0 -0
  341. data/site/public/images/code_java_01.png +0 -0
  342. data/site/public/images/code_java_02.png +0 -0
  343. data/site/public/images/code_net_01.png +0 -0
  344. data/site/public/images/code_net_02.png +0 -0
  345. data/site/public/images/code_ruby_01.png +0 -0
  346. data/site/public/images/code_ruby_02.png +0 -0
  347. data/site/public/images/dependency.png +0 -0
  348. data/site/public/images/ldl-trans.png +0 -0
  349. data/site/public/images/leftBGBtn.png +0 -0
  350. data/site/public/images/logoCaelumGray-trans.png +0 -0
  351. data/site/public/images/negotiation.png +0 -0
  352. data/site/public/images/rails.png +0 -0
  353. data/site/public/images/restfulieSprites-trans.png +0 -0
  354. data/site/public/images/rightBGBtn.png +0 -0
  355. data/site/public/images/service.png +0 -0
  356. data/site/public/images/subMenuBottom-trans.png +0 -0
  357. data/site/public/images/subMenuTop-trans.png +0 -0
  358. data/site/public/javascripts/application.js +2 -0
  359. data/site/public/javascripts/controls.js +963 -0
  360. data/site/public/javascripts/dragdrop.js +973 -0
  361. data/site/public/javascripts/effects.js +1128 -0
  362. data/site/public/javascripts/prototype.js +4320 -0
  363. data/site/public/robots.txt +5 -0
  364. data/site/public/stylesheets/menu.css +98 -0
  365. data/site/public/stylesheets/screen.css +345 -0
  366. data/site/public/stylesheets/uppermenu.css +87 -0
  367. data/site/script/about +4 -0
  368. data/site/script/console +3 -0
  369. data/site/script/dbconsole +3 -0
  370. data/site/script/destroy +3 -0
  371. data/site/script/generate +3 -0
  372. data/site/script/performance/benchmarker +3 -0
  373. data/site/script/performance/profiler +3 -0
  374. data/site/script/plugin +3 -0
  375. data/site/script/runner +3 -0
  376. data/site/script/server +3 -0
  377. data/site/test/functional/documentation_controller_test.rb +8 -0
  378. data/site/test/performance/browsing_test.rb +9 -0
  379. data/site/test/test_helper.rb +38 -0
  380. data/site/test/unit/helpers/documentation_helper_test.rb +4 -0
  381. data/spec/integration/twitter.rb +945 -0
  382. data/spec/integration/twitter_spec.rb +24 -0
  383. data/spec/spec_helper.rb +4 -0
  384. data/spec/unit/client/base_spec.rb +9 -0
  385. data/spec/unit/client/cache/fake_spec.rb +23 -0
  386. data/spec/unit/client/cache/http_ext_spec.rb +182 -0
  387. data/spec/unit/client/cache/restrictions_spec.rb +24 -0
  388. data/spec/unit/client/configuration_spec.rb +54 -0
  389. data/spec/unit/client/ext/open_search_spec.rb +28 -0
  390. data/spec/unit/client/feature/conneg_when_unaccepted_spec.rb +45 -0
  391. data/spec/unit/client/feature/open_search/pattern_matcher_spec.rb +21 -0
  392. data/spec/unit/client/feature/rescue_exception_spec.rb +27 -0
  393. data/spec/unit/client/feature/retry_when_unavailable_spec.rb +38 -0
  394. data/spec/unit/client/feature/verb_spec.rb +37 -0
  395. data/spec/unit/client/http/link_header_spec.rb +43 -0
  396. data/spec/unit/client/mikyung/concatenator_spec.rb +14 -0
  397. data/spec/unit/client/mikyung/rest_process_model_spec.rb +140 -0
  398. data/spec/unit/client/mikyung/steady_state_walker_spec.rb +39 -0
  399. data/spec/unit/client/mikyung/then_condition_spec.rb +38 -0
  400. data/spec/unit/client/mikyung/when_condition_spec.rb +59 -0
  401. data/spec/unit/client/mikyung_spec.rb +72 -0
  402. data/spec/unit/client/stack_navigator.rb +75 -0
  403. data/spec/unit/common/errors_spec.rb +33 -0
  404. data/spec/unit/restfulie_spec.rb +30 -0
  405. data/spec/unit/server/action_controller/trait/cacheable_spec.rb +48 -0
  406. data/spec/unit/server/action_controller/trait/created_spec.rb +50 -0
  407. data/spec/unit/server/configuration_spec.rb +36 -0
  408. data/spec/unit/server/core_ext/array_spec.rb +35 -0
  409. data/spec/unit/server/restfulie_controller_spec.rb +110 -0
  410. data/spec/unit/spec_helper.rb +1 -0
  411. data/tests/.gitignore +5 -0
  412. data/tests/.rspec +1 -0
  413. data/tests/Gemfile +42 -0
  414. data/tests/README +256 -0
  415. data/tests/Rakefile +7 -0
  416. data/tests/app/controllers/albums_controller.rb +10 -0
  417. data/tests/app/controllers/application_controller.rb +3 -0
  418. data/tests/app/controllers/artists_controller.rb +12 -0
  419. data/tests/app/controllers/cacheable_songs_controller.rb +28 -0
  420. data/tests/app/controllers/projects_controller.rb +13 -0
  421. data/tests/app/controllers/render_controller.rb +15 -0
  422. data/tests/app/controllers/songs_controller.rb +2 -0
  423. data/tests/app/helpers/albums_helper.rb +2 -0
  424. data/tests/app/helpers/application_helper.rb +2 -0
  425. data/tests/app/helpers/artists_helper.rb +2 -0
  426. data/tests/app/helpers/cacheable_clients_helper.rb +2 -0
  427. data/tests/app/helpers/projects_helper.rb +2 -0
  428. data/tests/app/helpers/render_helper.rb +2 -0
  429. data/tests/app/helpers/songs_helper.rb +2 -0
  430. data/tests/app/models/album.rb +4 -0
  431. data/tests/app/models/artist.rb +2 -0
  432. data/tests/app/models/song.rb +3 -0
  433. data/tests/app/views/albums/_member.tokamak +11 -0
  434. data/tests/app/views/albums/index.tokamak +26 -0
  435. data/tests/app/views/albums/show.tokamak +3 -0
  436. data/tests/app/views/artists/_form.html.erb +25 -0
  437. data/tests/app/views/artists/edit.html.erb +6 -0
  438. data/tests/app/views/artists/index.html.erb +25 -0
  439. data/tests/app/views/artists/new.html.erb +5 -0
  440. data/tests/app/views/artists/show.html.erb +15 -0
  441. data/tests/app/views/cacheable_clients/collection.tokamak +0 -0
  442. data/tests/app/views/cacheable_clients/empty.tokamak +0 -0
  443. data/tests/app/views/cacheable_clients/single.tokamak +0 -0
  444. data/tests/app/views/layouts/application.html.erb +14 -0
  445. data/tests/app/views/projects/index.atom.tokamak +14 -0
  446. data/tests/app/views/projects/new.atom.tokamak +7 -0
  447. data/tests/app/views/projects/new.tokamak +0 -0
  448. data/tests/app/views/projects/show.tokamak +7 -0
  449. data/tests/autotest/discover.rb +2 -0
  450. data/tests/config/application.rb +42 -0
  451. data/tests/config/boot.rb +13 -0
  452. data/tests/config/database.yml +22 -0
  453. data/tests/config/environment.rb +5 -0
  454. data/tests/config/environments/development.rb +22 -0
  455. data/tests/config/environments/production.rb +49 -0
  456. data/tests/config/environments/test.rb +35 -0
  457. data/tests/config/initializers/backtrace_silencers.rb +7 -0
  458. data/tests/config/initializers/inflections.rb +10 -0
  459. data/tests/config/initializers/mime_types.rb +5 -0
  460. data/tests/config/initializers/secret_token.rb +7 -0
  461. data/tests/config/initializers/session_store.rb +8 -0
  462. data/tests/config/locales/en.yml +5 -0
  463. data/tests/config/routes.rb +66 -0
  464. data/tests/config.ru +4 -0
  465. data/tests/db/migrate/20100817165415_create_albums.rb +15 -0
  466. data/tests/db/migrate/20100817165436_create_songs.rb +16 -0
  467. data/tests/db/migrate/20100819165238_create_artists.rb +14 -0
  468. data/tests/db/schema.rb +39 -0
  469. data/tests/db/seeds.rb +7 -0
  470. data/tests/lib/tasks/.gitkeep +0 -0
  471. data/tests/public/404.html +26 -0
  472. data/tests/public/422.html +26 -0
  473. data/tests/public/500.html +26 -0
  474. data/tests/public/favicon.ico +0 -0
  475. data/tests/public/images/rails.png +0 -0
  476. data/tests/public/index.html +262 -0
  477. data/tests/public/javascripts/application.js +2 -0
  478. data/tests/public/javascripts/controls.js +965 -0
  479. data/tests/public/javascripts/dragdrop.js +974 -0
  480. data/tests/public/javascripts/effects.js +1123 -0
  481. data/tests/public/javascripts/prototype.js +6001 -0
  482. data/tests/public/javascripts/rails.js +175 -0
  483. data/tests/public/robots.txt +5 -0
  484. data/tests/public/stylesheets/.gitkeep +0 -0
  485. data/tests/public/stylesheets/scaffold.css +56 -0
  486. data/tests/script/rails +6 -0
  487. data/tests/spec/controllers/integration/albums_controller_spec.rb +60 -0
  488. data/tests/spec/controllers/integration/cacheable_songs_controller_spec.rb +43 -0
  489. data/tests/spec/controllers/integration/controller_base_spec.rb +35 -0
  490. data/tests/spec/controllers/integration/created_responder_spec.rb +35 -0
  491. data/tests/spec/controllers/integration/params_parser_spec.rb +150 -0
  492. data/tests/spec/controllers/integration/projects_controller_spec.rb +30 -0
  493. data/tests/spec/requests/_integration_client.txt +1 -0
  494. data/tests/spec/requests/base_spec.rb2 +142 -0
  495. data/tests/spec/requests/fake_server.rb +107 -0
  496. data/tests/spec/requests/http/adapter_spec.rb +105 -0
  497. data/tests/spec/requests/http/content_type_spec.rb +88 -0
  498. data/tests/spec/requests/http/errors_spec.rb +130 -0
  499. data/tests/spec/requests/http/history_spec.rb +56 -0
  500. data/tests/spec/requests/http/marshal_spec.rb2 +113 -0
  501. data/tests/spec/requests/http/parameters_spec.rb +12 -0
  502. data/tests/spec/spec.opts +5 -0
  503. data/tests/spec/spec_helper.rb +61 -0
  504. data/tests/spec/support/atoms/full.rb.txt +63 -0
  505. data/tests/spec/support/atoms/related_songs +30 -0
  506. data/tests/spec/support/atoms/song_1 +11 -0
  507. data/tests/spec/support/atoms/song_2 +11 -0
  508. data/tests/spec/support/atoms/song_3 +11 -0
  509. data/tests/spec/support/atoms/song_4 +11 -0
  510. data/tests/spec/support/atoms/songs +51 -0
  511. data/tests/spec/support/atoms/songs_top_ten +27 -0
  512. data/tests/spec/support/data_helper.rb +13 -0
  513. data/tests/test/performance/browsing_test.rb +9 -0
  514. data/tests/test/test_helper.rb +13 -0
  515. data/tests/vendor/plugins/.gitkeep +0 -0
  516. metadata +657 -0
@@ -0,0 +1,56 @@
1
+ ActionController::Routing::Routes.draw do |map|
2
+
3
+ map.root :controller => :systems, :action => :index
4
+ map.benefits '/talking_about_restfulie', :controller => :systems, :action => :benefits
5
+ map.support '/support', :controller => :systems, :action => :support
6
+ map.rest '/what_is_rest_and_hateoas', :controller => :systems, :action => :rest
7
+ map.java '/java', :controller => :java, :action => :index
8
+ map.rails '/ruby', :controller => :ruby, :action => :index
9
+ map.csharp '/restful_csharp', :controller => :restful_csharp, :action => :installing
10
+ map.features '/restfulie_features', :controller => :systems, :action => :restfulie_features
11
+
12
+ # compatibility, do not remove
13
+ map.rest_rails '/restful_rails', :controller => :rails, :action => :index
14
+
15
+ # The priority is based upon order of creation: first created -> highest priority.
16
+
17
+ # Sample of regular route:
18
+ # map.connect 'products/:id', :controller => 'catalog', :action => 'view'
19
+ # Keep in mind you can assign values other than :controller and :action
20
+
21
+ # Sample of named route:
22
+ # map.purchase 'products/:id/purchase', :controller => 'catalog', :action => 'purchase'
23
+ # This route can be invoked with purchase_url(:id => product.id)
24
+
25
+ # Sample resource route (maps HTTP verbs to controller actions automatically):
26
+ # map.resources :products
27
+
28
+ # Sample resource route with options:
29
+ # map.resources :products, :member => { :short => :get, :toggle => :post }, :collection => { :sold => :get }
30
+
31
+ # Sample resource route with sub-resources:
32
+ # map.resources :products, :has_many => [ :comments, :sales ], :has_one => :seller
33
+
34
+ # Sample resource route with more complex sub-resources
35
+ # map.resources :products do |products|
36
+ # products.resources :comments
37
+ # products.resources :sales, :collection => { :recent => :get }
38
+ # end
39
+
40
+ # Sample resource route within a namespace:
41
+ # map.namespace :admin do |admin|
42
+ # # Directs /admin/products/* to Admin::ProductsController (app/controllers/admin/products_controller.rb)
43
+ # admin.resources :products
44
+ # end
45
+
46
+ # You can have the root of your site routed with map.root -- just remember to delete public/index.html.
47
+ # map.root :controller => "welcome"
48
+
49
+ # See how all your routes lay out with "rake routes"
50
+
51
+ # Install the default routes as the lowest priority.
52
+ # Note: These default routes make all actions in every controller accessible via GET requests. You should
53
+ # consider removing or commenting them out if you're using named routes and resources.
54
+ map.connect ':controller/:action'
55
+ # map.connect ':controller/:action/:id.:format'
56
+ end
data/site/db/seeds.rb ADDED
@@ -0,0 +1,7 @@
1
+ # This file should contain all the record creation needed to seed the database with its default values.
2
+ # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
+ #
4
+ # Examples:
5
+ #
6
+ # cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
7
+ # Major.create(:name => 'Daley', :city => cities.first)
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+
6
+ <head>
7
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
+ <title>The page you were looking for doesn't exist (404)</title>
9
+ <style type="text/css">
10
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
+ div.dialog {
12
+ width: 25em;
13
+ padding: 0 4em;
14
+ margin: 4em auto 0 auto;
15
+ border: 1px solid #ccc;
16
+ border-right-color: #999;
17
+ border-bottom-color: #999;
18
+ }
19
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
+ </style>
21
+ </head>
22
+
23
+ <body>
24
+ <!-- This file lives in public/404.html -->
25
+ <div class="dialog">
26
+ <h1>The page you were looking for doesn't exist.</h1>
27
+ <p>You may have mistyped the address or the page may have moved.</p>
28
+ </div>
29
+ </body>
30
+ </html>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+
6
+ <head>
7
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
+ <title>The change you wanted was rejected (422)</title>
9
+ <style type="text/css">
10
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
+ div.dialog {
12
+ width: 25em;
13
+ padding: 0 4em;
14
+ margin: 4em auto 0 auto;
15
+ border: 1px solid #ccc;
16
+ border-right-color: #999;
17
+ border-bottom-color: #999;
18
+ }
19
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
+ </style>
21
+ </head>
22
+
23
+ <body>
24
+ <!-- This file lives in public/422.html -->
25
+ <div class="dialog">
26
+ <h1>The change you wanted was rejected.</h1>
27
+ <p>Maybe you tried to change something you didn't have access to.</p>
28
+ </div>
29
+ </body>
30
+ </html>
@@ -0,0 +1,30 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+
6
+ <head>
7
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
8
+ <title>We're sorry, but something went wrong (500)</title>
9
+ <style type="text/css">
10
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
11
+ div.dialog {
12
+ width: 25em;
13
+ padding: 0 4em;
14
+ margin: 4em auto 0 auto;
15
+ border: 1px solid #ccc;
16
+ border-right-color: #999;
17
+ border-bottom-color: #999;
18
+ }
19
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
20
+ </style>
21
+ </head>
22
+
23
+ <body>
24
+ <!-- This file lives in public/500.html -->
25
+ <div class="dialog">
26
+ <h1>We're sorry, but something went wrong.</h1>
27
+ <p>We've been notified about this issue and we'll take a look at it shortly.</p>
28
+ </div>
29
+ </body>
30
+ </html>
@@ -0,0 +1,164 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5
+ <title>restfulie</title>
6
+ <link href="screen.css" rel="stylesheet" type="text/css" media="screen" />
7
+ <link href="menu.css" rel="stylesheet" type="text/css" media="screen" />
8
+ <!--[if lt IE 7]>
9
+ <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script>
10
+ <![endif]-->
11
+ </head>
12
+
13
+ <body>
14
+ <div id="headerWrap">
15
+ <div id="headerContent">
16
+ <h1 id="logoRestfulie"><span>restfulie</span></h1><!-- vraptorlogo-->
17
+
18
+ <ul id="langMenu">
19
+ <li><a id="engBtn" href="#.html"><span>ENGLISH</span></a></li>
20
+ <li><a id="ptBtn" href="#.html"><span>PORTUGUES</span></a></li>
21
+ </ul><!-- langMenu-->
22
+ </div><!-- header content -->
23
+ </div><!-- header wrap-->
24
+
25
+ <div id="menuWrap">
26
+ <ul id="menuElements">
27
+ <li><a href="index.html"><span>home</span></a></li>
28
+ <li><a href="documentacao.html"><span>documentação</span></a></li>
29
+ <li><a href="beneficios.html"><span>benefícios</span></a></li>
30
+ <li><a href="suporte.html"><span>suporte</span></a></li>
31
+ </ul><!-- menuElements-->
32
+ </div><!-- menuWrap-->
33
+
34
+ <div id="contentWrap">
35
+ <div id="contentDocumentacao">
36
+ <h2><span>documentação</span></h2>
37
+ <h3>documentação toda em português, configuração, migração e utilização.</h3>
38
+
39
+ <div id="subMenuDoc">
40
+ <img id="positionTop" src="images/subMenuTop-trans.png" />
41
+ <img id="positionBottom" src="images/subMenuBottom-trans.png" />
42
+ <ol type="1">
43
+ <li><a href="#.html">1-VRaptor3 - Guia de 1 minuto</a></li>
44
+ <li><a href="#.html">2-Configurações avancadas: sobrescrevendo as convenções e comportamento do VRaptor</a></li>
45
+ <li><a href="#.html">3-Resources-Rest</a></li>
46
+ <li><a href="#.html">4-Componentes</a></li>
47
+ </ol>
48
+ </div><!-- submenu-->
49
+
50
+ <div id="textoCapitulo">
51
+ <h2>VRaptor3 - Guia de 1 minuto</h2>
52
+ <p>O VRaptor 3 foca em simplicidade e, portanto, todas as funcionalidades que você verá têm como primeira meta resolver o problema do programador da maneira menos intrusiva possível em seu código. Tanto para salvar, remover, buscar e atualizar ou ainda funcionalidades que costumam ser mais complexas como upload e download de arquivos, resultados em formatos diferentes (xml, json, xhtml etc), tudo isso é feito através de funcionalidades simples do VRaptor 3, que sempre procuram encapsular HttpServletRequest, Response, Session e toda a API do javax.servlet.</p>
53
+ <h3>Começando um projeto</h3>
54
+ <p>Você pode começar seu projeto a partir do vraptor-blank-project, que contém as dependências necessárias e a configuração no web.xml para começar seu projeto.
55
+ Ele pode ser baixado em: <a href=" http://vraptor.caelum.com.br/download.html">http://vraptor.caelum.com.br/download.html</a></p>
56
+ <h3>Um controller simples</h3>
57
+ <p>Com o VRaptor configurado no seu web.xml, basta criar os seus controllers para receber as requisições e começar a construir seu sistema. Um controller simples seria:</p>
58
+ <pre>
59
+ /*
60
+ * anotando seu controller com @Resource, seus métodos públicos ficarão disponíveis
61
+ * para receber requisições web.
62
+ */
63
+ @Resource
64
+ public class ClientsController {
65
+
66
+ private ClientDao dao;
67
+
68
+ /*
69
+ * Você pode receber as dependências da sua classe no construtor, e o VRaptor vai
70
+ * se encarregar de criar ou localizar essas dependências pra você e usá-las pra
71
+ * criar o seu controller. Para que o VRaptor saiba como criar o ClientDao você
72
+ * deve anotá-lo com @Component.
73
+ */
74
+ public ClientsController(ClientDao dao) {
75
+ this.dao = dao;
76
+ }
77
+
78
+ /*
79
+ * Todos os métodos públicos do controller serão acessíveis via web.
80
+ * Neste caso, o método form estará acessível pela URI /clients/form,
81
+ * e a view padrão será /WEB-INF/jsp/clients/form.jsp
82
+ */
83
+ public void form() {
84
+ }
85
+
86
+ /*
87
+ * Você pode receber parâmetros no seu método, e o VRaptor vai tentar popular os
88
+ * campos dos parâmetro de acordo com a requisição. Se houver na requisição:
89
+ * custom.name=Lucas
90
+ * custom.address=R.Vergueiro
91
+ * então teremos os campos name e address do Client custom estarão populados com
92
+ * Lucas e R.Vergueiro via getters e setters
93
+ * URI: /clients/add
94
+ * view: /WEB-INF/jsp/clients/add.jsp
95
+ */
96
+ public void add(Client custom) {
97
+ dao.save(custom);
98
+ }
99
+
100
+ /*
101
+ * O retorno do seu método é exportado para a view. Nesse caso, como o retorno é
102
+ * uma lista de clientes, a variável acessível no jsp será ${clientList}.
103
+ * URI: /clients/list
104
+ * view: /WEB-INF/jsp/clients/list.jsp
105
+ */
106
+ public List<Client> list() {
107
+ return dao.listAll():
108
+ }
109
+
110
+ /*
111
+ * Se o retorno for um tipo simples, o nome da variável exportada será o nome da
112
+ * classe com a primeira letra minúscula. Nesse caso, como retornou um Client, a
113
+ * variável na jsp será ${client}.
114
+ * Devemos ter um parâmetro da requisição id=5 por exemplo, e o VRaptor vai
115
+ * fazer a conversão do parâmetro em Long, e passar como parâmetro do método.
116
+ * URI: /clients/view
117
+ * view: /WEB-INF/jsp/clients/view.jsp
118
+ */
119
+ public Client view(Long id) {
120
+ return dao.load(id);
121
+ }
122
+ }
123
+ </pre>
124
+ <p>Para uma introdução mais detalhada, veja o Guia inicial de 10 minutos. </p>
125
+ </div><!-- content -->
126
+
127
+ </div><!-- content cnt -->
128
+ </div><!-- content wrap-->
129
+
130
+ <div id="footerWrap">
131
+ <div id="footerContent">
132
+ <div class="footbar">
133
+ <img class="logoFooter" src="images/logoCaelumGray-trans.png" alt="vraptor logo" />
134
+ <ul>
135
+ <li>site map:</li>
136
+ <li><a href="index.html">home</a></li>
137
+ <li>|</li>
138
+ <li><a href="rest.html">rest</a></li>
139
+ <li>|</li>
140
+ <li><a href="rails.html">rails</a></li>
141
+ <li>|</li>
142
+ <li><a href="java.html">java</a></li>
143
+ <li>|</li>
144
+ <li><a href="suporte.html">suporte</a></li>
145
+ </ul>
146
+ <p><a href="#.html">licença de uso</a> - Restfulie ©2009 Caelum - Ensino e Inovação</p>
147
+ </div><!-- footnote-->
148
+ </div><!-- footer content -->
149
+ <a id="signature" href="mailto:lokidg@gmail.com">loki|design</a>
150
+ </div><!-- footer wrap-->
151
+ <script type="text/javascript">
152
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
153
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
154
+ </script>
155
+
156
+ <script type="text/javascript">
157
+ try {
158
+ var pageTracker = _gat._getTracker("UA-270161-11");
159
+ pageTracker._trackPageview();
160
+ } catch(err) {}
161
+ </script>
162
+
163
+ </body>
164
+ </html>
File without changes
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,2 @@
1
+ // Place your application-specific JavaScript functions and classes here
2
+ // This file is automatically included by javascript_include_tag :defaults