restfulie 1.0.0 → 1.0.3

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 (452) hide show
  1. data/.gitignore +20 -0
  2. data/.gitmodules +3 -0
  3. data/.rspec +2 -0
  4. data/Rakefile +9 -41
  5. data/full-examples/.gitignore +4 -0
  6. data/full-examples/README.textile +1 -0
  7. data/full-examples/mikemaze/README.textile +6 -0
  8. data/full-examples/mikemaze/maze_basic.rb +37 -0
  9. data/full-examples/mikemaze/maze_solver_spec.rb +108 -0
  10. data/full-examples/rest_from_scratch/part_1/.gitignore +4 -0
  11. data/full-examples/rest_from_scratch/part_1/.rspec +1 -0
  12. data/full-examples/rest_from_scratch/part_1/Gemfile +33 -0
  13. data/full-examples/rest_from_scratch/part_1/README +256 -0
  14. data/full-examples/rest_from_scratch/part_1/Rakefile +7 -0
  15. data/full-examples/rest_from_scratch/part_1/app/controllers/application_controller.rb +3 -0
  16. data/full-examples/rest_from_scratch/part_1/app/controllers/items_controller.rb +20 -0
  17. data/full-examples/rest_from_scratch/part_1/app/helpers/application_helper.rb +2 -0
  18. data/full-examples/rest_from_scratch/part_1/app/helpers/items_helper.rb +2 -0
  19. data/full-examples/rest_from_scratch/part_1/app/models/item.rb +2 -0
  20. data/full-examples/rest_from_scratch/part_1/app/views/items/_form.html.erb +25 -0
  21. data/full-examples/rest_from_scratch/part_1/app/views/items/edit.html.erb +6 -0
  22. data/full-examples/rest_from_scratch/part_1/app/views/items/index.html.erb +25 -0
  23. data/full-examples/rest_from_scratch/part_1/app/views/items/new.html.erb +5 -0
  24. data/full-examples/rest_from_scratch/part_1/app/views/items/show.html.erb +15 -0
  25. data/full-examples/rest_from_scratch/part_1/app/views/layouts/application.html.erb +14 -0
  26. data/full-examples/rest_from_scratch/part_1/autotest/discover.rb +1 -0
  27. data/full-examples/rest_from_scratch/part_1/config.ru +4 -0
  28. data/full-examples/rest_from_scratch/part_1/config/application.rb +42 -0
  29. data/full-examples/rest_from_scratch/part_1/config/boot.rb +13 -0
  30. data/full-examples/rest_from_scratch/part_1/config/database.yml +22 -0
  31. data/full-examples/rest_from_scratch/part_1/config/environment.rb +5 -0
  32. data/full-examples/rest_from_scratch/part_1/config/environments/development.rb +26 -0
  33. data/full-examples/rest_from_scratch/part_1/config/environments/production.rb +49 -0
  34. data/full-examples/rest_from_scratch/part_1/config/environments/test.rb +35 -0
  35. data/full-examples/rest_from_scratch/part_1/config/initializers/backtrace_silencers.rb +7 -0
  36. data/full-examples/rest_from_scratch/part_1/config/initializers/inflections.rb +10 -0
  37. data/full-examples/rest_from_scratch/part_1/config/initializers/mime_types.rb +5 -0
  38. data/full-examples/rest_from_scratch/part_1/config/initializers/secret_token.rb +7 -0
  39. data/full-examples/rest_from_scratch/part_1/config/initializers/session_store.rb +8 -0
  40. data/full-examples/rest_from_scratch/part_1/config/locales/en.yml +5 -0
  41. data/full-examples/rest_from_scratch/part_1/config/routes.rb +60 -0
  42. data/full-examples/rest_from_scratch/part_1/db/migrate/20100830171258_create_items.rb +14 -0
  43. data/full-examples/rest_from_scratch/part_1/db/schema.rb +22 -0
  44. data/full-examples/rest_from_scratch/part_1/db/seeds.rb +7 -0
  45. data/full-examples/rest_from_scratch/part_1/lib/tasks/.gitkeep +0 -0
  46. data/full-examples/rest_from_scratch/part_1/public/404.html +26 -0
  47. data/full-examples/rest_from_scratch/part_1/public/422.html +26 -0
  48. data/full-examples/rest_from_scratch/part_1/public/500.html +26 -0
  49. data/full-examples/rest_from_scratch/part_1/public/favicon.ico +0 -0
  50. data/full-examples/rest_from_scratch/part_1/public/images/rails.png +0 -0
  51. data/full-examples/rest_from_scratch/part_1/public/index.html +239 -0
  52. data/full-examples/rest_from_scratch/part_1/public/javascripts/application.js +2 -0
  53. data/full-examples/rest_from_scratch/part_1/public/javascripts/controls.js +965 -0
  54. data/full-examples/rest_from_scratch/part_1/public/javascripts/dragdrop.js +974 -0
  55. data/full-examples/rest_from_scratch/part_1/public/javascripts/effects.js +1123 -0
  56. data/full-examples/rest_from_scratch/part_1/public/javascripts/prototype.js +6001 -0
  57. data/full-examples/rest_from_scratch/part_1/public/javascripts/rails.js +175 -0
  58. data/full-examples/rest_from_scratch/part_1/public/robots.txt +5 -0
  59. data/full-examples/rest_from_scratch/part_1/public/stylesheets/.gitkeep +0 -0
  60. data/full-examples/rest_from_scratch/part_1/public/stylesheets/scaffold.css +56 -0
  61. data/full-examples/rest_from_scratch/part_1/script/rails +6 -0
  62. data/full-examples/rest_from_scratch/part_1/spec/items_spec.rb +31 -0
  63. data/full-examples/rest_from_scratch/part_1/spec/spec_helper.rb +27 -0
  64. data/full-examples/rest_from_scratch/part_1/test/fixtures/items.yml +9 -0
  65. data/full-examples/rest_from_scratch/part_1/test/functional/items_controller_test.rb +49 -0
  66. data/full-examples/rest_from_scratch/part_1/test/performance/browsing_test.rb +9 -0
  67. data/full-examples/rest_from_scratch/part_1/test/test_helper.rb +13 -0
  68. data/full-examples/rest_from_scratch/part_1/test/unit/helpers/items_helper_test.rb +4 -0
  69. data/full-examples/rest_from_scratch/part_1/test/unit/item_test.rb +8 -0
  70. data/full-examples/rest_from_scratch/part_1/vendor/plugins/.gitkeep +0 -0
  71. data/full-examples/rest_from_scratch/part_2/.gitignore +4 -0
  72. data/full-examples/rest_from_scratch/part_2/.rspec +1 -0
  73. data/full-examples/rest_from_scratch/part_2/Gemfile +34 -0
  74. data/full-examples/rest_from_scratch/part_2/README +256 -0
  75. data/full-examples/rest_from_scratch/part_2/Rakefile +7 -0
  76. data/full-examples/rest_from_scratch/part_2/app/controllers/application_controller.rb +3 -0
  77. data/full-examples/rest_from_scratch/part_2/app/controllers/baskets_controller.rb +25 -0
  78. data/full-examples/rest_from_scratch/part_2/app/controllers/items_controller.rb +20 -0
  79. data/full-examples/rest_from_scratch/part_2/app/controllers/payments_controller.rb +17 -0
  80. data/full-examples/rest_from_scratch/part_2/app/helpers/application_helper.rb +2 -0
  81. data/full-examples/rest_from_scratch/part_2/app/helpers/baskets_helper.rb +2 -0
  82. data/full-examples/rest_from_scratch/part_2/app/helpers/items_helper.rb +2 -0
  83. data/full-examples/rest_from_scratch/part_2/app/helpers/payments_helper.rb +2 -0
  84. data/full-examples/rest_from_scratch/part_2/app/models/basket.rb +11 -0
  85. data/full-examples/rest_from_scratch/part_2/app/models/item.rb +2 -0
  86. data/full-examples/rest_from_scratch/part_2/app/models/payment.rb +3 -0
  87. data/full-examples/rest_from_scratch/part_2/app/views/baskets/show.tokamak +9 -0
  88. data/full-examples/rest_from_scratch/part_2/app/views/items/_show.tokamak +6 -0
  89. data/full-examples/rest_from_scratch/part_2/app/views/items/index.tokamak +14 -0
  90. data/full-examples/rest_from_scratch/part_2/app/views/layouts/application.html.erb +14 -0
  91. data/full-examples/rest_from_scratch/part_2/autotest/discover.rb +1 -0
  92. data/full-examples/rest_from_scratch/part_2/config.ru +4 -0
  93. data/full-examples/rest_from_scratch/part_2/config/application.rb +42 -0
  94. data/full-examples/rest_from_scratch/part_2/config/boot.rb +13 -0
  95. data/full-examples/rest_from_scratch/part_2/config/database.yml +22 -0
  96. data/full-examples/rest_from_scratch/part_2/config/environment.rb +5 -0
  97. data/full-examples/rest_from_scratch/part_2/config/environments/development.rb +26 -0
  98. data/full-examples/rest_from_scratch/part_2/config/environments/production.rb +49 -0
  99. data/full-examples/rest_from_scratch/part_2/config/environments/test.rb +35 -0
  100. data/full-examples/rest_from_scratch/part_2/config/initializers/backtrace_silencers.rb +7 -0
  101. data/full-examples/rest_from_scratch/part_2/config/initializers/inflections.rb +10 -0
  102. data/full-examples/rest_from_scratch/part_2/config/initializers/mime_types.rb +5 -0
  103. data/full-examples/rest_from_scratch/part_2/config/initializers/secret_token.rb +7 -0
  104. data/full-examples/rest_from_scratch/part_2/config/initializers/session_store.rb +8 -0
  105. data/full-examples/rest_from_scratch/part_2/config/locales/en.yml +5 -0
  106. data/full-examples/rest_from_scratch/part_2/config/routes.rb +65 -0
  107. data/full-examples/rest_from_scratch/part_2/db/migrate/20100830171258_create_items.rb +16 -0
  108. data/full-examples/rest_from_scratch/part_2/db/migrate/20100830180139_create_baskets.rb +12 -0
  109. data/full-examples/rest_from_scratch/part_2/db/migrate/20100830180203_create_payments.rb +16 -0
  110. data/full-examples/rest_from_scratch/part_2/db/migrate/20100830185456_connect_baskets_to_items.rb +13 -0
  111. data/full-examples/rest_from_scratch/part_2/db/schema.rb +43 -0
  112. data/full-examples/rest_from_scratch/part_2/db/seeds.rb +7 -0
  113. data/full-examples/rest_from_scratch/part_2/lib/tasks/.gitkeep +0 -0
  114. data/full-examples/rest_from_scratch/part_2/public/404.html +26 -0
  115. data/full-examples/rest_from_scratch/part_2/public/422.html +26 -0
  116. data/full-examples/rest_from_scratch/part_2/public/500.html +26 -0
  117. data/full-examples/rest_from_scratch/part_2/public/favicon.ico +0 -0
  118. data/full-examples/rest_from_scratch/part_2/public/images/rails.png +0 -0
  119. data/full-examples/rest_from_scratch/part_2/public/index.html +239 -0
  120. data/full-examples/rest_from_scratch/part_2/public/javascripts/application.js +2 -0
  121. data/full-examples/rest_from_scratch/part_2/public/javascripts/controls.js +965 -0
  122. data/full-examples/rest_from_scratch/part_2/public/javascripts/dragdrop.js +974 -0
  123. data/full-examples/rest_from_scratch/part_2/public/javascripts/effects.js +1123 -0
  124. data/full-examples/rest_from_scratch/part_2/public/javascripts/prototype.js +6001 -0
  125. data/full-examples/rest_from_scratch/part_2/public/javascripts/rails.js +175 -0
  126. data/full-examples/rest_from_scratch/part_2/public/robots.txt +5 -0
  127. data/full-examples/rest_from_scratch/part_2/public/stylesheets/.gitkeep +0 -0
  128. data/full-examples/rest_from_scratch/part_2/public/stylesheets/scaffold.css +56 -0
  129. data/full-examples/rest_from_scratch/part_2/script/rails +6 -0
  130. data/full-examples/rest_from_scratch/part_2/spec/full_cycle_spec.rb +31 -0
  131. data/full-examples/rest_from_scratch/part_2/spec/items_spec.rb +31 -0
  132. data/full-examples/rest_from_scratch/part_2/spec/spec_helper.rb +27 -0
  133. data/full-examples/rest_from_scratch/part_2/test/fixtures/items.yml +9 -0
  134. data/full-examples/rest_from_scratch/part_2/test/functional/items_controller_test.rb +49 -0
  135. data/full-examples/rest_from_scratch/part_2/test/performance/browsing_test.rb +9 -0
  136. data/full-examples/rest_from_scratch/part_2/test/test_helper.rb +13 -0
  137. data/full-examples/rest_from_scratch/part_2/test/unit/helpers/items_helper_test.rb +4 -0
  138. data/full-examples/rest_from_scratch/part_2/test/unit/item_test.rb +8 -0
  139. data/full-examples/rest_from_scratch/part_2/vendor/plugins/.gitkeep +0 -0
  140. data/full-examples/rest_from_scratch/part_3/.gitignore +4 -0
  141. data/full-examples/rest_from_scratch/part_3/.rspec +1 -0
  142. data/full-examples/rest_from_scratch/part_3/Gemfile +33 -0
  143. data/full-examples/rest_from_scratch/part_3/README +256 -0
  144. data/full-examples/rest_from_scratch/part_3/Rakefile +7 -0
  145. data/full-examples/rest_from_scratch/part_3/app/controllers/application_controller.rb +3 -0
  146. data/full-examples/rest_from_scratch/part_3/app/controllers/baskets_controller.rb +34 -0
  147. data/full-examples/rest_from_scratch/part_3/app/controllers/items_controller.rb +20 -0
  148. data/full-examples/rest_from_scratch/part_3/app/controllers/payments_controller.rb +17 -0
  149. data/full-examples/rest_from_scratch/part_3/app/helpers/application_helper.rb +2 -0
  150. data/full-examples/rest_from_scratch/part_3/app/helpers/baskets_helper.rb +2 -0
  151. data/full-examples/rest_from_scratch/part_3/app/helpers/items_helper.rb +2 -0
  152. data/full-examples/rest_from_scratch/part_3/app/helpers/payments_helper.rb +2 -0
  153. data/full-examples/rest_from_scratch/part_3/app/models/basket.rb +11 -0
  154. data/full-examples/rest_from_scratch/part_3/app/models/item.rb +2 -0
  155. data/full-examples/rest_from_scratch/part_3/app/models/payment.rb +3 -0
  156. data/full-examples/rest_from_scratch/part_3/app/views/baskets/show.tokamak +9 -0
  157. data/full-examples/rest_from_scratch/part_3/app/views/items/_show.tokamak +6 -0
  158. data/full-examples/rest_from_scratch/part_3/app/views/items/index.tokamak +14 -0
  159. data/full-examples/rest_from_scratch/part_3/app/views/layouts/application.html.erb +14 -0
  160. data/full-examples/rest_from_scratch/part_3/autotest/discover.rb +1 -0
  161. data/full-examples/rest_from_scratch/part_3/config.ru +4 -0
  162. data/full-examples/rest_from_scratch/part_3/config/application.rb +42 -0
  163. data/full-examples/rest_from_scratch/part_3/config/boot.rb +13 -0
  164. data/full-examples/rest_from_scratch/part_3/config/database.yml +22 -0
  165. data/full-examples/rest_from_scratch/part_3/config/environment.rb +5 -0
  166. data/full-examples/rest_from_scratch/part_3/config/environments/development.rb +26 -0
  167. data/full-examples/rest_from_scratch/part_3/config/environments/production.rb +49 -0
  168. data/full-examples/rest_from_scratch/part_3/config/environments/test.rb +35 -0
  169. data/full-examples/rest_from_scratch/part_3/config/initializers/backtrace_silencers.rb +7 -0
  170. data/full-examples/rest_from_scratch/part_3/config/initializers/inflections.rb +10 -0
  171. data/full-examples/rest_from_scratch/part_3/config/initializers/mime_types.rb +5 -0
  172. data/full-examples/rest_from_scratch/part_3/config/initializers/secret_token.rb +7 -0
  173. data/full-examples/rest_from_scratch/part_3/config/initializers/session_store.rb +8 -0
  174. data/full-examples/rest_from_scratch/part_3/config/locales/en.yml +5 -0
  175. data/full-examples/rest_from_scratch/part_3/config/routes.rb +67 -0
  176. data/full-examples/rest_from_scratch/part_3/db/migrate/20100830171258_create_items.rb +16 -0
  177. data/full-examples/rest_from_scratch/part_3/db/migrate/20100830180139_create_baskets.rb +12 -0
  178. data/full-examples/rest_from_scratch/part_3/db/migrate/20100830180203_create_payments.rb +16 -0
  179. data/full-examples/rest_from_scratch/part_3/db/migrate/20100830185456_connect_baskets_to_items.rb +13 -0
  180. data/full-examples/rest_from_scratch/part_3/db/schema.rb +43 -0
  181. data/full-examples/rest_from_scratch/part_3/db/seeds.rb +7 -0
  182. data/full-examples/rest_from_scratch/part_3/lib/tasks/.gitkeep +0 -0
  183. data/full-examples/rest_from_scratch/part_3/public/404.html +26 -0
  184. data/full-examples/rest_from_scratch/part_3/public/422.html +26 -0
  185. data/full-examples/rest_from_scratch/part_3/public/500.html +26 -0
  186. data/full-examples/rest_from_scratch/part_3/public/favicon.ico +0 -0
  187. data/full-examples/rest_from_scratch/part_3/public/images/rails.png +0 -0
  188. data/full-examples/rest_from_scratch/part_3/public/index.html +239 -0
  189. data/full-examples/rest_from_scratch/part_3/public/javascripts/application.js +2 -0
  190. data/full-examples/rest_from_scratch/part_3/public/javascripts/controls.js +965 -0
  191. data/full-examples/rest_from_scratch/part_3/public/javascripts/dragdrop.js +974 -0
  192. data/full-examples/rest_from_scratch/part_3/public/javascripts/effects.js +1123 -0
  193. data/full-examples/rest_from_scratch/part_3/public/javascripts/prototype.js +6001 -0
  194. data/full-examples/rest_from_scratch/part_3/public/javascripts/rails.js +175 -0
  195. data/full-examples/rest_from_scratch/part_3/public/robots.txt +5 -0
  196. data/full-examples/rest_from_scratch/part_3/public/stylesheets/.gitkeep +0 -0
  197. data/full-examples/rest_from_scratch/part_3/public/stylesheets/scaffold.css +56 -0
  198. data/full-examples/rest_from_scratch/part_3/script/rails +6 -0
  199. data/full-examples/rest_from_scratch/part_3/spec/buying_process_spec.rb +24 -0
  200. data/full-examples/rest_from_scratch/part_3/spec/client/buying_process.rb +23 -0
  201. data/full-examples/rest_from_scratch/part_3/spec/client/scenarios/buying_process.scenario +15 -0
  202. data/full-examples/rest_from_scratch/part_3/spec/client/steps/buying_process.rb +56 -0
  203. data/full-examples/rest_from_scratch/part_3/spec/full_cycle_spec.rb +30 -0
  204. data/full-examples/rest_from_scratch/part_3/spec/items_spec.rb +31 -0
  205. data/full-examples/rest_from_scratch/part_3/spec/spec_helper.rb +27 -0
  206. data/full-examples/rest_from_scratch/part_3/test/fixtures/items.yml +9 -0
  207. data/full-examples/rest_from_scratch/part_3/test/functional/items_controller_test.rb +49 -0
  208. data/full-examples/rest_from_scratch/part_3/test/performance/browsing_test.rb +9 -0
  209. data/full-examples/rest_from_scratch/part_3/test/test_helper.rb +13 -0
  210. data/full-examples/rest_from_scratch/part_3/test/unit/helpers/items_helper_test.rb +4 -0
  211. data/full-examples/rest_from_scratch/part_3/test/unit/item_test.rb +8 -0
  212. data/full-examples/rest_from_scratch/part_3/vendor/plugins/.gitkeep +0 -0
  213. data/init.rb +1 -0
  214. data/lib/restfulie/client/README.textile +33 -0
  215. data/lib/restfulie/client/feature/fake_response.rb +13 -0
  216. data/lib/restfulie/client/feature/follow_request.rb +29 -11
  217. data/lib/restfulie/client/feature/{throw_error.rb → throw_error_request.rb} +3 -2
  218. data/lib/restfulie/client/feature/verb.rb +12 -19
  219. data/lib/restfulie/common.rb +1 -1
  220. data/lib/restfulie/server.rb +1 -1
  221. data/lib/restfulie/server/action_controller/base.rb +0 -2
  222. data/lib/restfulie/server/action_controller/restful_responder.rb +2 -2
  223. data/lib/restfulie/server/action_controller/trait/cacheable.rb +22 -9
  224. data/lib/restfulie/server/hypertemplate.rb +3 -0
  225. data/lib/restfulie/version.rb +2 -2
  226. data/restfulie.gemspec +42 -0
  227. data/script/console +8 -0
  228. data/site/README +1 -0
  229. data/site/Rakefile +10 -0
  230. data/site/app/controllers/application_controller.rb +11 -0
  231. data/site/app/controllers/java_controller.rb +53 -0
  232. data/site/app/controllers/javascript_controller.rb +12 -0
  233. data/site/app/controllers/restful_csharp_controller.rb +12 -0
  234. data/site/app/controllers/ruby_controller.rb +24 -0
  235. data/site/app/controllers/systems_controller.rb +14 -0
  236. data/site/app/helpers/application_helper.rb +10 -0
  237. data/site/app/helpers/documentation_helper.rb +2 -0
  238. data/site/app/views/java/features.html.erb +99 -0
  239. data/site/app/views/java/hypermedia.html.erb +97 -0
  240. data/site/app/views/java/server.html.erb +0 -0
  241. data/site/app/views/layouts/_blackmenu.html.erb +11 -0
  242. data/site/app/views/layouts/_uppermenu.html.erb +24 -0
  243. data/site/app/views/layouts/application.html.erb +50 -0
  244. data/site/app/views/layouts/java.html.erb +72 -0
  245. data/site/app/views/layouts/javascript.html.erb +62 -0
  246. data/site/app/views/layouts/restful_csharp.html.erb +81 -0
  247. data/site/app/views/layouts/restful_java.html.erb +87 -0
  248. data/site/app/views/shared/_examples.html.erb +29 -0
  249. data/site/app/views/shared/_negotiation.html.erb +9 -0
  250. data/site/app/views/shared/_simple_representation.html.erb +37 -0
  251. data/site/app/views/systems/features.html.erb +106 -0
  252. data/site/app/views/systems/index.html.erb +97 -0
  253. data/site/app/views/systems/support.html.erb +54 -0
  254. data/site/config/boot.rb +110 -0
  255. data/site/config/database.yml +22 -0
  256. data/site/config/environments/development.rb +17 -0
  257. data/site/config/environments/production.rb +28 -0
  258. data/site/config/environments/test.rb +28 -0
  259. data/site/config/initializers/backtrace_silencers.rb +7 -0
  260. data/site/config/initializers/inflections.rb +10 -0
  261. data/site/config/initializers/mime_types.rb +5 -0
  262. data/site/config/initializers/new_rails_defaults.rb +21 -0
  263. data/site/config/initializers/session_store.rb +15 -0
  264. data/site/config/locales/en.yml +5 -0
  265. data/site/config/routes.rb +56 -0
  266. data/site/db/seeds.rb +7 -0
  267. data/site/public/404.html +30 -0
  268. data/site/public/422.html +30 -0
  269. data/site/public/500.html +30 -0
  270. data/site/public/caelumobjects-restful-rails.pdf +0 -0
  271. data/site/public/docs.html +164 -0
  272. data/site/public/favicon.ico +0 -0
  273. data/site/public/images/bgBarHome-trans.png +0 -0
  274. data/site/public/images/bgHeader.png +0 -0
  275. data/site/public/images/bgSubMenu-trans.png +0 -0
  276. data/site/public/images/code_java_01.png +0 -0
  277. data/site/public/images/code_java_02.png +0 -0
  278. data/site/public/images/code_net_01.png +0 -0
  279. data/site/public/images/code_net_02.png +0 -0
  280. data/site/public/images/code_ruby_01.png +0 -0
  281. data/site/public/images/code_ruby_02.png +0 -0
  282. data/site/public/images/dependency.png +0 -0
  283. data/site/public/images/ldl-trans.png +0 -0
  284. data/site/public/images/leftBGBtn.png +0 -0
  285. data/site/public/images/logoCaelumGray-trans.png +0 -0
  286. data/site/public/images/negotiation.png +0 -0
  287. data/site/public/images/rails.png +0 -0
  288. data/site/public/images/restfulieSprites-trans.png +0 -0
  289. data/site/public/images/rightBGBtn.png +0 -0
  290. data/site/public/images/service.png +0 -0
  291. data/site/public/images/subMenuBottom-trans.png +0 -0
  292. data/site/public/images/subMenuTop-trans.png +0 -0
  293. data/site/public/javascripts/application.js +2 -0
  294. data/site/public/javascripts/controls.js +963 -0
  295. data/site/public/javascripts/dragdrop.js +973 -0
  296. data/site/public/javascripts/effects.js +1128 -0
  297. data/site/public/javascripts/prototype.js +4320 -0
  298. data/site/public/robots.txt +5 -0
  299. data/site/public/stylesheets/menu.css +98 -0
  300. data/site/public/stylesheets/screen.css +345 -0
  301. data/site/public/stylesheets/uppermenu.css +87 -0
  302. data/site/script/about +4 -0
  303. data/site/script/console +3 -0
  304. data/site/script/dbconsole +3 -0
  305. data/site/script/destroy +3 -0
  306. data/site/script/generate +3 -0
  307. data/site/script/performance/benchmarker +3 -0
  308. data/site/script/performance/profiler +3 -0
  309. data/site/script/plugin +3 -0
  310. data/site/script/runner +3 -0
  311. data/site/script/server +3 -0
  312. data/site/test/functional/documentation_controller_test.rb +8 -0
  313. data/site/test/performance/browsing_test.rb +9 -0
  314. data/site/test/test_helper.rb +38 -0
  315. data/site/test/unit/helpers/documentation_helper_test.rb +4 -0
  316. data/spec/integration/twitter.rb +945 -0
  317. data/spec/integration/twitter_spec.rb +24 -0
  318. data/spec/spec_helper.rb +4 -0
  319. data/spec/unit/client/base_spec.rb +9 -0
  320. data/spec/unit/client/cache/fake_spec.rb +23 -0
  321. data/spec/unit/client/cache/http_ext_spec.rb +182 -0
  322. data/spec/unit/client/cache/restrictions_spec.rb +24 -0
  323. data/spec/unit/client/configuration_spec.rb +54 -0
  324. data/spec/unit/client/ext/open_search_spec.rb +28 -0
  325. data/spec/unit/client/feature/conneg_when_unaccepted_spec.rb +45 -0
  326. data/spec/unit/client/feature/open_search/pattern_matcher_spec.rb +21 -0
  327. data/spec/unit/client/feature/rescue_exception_spec.rb +27 -0
  328. data/spec/unit/client/feature/retry_when_unavailable_spec.rb +38 -0
  329. data/spec/unit/client/feature/verb_spec.rb +37 -0
  330. data/spec/unit/client/http/link_header_spec.rb +43 -0
  331. data/spec/unit/client/mikyung/concatenator_spec.rb +14 -0
  332. data/spec/unit/client/mikyung/rest_process_model_spec.rb +140 -0
  333. data/spec/unit/client/mikyung/steady_state_walker_spec.rb +39 -0
  334. data/spec/unit/client/mikyung/then_condition_spec.rb +38 -0
  335. data/spec/unit/client/mikyung/when_condition_spec.rb +59 -0
  336. data/spec/unit/client/mikyung_spec.rb +72 -0
  337. data/spec/unit/client/stack_navigator.rb +75 -0
  338. data/spec/unit/common/errors_spec.rb +33 -0
  339. data/spec/unit/restfulie_spec.rb +30 -0
  340. data/spec/unit/server/action_controller/trait/cacheable_spec.rb +48 -0
  341. data/spec/unit/server/action_controller/trait/created_spec.rb +50 -0
  342. data/spec/unit/server/configuration_spec.rb +36 -0
  343. data/spec/unit/server/core_ext/array_spec.rb +35 -0
  344. data/spec/unit/server/restfulie_controller_spec.rb +110 -0
  345. data/spec/unit/spec_helper.rb +1 -0
  346. data/tests/.gitignore +5 -0
  347. data/tests/.rspec +1 -0
  348. data/tests/Gemfile +42 -0
  349. data/tests/README +256 -0
  350. data/tests/Rakefile +7 -0
  351. data/tests/app/controllers/albums_controller.rb +10 -0
  352. data/tests/app/controllers/application_controller.rb +3 -0
  353. data/tests/app/controllers/artists_controller.rb +12 -0
  354. data/tests/app/controllers/cacheable_songs_controller.rb +28 -0
  355. data/tests/app/controllers/projects_controller.rb +13 -0
  356. data/tests/app/controllers/render_controller.rb +15 -0
  357. data/tests/app/controllers/songs_controller.rb +2 -0
  358. data/tests/app/helpers/albums_helper.rb +2 -0
  359. data/tests/app/helpers/application_helper.rb +2 -0
  360. data/tests/app/helpers/artists_helper.rb +2 -0
  361. data/tests/app/helpers/cacheable_clients_helper.rb +2 -0
  362. data/tests/app/helpers/projects_helper.rb +2 -0
  363. data/tests/app/helpers/render_helper.rb +2 -0
  364. data/tests/app/helpers/songs_helper.rb +2 -0
  365. data/tests/app/models/album.rb +4 -0
  366. data/tests/app/models/artist.rb +2 -0
  367. data/tests/app/models/song.rb +3 -0
  368. data/tests/app/views/albums/_member.tokamak +11 -0
  369. data/tests/app/views/albums/index.tokamak +26 -0
  370. data/tests/app/views/albums/show.tokamak +3 -0
  371. data/tests/app/views/artists/_form.html.erb +25 -0
  372. data/tests/app/views/artists/edit.html.erb +6 -0
  373. data/tests/app/views/artists/index.html.erb +25 -0
  374. data/tests/app/views/artists/new.html.erb +5 -0
  375. data/tests/app/views/artists/show.html.erb +15 -0
  376. data/tests/app/views/cacheable_clients/collection.tokamak +0 -0
  377. data/tests/app/views/cacheable_clients/empty.tokamak +0 -0
  378. data/tests/app/views/cacheable_clients/single.tokamak +0 -0
  379. data/tests/app/views/layouts/application.html.erb +14 -0
  380. data/tests/app/views/projects/index.atom.tokamak +14 -0
  381. data/tests/app/views/projects/new.atom.tokamak +7 -0
  382. data/tests/app/views/projects/new.tokamak +0 -0
  383. data/tests/app/views/projects/show.tokamak +7 -0
  384. data/tests/autotest/discover.rb +2 -0
  385. data/tests/config.ru +4 -0
  386. data/tests/config/application.rb +42 -0
  387. data/tests/config/boot.rb +13 -0
  388. data/tests/config/database.yml +22 -0
  389. data/tests/config/environment.rb +5 -0
  390. data/tests/config/environments/development.rb +22 -0
  391. data/tests/config/environments/production.rb +49 -0
  392. data/tests/config/environments/test.rb +35 -0
  393. data/tests/config/initializers/backtrace_silencers.rb +7 -0
  394. data/tests/config/initializers/inflections.rb +10 -0
  395. data/tests/config/initializers/mime_types.rb +5 -0
  396. data/tests/config/initializers/secret_token.rb +7 -0
  397. data/tests/config/initializers/session_store.rb +8 -0
  398. data/tests/config/locales/en.yml +5 -0
  399. data/tests/config/routes.rb +66 -0
  400. data/tests/db/migrate/20100817165415_create_albums.rb +15 -0
  401. data/tests/db/migrate/20100817165436_create_songs.rb +16 -0
  402. data/tests/db/migrate/20100819165238_create_artists.rb +14 -0
  403. data/tests/db/schema.rb +39 -0
  404. data/tests/db/seeds.rb +7 -0
  405. data/tests/lib/tasks/.gitkeep +0 -0
  406. data/tests/public/404.html +26 -0
  407. data/tests/public/422.html +26 -0
  408. data/tests/public/500.html +26 -0
  409. data/tests/public/favicon.ico +0 -0
  410. data/tests/public/images/rails.png +0 -0
  411. data/tests/public/index.html +262 -0
  412. data/tests/public/javascripts/application.js +2 -0
  413. data/tests/public/javascripts/controls.js +965 -0
  414. data/tests/public/javascripts/dragdrop.js +974 -0
  415. data/tests/public/javascripts/effects.js +1123 -0
  416. data/tests/public/javascripts/prototype.js +6001 -0
  417. data/tests/public/javascripts/rails.js +175 -0
  418. data/tests/public/robots.txt +5 -0
  419. data/tests/public/stylesheets/.gitkeep +0 -0
  420. data/tests/public/stylesheets/scaffold.css +56 -0
  421. data/tests/script/rails +6 -0
  422. data/tests/spec/controllers/integration/albums_controller_spec.rb +60 -0
  423. data/tests/spec/controllers/integration/cacheable_songs_controller_spec.rb +43 -0
  424. data/tests/spec/controllers/integration/controller_base_spec.rb +35 -0
  425. data/tests/spec/controllers/integration/created_responder_spec.rb +35 -0
  426. data/tests/spec/controllers/integration/params_parser_spec.rb +150 -0
  427. data/tests/spec/controllers/integration/projects_controller_spec.rb +30 -0
  428. data/tests/spec/requests/_integration_client.txt +1 -0
  429. data/tests/spec/requests/base_spec.rb2 +142 -0
  430. data/tests/spec/requests/fake_server.rb +107 -0
  431. data/tests/spec/requests/http/adapter_spec.rb +105 -0
  432. data/tests/spec/requests/http/content_type_spec.rb +88 -0
  433. data/tests/spec/requests/http/errors_spec.rb +130 -0
  434. data/tests/spec/requests/http/history_spec.rb +56 -0
  435. data/tests/spec/requests/http/marshal_spec.rb2 +113 -0
  436. data/tests/spec/requests/http/parameters_spec.rb +12 -0
  437. data/tests/spec/spec.opts +5 -0
  438. data/tests/spec/spec_helper.rb +61 -0
  439. data/tests/spec/support/atoms/full.rb.txt +63 -0
  440. data/tests/spec/support/atoms/related_songs +30 -0
  441. data/tests/spec/support/atoms/song_1 +11 -0
  442. data/tests/spec/support/atoms/song_2 +11 -0
  443. data/tests/spec/support/atoms/song_3 +11 -0
  444. data/tests/spec/support/atoms/song_4 +11 -0
  445. data/tests/spec/support/atoms/songs +51 -0
  446. data/tests/spec/support/atoms/songs_top_ten +27 -0
  447. data/tests/spec/support/data_helper.rb +13 -0
  448. data/tests/test/performance/browsing_test.rb +9 -0
  449. data/tests/test/test_helper.rb +13 -0
  450. data/tests/vendor/plugins/.gitkeep +0 -0
  451. metadata +534 -97
  452. data/lib/restfulie/server/tokamak.rb +0 -6
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ describe ProjectsController do
4
+
5
+ render_views
6
+
7
+ before do
8
+ request.accept = "application/atom+xml"
9
+ response.stub(:content_type) { "application/atom+xml" }
10
+ end
11
+
12
+ it "renders view files with tokamak extension" do
13
+ request.accept = "application/atom+xml"
14
+ get :index, :format => :atom
15
+ response.body.should include("<title>index.atom.tokamak</title>")
16
+ response.header["Link"].should == "<http://google.com>; rel=create, <http://google.com/test>; rel=show"
17
+ end
18
+
19
+ it "renders view files without explicit format" do
20
+ request.accept = "application/atom+xml"
21
+ get :show, :format => :atom
22
+ response.body.should include("<title>show.tokamak</title>")
23
+ end
24
+
25
+ it "prefers views with explicit format" do
26
+ request.accept = "application/atom+xml"
27
+ get :new, :format => :atom
28
+ response.body.should include("<title>new.atom.tokamak</title>")
29
+ end
30
+ end
@@ -0,0 +1 @@
1
+ Those tests are integration tests (as in the server side) but full end-to-end tests, with code from the Restfulie client side.
@@ -0,0 +1,142 @@
1
+ require 'spec_helper'
2
+
3
+ require 'ruby-debug'
4
+
5
+ describe Restfulie::Client::Base do
6
+
7
+ before(:all) do
8
+ module Restfulie::Client::Test
9
+ class Song
10
+ include ::Restfulie::Client::Base
11
+ uses_restfulie { |config| config.entry_point = 'http://localhost:4567/songs' }
12
+ end
13
+ end
14
+ @songs_from_class = Restfulie::Client::Test::Song.accepts("application/atom+xml").get!
15
+ end
16
+
17
+ it 'should load songs' do
18
+ @songs_from_class.response.code.should == 200
19
+ @songs_from_class.title.should == 'Songs feed'
20
+ @songs_from_class.id.should == 'http://localhost:4567/songs'
21
+ @songs_from_class.updated.year.should == 2010
22
+ @songs_from_class.entries.size.should == 4
23
+ a_song = @songs_from_class.entries.first
24
+ a_song.title.should == 'Song 1'
25
+ a_song.id.should == 'http://localhost:4567/songs_1'
26
+ end
27
+
28
+
29
+ it 'should load top ten songs' do
30
+ top_ten_songs = @songs_from_class.links.top_ten.get!
31
+ top_ten_songs.response.code.should == 200
32
+ top_ten_songs.title.should == 'Top Ten Songs feed'
33
+ top_ten_songs.id.should == 'http://localhost:4567/songs_top_ten'
34
+ top_ten_songs.updated.year.should == 2010
35
+ a_song = top_ten_songs.entries.first
36
+ a_song.title.should == 'Song 3'
37
+ a_song.id.should == 'http://localhost:4567/song_3'
38
+ end
39
+
40
+ it 'should load chained relationship' do
41
+ top_ten_songs = @songs_from_class.links.top_ten.get!
42
+ a_song = top_ten_songs.entries.first
43
+ related_songs = a_song.links.related_songs.get!
44
+ first_related_song = related_songs.entries.first
45
+ similar_song = first_related_song.links.similar_song
46
+ similar_song.get!.title.should == 'Song 4 feed'
47
+ end
48
+
49
+ #it '' do
50
+ #a_song.video.post
51
+ #a_song.video.put
52
+ #a_song.video.delete
53
+ #end
54
+
55
+ end
56
+
57
+ describe Restfulie::Client::EntryPoint do
58
+
59
+ before(:all) do
60
+ r = Restfulie::Client::EntryPoint.at('http://localhost:4567/songs')
61
+ r = r.accepts('application/atom+xml')
62
+ @songs_from_ep = r.get!
63
+ end
64
+
65
+ it 'should load songs' do
66
+ @songs_from_ep.response.code.should == 200
67
+ @songs_from_ep.title.should == 'Songs feed'
68
+ @songs_from_ep.id.should == 'http://localhost:4567/songs'
69
+ @songs_from_ep.updated.year.should == 2010
70
+ @songs_from_ep.entries.size.should == 4
71
+ a_song = @songs_from_ep.entries.first
72
+ a_song.title.should == 'Song 1'
73
+ a_song.id.should == 'http://localhost:4567/songs_1'
74
+ end
75
+
76
+ it 'should load top ten songs' do
77
+ top_ten_songs = @songs_from_ep.links.top_ten.get!
78
+ top_ten_songs.response.code.should == 200
79
+ top_ten_songs.title.should == 'Top Ten Songs feed'
80
+ top_ten_songs.id.should == 'http://localhost:4567/songs_top_ten'
81
+ top_ten_songs.updated.year.should == 2010
82
+ a_song = top_ten_songs.entries.first
83
+ a_song.title.should == 'Song 3'
84
+ a_song.id.should == 'http://localhost:4567/song_3'
85
+ end
86
+
87
+ it 'should load chained relationship' do
88
+ top_ten_songs = @songs_from_ep.links.top_ten.get!
89
+ a_song = top_ten_songs.entries.first
90
+ related_songs = a_song.links.related_songs.get!
91
+ similar_song = related_songs.entries.first.links.similar_song
92
+ similar_song.get!.title.should == 'Song 4 feed'
93
+ end
94
+
95
+ #it '' do
96
+ #a_song.video.post
97
+ #a_song.video.put
98
+ #a_song.video.delete
99
+ #end
100
+
101
+ end
102
+
103
+ describe Restfulie do
104
+
105
+ context 'Delegate to entrypoint' do
106
+
107
+ before(:all) do
108
+ @songs = Restfulie.at('http://localhost:4567/songs').accepts('application/atom+xml').get!
109
+ end
110
+
111
+ it 'should load songs' do
112
+ @songs.response.code.should == 200
113
+ @songs.title.should == 'Songs feed'
114
+ @songs.id.should == 'http://localhost:4567/songs'
115
+ @songs.updated.year.should == 2010
116
+ @songs.entries.size.should == 4
117
+ a_song = @songs.entries.first
118
+ a_song.title.should == 'Song 1'
119
+ a_song.id.should == 'http://localhost:4567/songs_1'
120
+ end
121
+
122
+ it 'should load top ten songs' do
123
+ top_ten_songs = @songs.links.top_ten.get!
124
+ top_ten_songs.response.code.should == 200
125
+ top_ten_songs.title.should == 'Top Ten Songs feed'
126
+ top_ten_songs.id.should == 'http://localhost:4567/songs_top_ten'
127
+ top_ten_songs.updated.year.should == 2010
128
+ a_song = top_ten_songs.entries.first
129
+ a_song.title.should == 'Song 3'
130
+ a_song.id.should == 'http://localhost:4567/song_3'
131
+ end
132
+
133
+ it 'should load chained relationship' do
134
+ top_ten_songs = @songs.links.top_ten.get!
135
+ a_song = top_ten_songs.entries.first
136
+ related_songs = a_song.links.related_songs.get!
137
+ similar_song = related_songs.entries.first.links.similar_song
138
+ similar_song.get!.title.should == 'Song 4 feed'
139
+ end
140
+ end
141
+
142
+ end
@@ -0,0 +1,107 @@
1
+ require 'rubygems'
2
+ require 'sinatra/base'
3
+ require 'rack/conneg'
4
+ require 'active_support'
5
+ require 'json'
6
+
7
+ require File.join(File.dirname(__FILE__),'..','support','data_helper')
8
+
9
+ class FakeServer < Sinatra::Base
10
+
11
+ use(Rack::Conneg) do |conneg|
12
+ conneg.set :accept_all_extensions, false
13
+ conneg.set :fallback, :html
14
+ conneg.ignore('/public/')
15
+ conneg.provide([:atom,:xml])
16
+ end
17
+
18
+ disable :logging
19
+
20
+ before do
21
+ content_type negotiated_type
22
+ end
23
+
24
+ get "/favicon" do
25
+ Rack::Response.new('OK', 200).finish
26
+ end
27
+
28
+ post "/test/redirect/:location" do
29
+ r = Rack::Response.new('OK', 201)
30
+ r.header["Location"] = "#{request.scheme}://#{request.host}:#{request.port}/#{params[:location]}"
31
+ r.finish
32
+ end
33
+
34
+ post "/test/?" do
35
+ Rack::Response.new('OK', 201).finish
36
+ end
37
+
38
+ put "/test/?" do
39
+ '<content>OK</content>'
40
+ end
41
+
42
+ delete "/test/?" do
43
+ '<content>OK</content>'
44
+ end
45
+
46
+ get "/test" do
47
+ 'OK'
48
+ end
49
+
50
+ get "/test/:error" do
51
+ r = Rack::Response.new('OK', params[:error].to_i)
52
+ if params[:error].to_i==302
53
+ r.header["Location"] = "/redirected"
54
+ end
55
+ r.finish
56
+ end
57
+
58
+ get "/request_with_querystring" do
59
+ params.to_json
60
+ end
61
+
62
+ get '/test_redirection' do
63
+ r = Rack::Response.new('', 201)
64
+ r.header["Location"] = "http://localhost:4567/redirected"
65
+ r.finish
66
+ end
67
+
68
+ get '/redirected' do
69
+ "OK"
70
+ end
71
+
72
+ post '/custom/songs' do
73
+ r = Rack::Response.new('', 201)
74
+ r.header["Location"] = "http://localhost:4567/songs"
75
+ r.finish
76
+ end
77
+
78
+ post '/with_content' do
79
+ r = Rack::Response.new('<?xml version="1.0" encoding="UTF-8"?>
80
+ <feed xmlns="http://www.w3.org/2005/Atom">
81
+ <id>http://localhost:3000/</id>
82
+ <title>NilClasses feed</title>
83
+ <updated>2010-04-06T22:06:43-03:00</updated>
84
+ <link href="http://localhost:3000/search_items" rel="search" type="application/atom+xml"/>
85
+ </feed>
86
+ ', 200)
87
+ r.header["Content-type"] = "application/atom+xml"
88
+ r.finish
89
+ end
90
+
91
+ get '/html_result' do
92
+ respond_to do |wants|
93
+ wants.html { Rack::Response.new('OK', 200).finish }
94
+ end
95
+ end
96
+
97
+ get '/:file_name' do
98
+ respond_to do |wants|
99
+ wants.atom { response_data( 'atoms', params[:file_name] ) }
100
+ wants.xml { response_data( 'atoms', params[:file_name] ) }
101
+ wants.html { response_data( 'atoms', params[:file_name] ) }
102
+ end
103
+ end
104
+
105
+ end
106
+
107
+ FakeServer.run! :host => 'localhost', :port => 4567
@@ -0,0 +1,105 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restfulie::Client::HTTP do
4
+
5
+ context "HTTP Base" do
6
+
7
+ before do
8
+ @host = "http://localhost:4567"
9
+ @client = Restfulie.at(@host)
10
+ end
11
+
12
+ it "should get and respond 200 code" do
13
+ @client.at("/test").get.should respond_with_status(200)
14
+ end
15
+
16
+ it "should put and respond 200 code" do
17
+ @client.at("/test").as("text/plain").put("<test></test>").should respond_with_status(200)
18
+ end
19
+
20
+ it "should delete and respond 200 code" do
21
+ @client.at("/test").delete.should respond_with_status(200)
22
+ end
23
+
24
+ it "should head and respond 200 code" do
25
+ @client.at("/test").head.should respond_with_status(200)
26
+ end
27
+
28
+ it "should get! and respond 200 code" do
29
+ @client.at("/test").get!.should respond_with_status(200)
30
+ end
31
+
32
+ it "should post! and respond 201 code" do
33
+ pending "should use new style api"
34
+ Restfulie.using{
35
+ recipe
36
+ request_marshaller
37
+ verb_request
38
+ }.at(@host).at("/test/redirect/songs").as("application/xml").post!("<test></text>").should respond_with_status(201)
39
+ end
40
+
41
+ it "should put! and respond 200 code" do
42
+ @client.at("/test").as("application/xml").put!("<test></test>").should respond_with_status(200)
43
+ end
44
+
45
+ it "should delete! and respond 200 code" do
46
+ @client.at("/test").delete!.should respond_with_status(200)
47
+ end
48
+
49
+ it "should head! and respond 200 code" do
50
+ @client.at("/test").head!.should respond_with_status(200)
51
+ end
52
+
53
+ end
54
+
55
+ #
56
+ # context "On PUT" do
57
+ # it "should respond to 200 code" do
58
+ # builder.at("/test").put("test").should respond_with_status(200)
59
+ # end
60
+ #
61
+ # it "should accepts xml and respond to 200 code" do
62
+ # builder.at('/test').accepts('application/xml').put("test").should respond_with_status(200)
63
+ # end
64
+ #
65
+ # it "should respond to 200 code as xml" do
66
+ # builder.at('/test').as('application/xml').put("test").should respond_with_status(200)
67
+ # end
68
+ #
69
+ # it "should include accept language and respond 200" do
70
+ # builder.at('/test').with('Accept-Language' => 'en').put("test").should respond_with_status(200)
71
+ # end
72
+ #
73
+ # it "should respond 200 code as xml and accepts xml with en language" do
74
+ # builder.at('/test').as('application/xml').accepts('application/atom+xml').with('Accept-Language' => 'en').put("test").should respond_with_status(200)
75
+ # end
76
+ #
77
+ # it "should respond 200 code as xml and accept atom and language" do
78
+ # builder.at('/test').as('application/xml').accepts('application/atom+xml').with('Accept-Language' => 'en').put!("test").should respond_with_status(200)
79
+ # end
80
+ # end
81
+
82
+ # context 'Response Handler' do
83
+ #
84
+ # class FakeResponse < ::Restfulie::Client::HTTP::Response
85
+ # end
86
+ # ::Restfulie::Client::HTTP::ResponseHandler.register(307,FakeResponse)
87
+ #
88
+ # let(:client) { Restfulie.at("http://localhost:4567") }
89
+ #
90
+ # it 'should have FakeResponder as Response Handler to 307' do
91
+ # ::Restfulie::Client::HTTP::ResponseHandler.handlers(307).should equal FakeResponse
92
+ # end
93
+ #
94
+ # it 'should respond FakeResponse' do
95
+ # client.at('/test/307').get.response.should be_kind_of FakeResponse
96
+ # end
97
+ #
98
+ # it 'should respond default Response' do
99
+ # client.at('/test/299').get.response.should be_kind_of ::Restfulie::Client::HTTP::Response
100
+ # end
101
+ #
102
+ # end
103
+ #
104
+ end
105
+
@@ -0,0 +1,88 @@
1
+ require 'spec_helper'
2
+
3
+ describe Restfulie::Client::HTTP do
4
+
5
+ context 'HTTP Builder' do
6
+
7
+ let(:restfulie) { Restfulie.at("http://localhost:4567") }
8
+
9
+ context "On GET" do
10
+
11
+ it "should respond to 200 code" do
12
+ restfulie.at('/test/200').get.should respond_with_status(200)
13
+ end
14
+
15
+ it "should accepts and respond to 200 code on xml" do
16
+ restfulie.at('/test/200').accepts('application/xml').get.should respond_with_status(200)
17
+ end
18
+
19
+ it "should respond to 200 code as xml" do
20
+ restfulie.at('/test/200').as('application/xml').get.should respond_with_status(200)
21
+ end
22
+
23
+ it "should accept language and respond 200" do
24
+ restfulie.at('/test/200').with('Accept-Language' => 'en').get.should respond_with_status(200)
25
+ end
26
+
27
+ it "should respond 200 code as xml and accept atom and language" do
28
+ restfulie.at('/test/200').as('application/xml').accepts('application/atom+xml').with('Accept-Language' => 'en').get.should respond_with_status(200)
29
+ end
30
+
31
+ end
32
+
33
+ context "On DELETE" do
34
+
35
+ it "should respond 200 code" do
36
+ restfulie.at("/test").delete.should respond_with_status(200)
37
+ end
38
+
39
+ it "should accepts xml and respond 200 code" do
40
+ restfulie.at('/test').accepts('application/xml').delete.should respond_with_status(200)
41
+ end
42
+
43
+ it "as xml should respond 200 code" do
44
+ restfulie.at('/test').as('application/xml').delete.should respond_with_status(200)
45
+ end
46
+
47
+ it "should respond 200 code with accept language en" do
48
+ restfulie.at('/test').with('Accept-Language' => 'en').delete.should respond_with_status(200)
49
+ end
50
+
51
+ it "should respond 200 code as xml accepts atom+xml with accept language en" do
52
+ restfulie.at('/test').as('application/xml').accepts('application/atom+xml').with('Accept-Language' => 'en').delete.should respond_with_status(200)
53
+ end
54
+
55
+ end
56
+
57
+ context "On HEAD" do
58
+
59
+ it "should respond 200 code" do
60
+ restfulie.at("/test").head.should respond_with_status(200)
61
+ end
62
+
63
+ it "should respond 200 code and accepts xml" do
64
+ restfulie.at('/test').accepts('application/xml').head.should respond_with_status(200)
65
+ end
66
+
67
+ it "should respond 200 code as xml" do
68
+ restfulie.at('/test').as('application/xml').head.should respond_with_status(200)
69
+ end
70
+
71
+ it "should respond 200 code with accept language en" do
72
+ restfulie.at('/test').with('Accept-Language' => 'en').head.should respond_with_status(200)
73
+ end
74
+
75
+ it "should respond 200 code as xml and accepts atom+xml with accepts language en" do
76
+ restfulie.at('/test').as('application/xml').accepts('application/atom+xml').with('Accept-Language' => 'en').head.should respond_with_status(200)
77
+ end
78
+
79
+ it "should respond 200 code as xml and accepts atom+xml with accepts language en in a destructive method" do
80
+ restfulie.at('/test').as('application/xml').accepts('application/atom+xml').with('Accept-Language' => 'en').head!.should respond_with_status(200)
81
+ end
82
+
83
+ end
84
+
85
+ end
86
+ end
87
+
88
+