railscart 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (463) hide show
  1. data/History.txt +3 -0
  2. data/License.txt +26 -0
  3. data/Manifest.txt +462 -0
  4. data/README.txt +1 -0
  5. data/Rakefile +4 -0
  6. data/bin/railscart +114 -0
  7. data/config/hoe.rb +78 -0
  8. data/config/requirements.rb +19 -0
  9. data/lib/railscart.rb +5 -0
  10. data/lib/railscart/version.rb +9 -0
  11. data/log/debug.log +0 -0
  12. data/script/destroy +14 -0
  13. data/script/generate +14 -0
  14. data/script/txt2html +74 -0
  15. data/setup.rb +1585 -0
  16. data/starter-app/README +182 -0
  17. data/starter-app/Rakefile +10 -0
  18. data/starter-app/app/controllers/application.rb +14 -0
  19. data/starter-app/app/helpers/application_helper.rb +3 -0
  20. data/starter-app/app/models/role.rb +3 -0
  21. data/starter-app/app/models/tag.rb +37 -0
  22. data/starter-app/app/models/tagging.rb +16 -0
  23. data/starter-app/app/models/user.rb +101 -0
  24. data/starter-app/app/views/layouts/application.rhtml +20 -0
  25. data/starter-app/config/boot.rb +45 -0
  26. data/starter-app/config/database.yml +23 -0
  27. data/starter-app/config/environment.rb +119 -0
  28. data/starter-app/config/environments/development.rb +21 -0
  29. data/starter-app/config/environments/production.rb +21 -0
  30. data/starter-app/config/environments/test.rb +19 -0
  31. data/starter-app/config/routes.rb +28 -0
  32. data/starter-app/db/migrate/001_add_sessions.rb +16 -0
  33. data/starter-app/db/migrate/002_create_tags_and_taggings.rb +28 -0
  34. data/starter-app/db/migrate/003_railscart_to_version_19.rb +9 -0
  35. data/starter-app/db/migrate/004_railscart_to_version_20.rb +9 -0
  36. data/starter-app/db/migrate/005_create_users.rb +17 -0
  37. data/starter-app/db/migrate/006_create_roles.rb +20 -0
  38. data/starter-app/db/sample/addresses.yml +29 -0
  39. data/starter-app/db/sample/categories.yml +35 -0
  40. data/starter-app/db/sample/countries.yml +4 -0
  41. data/starter-app/db/sample/line_items.yml +32 -0
  42. data/starter-app/db/sample/option_groups.yml +16 -0
  43. data/starter-app/db/sample/option_values.yml +13 -0
  44. data/starter-app/db/sample/options.yml +3 -0
  45. data/starter-app/db/sample/orders.yml +17 -0
  46. data/starter-app/db/sample/products.yml +70 -0
  47. data/starter-app/db/sample/roles.yml +3 -0
  48. data/starter-app/db/sample/skus.yml +35 -0
  49. data/starter-app/db/sample/states.yml +204 -0
  50. data/starter-app/db/sample/taggings.yml +16 -0
  51. data/starter-app/db/sample/tags.yml +6 -0
  52. data/starter-app/db/sample/txns.yml +13 -0
  53. data/starter-app/db/sample/users.yml +10 -0
  54. data/starter-app/db/sample/variations.yml +20 -0
  55. data/starter-app/doc/README_FOR_APP +2 -0
  56. data/starter-app/lib/authenticated_system.rb +116 -0
  57. data/starter-app/lib/authenticated_test_helper.rb +10 -0
  58. data/starter-app/lib/custom_fixtures.rb +7 -0
  59. data/starter-app/lib/hijacker.rb +78 -0
  60. data/starter-app/lib/role_requirement_system.rb +142 -0
  61. data/starter-app/lib/role_requirement_test_helper.rb +86 -0
  62. data/starter-app/lib/tagging_extensions.rb +104 -0
  63. data/starter-app/lib/tasks/rc_sample_data.rake +31 -0
  64. data/starter-app/lib/tasks/sample/images/ror_bag.jpg +0 -0
  65. data/starter-app/lib/tasks/sample/images/ror_baseball_jersey.jpg +0 -0
  66. data/starter-app/lib/tasks/sample/images/ror_jr_spaghetti.jpg +0 -0
  67. data/starter-app/lib/tasks/sample/images/ror_mug.jpg +0 -0
  68. data/starter-app/lib/tasks/sample/images/ror_ringer_tshirt.jpg +0 -0
  69. data/starter-app/lib/tasks/sample/images/ror_stein.jpg +0 -0
  70. data/starter-app/lib/tasks/sample/images/ror_tote.jpg +0 -0
  71. data/starter-app/public/.htaccess +40 -0
  72. data/starter-app/public/404.html +30 -0
  73. data/starter-app/public/500.html +30 -0
  74. data/starter-app/public/dispatch.cgi +10 -0
  75. data/starter-app/public/dispatch.fcgi +24 -0
  76. data/starter-app/public/dispatch.rb +10 -0
  77. data/starter-app/public/favicon.ico +0 -0
  78. data/starter-app/public/images/rails.png +0 -0
  79. data/starter-app/public/index.html +277 -0
  80. data/starter-app/public/javascripts/application.js +2 -0
  81. data/starter-app/public/javascripts/controls.js +833 -0
  82. data/starter-app/public/javascripts/dragdrop.js +942 -0
  83. data/starter-app/public/javascripts/effects.js +1088 -0
  84. data/starter-app/public/javascripts/prototype.js +4184 -0
  85. data/starter-app/public/robots.txt +1 -0
  86. data/starter-app/public/stylesheets/application.css +186 -0
  87. data/starter-app/public/stylesheets/cart/_controller.css +4 -0
  88. data/starter-app/public/stylesheets/checkout/_controller.css +13 -0
  89. data/starter-app/script/about +3 -0
  90. data/starter-app/script/breakpointer +3 -0
  91. data/starter-app/script/console +3 -0
  92. data/starter-app/script/destroy +3 -0
  93. data/starter-app/script/generate +3 -0
  94. data/starter-app/script/performance/benchmarker +3 -0
  95. data/starter-app/script/performance/profiler +3 -0
  96. data/starter-app/script/plugin +3 -0
  97. data/starter-app/script/process/inspector +3 -0
  98. data/starter-app/script/process/reaper +3 -0
  99. data/starter-app/script/process/spawner +3 -0
  100. data/starter-app/script/runner +3 -0
  101. data/starter-app/script/server +3 -0
  102. data/starter-app/test/fixtures/users.yml +7 -0
  103. data/starter-app/test/test_helper.rb +28 -0
  104. data/starter-app/test/unit/user_test.rb +8 -0
  105. data/starter-app/vendor/plugins/acts_as_list/README +23 -0
  106. data/starter-app/vendor/plugins/acts_as_list/init.rb +3 -0
  107. data/starter-app/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb +256 -0
  108. data/starter-app/vendor/plugins/acts_as_list/test/list_test.rb +332 -0
  109. data/starter-app/vendor/plugins/acts_as_tree/README +26 -0
  110. data/starter-app/vendor/plugins/acts_as_tree/Rakefile +22 -0
  111. data/starter-app/vendor/plugins/acts_as_tree/init.rb +1 -0
  112. data/starter-app/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +96 -0
  113. data/starter-app/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
  114. data/starter-app/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
  115. data/starter-app/vendor/plugins/acts_as_tree/test/database.yml +0 -0
  116. data/starter-app/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  117. data/starter-app/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  118. data/starter-app/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
  119. data/starter-app/vendor/plugins/calendar_date_select/CHANGELOG +170 -0
  120. data/starter-app/vendor/plugins/calendar_date_select/MIT-LICENSE +20 -0
  121. data/starter-app/vendor/plugins/calendar_date_select/README +10 -0
  122. data/starter-app/vendor/plugins/calendar_date_select/init.rb +15 -0
  123. data/starter-app/vendor/plugins/calendar_date_select/js_test/functional/.tmp_cds_test.html +306 -0
  124. data/starter-app/vendor/plugins/calendar_date_select/js_test/functional/cds_test.html +324 -0
  125. data/starter-app/vendor/plugins/calendar_date_select/js_test/prototype.js +4184 -0
  126. data/starter-app/vendor/plugins/calendar_date_select/js_test/test.css +40 -0
  127. data/starter-app/vendor/plugins/calendar_date_select/js_test/unit/cds_helper_methods.html +46 -0
  128. data/starter-app/vendor/plugins/calendar_date_select/js_test/unittest.js +564 -0
  129. data/starter-app/vendor/plugins/calendar_date_select/lib/calendar_date_select.rb +192 -0
  130. data/starter-app/vendor/plugins/calendar_date_select/lib/includes_helper.rb +22 -0
  131. data/starter-app/vendor/plugins/calendar_date_select/public/images/calendar_date_select/calendar.gif +0 -0
  132. data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/calendar_date_select.js +439 -0
  133. data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_american.js +34 -0
  134. data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_euro_24hr.js +7 -0
  135. data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_finnish.js +24 -0
  136. data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_hyphen_ampm.js +36 -0
  137. data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_italian.js +24 -0
  138. data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/fi.js +10 -0
  139. data/starter-app/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/blue.css +130 -0
  140. data/starter-app/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/default.css +135 -0
  141. data/starter-app/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/plain.css +128 -0
  142. data/starter-app/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/red.css +135 -0
  143. data/starter-app/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/silver.css +133 -0
  144. data/starter-app/vendor/plugins/calendar_date_select/test/functional/calendar_date_select_test.rb +95 -0
  145. data/starter-app/vendor/plugins/calendar_date_select/test/functional/helper_methods_test.rb +15 -0
  146. data/starter-app/vendor/plugins/calendar_date_select/test/test_helper.rb +26 -0
  147. data/starter-app/vendor/plugins/engines/CHANGELOG +258 -0
  148. data/starter-app/vendor/plugins/engines/MIT-LICENSE +21 -0
  149. data/starter-app/vendor/plugins/engines/README +63 -0
  150. data/starter-app/vendor/plugins/engines/Rakefile +32 -0
  151. data/starter-app/vendor/plugins/engines/about.yml +7 -0
  152. data/starter-app/vendor/plugins/engines/boot.rb +18 -0
  153. data/starter-app/vendor/plugins/engines/generators/plugin_migration/USAGE +45 -0
  154. data/starter-app/vendor/plugins/engines/generators/plugin_migration/plugin_migration_generator.rb +79 -0
  155. data/starter-app/vendor/plugins/engines/generators/plugin_migration/templates/plugin_migration.erb +13 -0
  156. data/starter-app/vendor/plugins/engines/init.rb +2 -0
  157. data/starter-app/vendor/plugins/engines/lib/engines.rb +169 -0
  158. data/starter-app/vendor/plugins/engines/lib/engines/assets.rb +38 -0
  159. data/starter-app/vendor/plugins/engines/lib/engines/plugin.rb +125 -0
  160. data/starter-app/vendor/plugins/engines/lib/engines/plugin/list.rb +30 -0
  161. data/starter-app/vendor/plugins/engines/lib/engines/plugin/loader.rb +18 -0
  162. data/starter-app/vendor/plugins/engines/lib/engines/plugin/locator.rb +11 -0
  163. data/starter-app/vendor/plugins/engines/lib/engines/plugin/migrator.rb +60 -0
  164. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb +85 -0
  165. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/active_record.rb +24 -0
  166. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb +119 -0
  167. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/dependencies.rb +145 -0
  168. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/migrations.rb +161 -0
  169. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/rails.rb +11 -0
  170. data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb +84 -0
  171. data/starter-app/vendor/plugins/engines/lib/engines/testing.rb +87 -0
  172. data/starter-app/vendor/plugins/engines/tasks/engines.rake +148 -0
  173. data/starter-app/vendor/plugins/in_place_editing/README +14 -0
  174. data/starter-app/vendor/plugins/in_place_editing/Rakefile +22 -0
  175. data/starter-app/vendor/plugins/in_place_editing/init.rb +2 -0
  176. data/starter-app/vendor/plugins/in_place_editing/lib/in_place_editing.rb +25 -0
  177. data/starter-app/vendor/plugins/in_place_editing/lib/in_place_macros_helper.rb +71 -0
  178. data/starter-app/vendor/plugins/in_place_editing/test/in_place_editing_test.rb +69 -0
  179. data/starter-app/vendor/plugins/paginating_find/CHANGELOG +117 -0
  180. data/starter-app/vendor/plugins/paginating_find/README +89 -0
  181. data/starter-app/vendor/plugins/paginating_find/init.rb +2 -0
  182. data/starter-app/vendor/plugins/paginating_find/lib/paginating_find.rb +135 -0
  183. data/starter-app/vendor/plugins/paginating_find/lib/paging_enumerator.rb +158 -0
  184. data/starter-app/vendor/plugins/paginating_find/lib/paging_helper.rb +47 -0
  185. data/starter-app/vendor/plugins/paginating_find/test_app/Rakefile +10 -0
  186. data/starter-app/vendor/plugins/paginating_find/test_app/app/controllers/application.rb +2 -0
  187. data/starter-app/vendor/plugins/paginating_find/test_app/config/boot.rb +44 -0
  188. data/starter-app/vendor/plugins/paginating_find/test_app/config/database.yml +6 -0
  189. data/starter-app/vendor/plugins/paginating_find/test_app/config/environment.rb +53 -0
  190. data/starter-app/vendor/plugins/paginating_find/test_app/config/environments/test.rb +19 -0
  191. data/starter-app/vendor/plugins/paginating_find/test_app/config/routes.rb +22 -0
  192. data/starter-app/vendor/plugins/paginating_find/test_app/db/schema.rb +16 -0
  193. data/starter-app/vendor/plugins/paginating_find/test_app/script/breakpointer +3 -0
  194. data/starter-app/vendor/plugins/paginating_find/test_app/script/console +3 -0
  195. data/starter-app/vendor/plugins/paginating_find/test_app/test/fixtures/articles.yml +19 -0
  196. data/starter-app/vendor/plugins/paginating_find/test_app/test/fixtures/authors.yml +7 -0
  197. data/starter-app/vendor/plugins/paginating_find/test_app/test/fixtures/edits.yml +11 -0
  198. data/starter-app/vendor/plugins/paginating_find/test_app/test/fixtures/models.rb +18 -0
  199. data/starter-app/vendor/plugins/paginating_find/test_app/test/test_helper.rb +33 -0
  200. data/starter-app/vendor/plugins/paginating_find/test_app/test/unit/abstract_test.rb +7 -0
  201. data/starter-app/vendor/plugins/paginating_find/test_app/test/unit/group_test.rb +40 -0
  202. data/starter-app/vendor/plugins/paginating_find/test_app/test/unit/paginating_find_test.rb +194 -0
  203. data/starter-app/vendor/plugins/paginating_find/test_app/test/unit/paging_enumerator_test.rb +143 -0
  204. data/starter-app/vendor/plugins/railscart/.rakeTasks +7 -0
  205. data/starter-app/vendor/plugins/railscart/CHANGELOG +1 -0
  206. data/starter-app/vendor/plugins/railscart/LICENSE +26 -0
  207. data/starter-app/vendor/plugins/railscart/README +2 -0
  208. data/starter-app/vendor/plugins/railscart/Rakefile +10 -0
  209. data/starter-app/vendor/plugins/railscart/VERSION +1 -0
  210. data/starter-app/vendor/plugins/railscart/app/controllers/account_controller.rb +48 -0
  211. data/starter-app/vendor/plugins/railscart/app/controllers/admin/base_controller.rb +7 -0
  212. data/starter-app/vendor/plugins/railscart/app/controllers/admin/categories_controller.rb +107 -0
  213. data/starter-app/vendor/plugins/railscart/app/controllers/admin/option_groups_controller.rb +36 -0
  214. data/starter-app/vendor/plugins/railscart/app/controllers/admin/option_values_controller.rb +42 -0
  215. data/starter-app/vendor/plugins/railscart/app/controllers/admin/options_controller.rb +52 -0
  216. data/starter-app/vendor/plugins/railscart/app/controllers/admin/orders_controller.rb +194 -0
  217. data/starter-app/vendor/plugins/railscart/app/controllers/admin/overview_controller.rb +14 -0
  218. data/starter-app/vendor/plugins/railscart/app/controllers/admin/products_controller.rb +147 -0
  219. data/starter-app/vendor/plugins/railscart/app/controllers/admin/reports_controller.rb +53 -0
  220. data/starter-app/vendor/plugins/railscart/app/controllers/admin/users_controller.rb +45 -0
  221. data/starter-app/vendor/plugins/railscart/app/controllers/admin/variations_controller.rb +73 -0
  222. data/starter-app/vendor/plugins/railscart/app/controllers/cart_controller.rb +45 -0
  223. data/starter-app/vendor/plugins/railscart/app/controllers/checkout_controller.rb +179 -0
  224. data/starter-app/vendor/plugins/railscart/app/controllers/rails_cart/base_controller.rb +41 -0
  225. data/starter-app/vendor/plugins/railscart/app/controllers/store_controller.rb +20 -0
  226. data/starter-app/vendor/plugins/railscart/app/helpers/account_helper.rb +2 -0
  227. data/starter-app/vendor/plugins/railscart/app/helpers/admin/base_helper.rb +15 -0
  228. data/starter-app/vendor/plugins/railscart/app/helpers/admin/categories_helper.rb +3 -0
  229. data/starter-app/vendor/plugins/railscart/app/helpers/admin/option_groups_helper.rb +2 -0
  230. data/starter-app/vendor/plugins/railscart/app/helpers/admin/option_values_helper.rb +2 -0
  231. data/starter-app/vendor/plugins/railscart/app/helpers/admin/orders_helper.rb +11 -0
  232. data/starter-app/vendor/plugins/railscart/app/helpers/admin/overview_helper.rb +12 -0
  233. data/starter-app/vendor/plugins/railscart/app/helpers/admin/users_helper.rb +2 -0
  234. data/starter-app/vendor/plugins/railscart/app/helpers/admin/variations_helper.rb +2 -0
  235. data/starter-app/vendor/plugins/railscart/app/helpers/cart_helper.rb +6 -0
  236. data/starter-app/vendor/plugins/railscart/app/helpers/checkout_helper.rb +17 -0
  237. data/starter-app/vendor/plugins/railscart/app/helpers/rails_cart/base_helper.rb +67 -0
  238. data/starter-app/vendor/plugins/railscart/app/helpers/search_helper.rb +10 -0
  239. data/starter-app/vendor/plugins/railscart/app/helpers/store_helper.rb +3 -0
  240. data/starter-app/vendor/plugins/railscart/app/models/address.rb +17 -0
  241. data/starter-app/vendor/plugins/railscart/app/models/cart.rb +37 -0
  242. data/starter-app/vendor/plugins/railscart/app/models/cart_item.rb +28 -0
  243. data/starter-app/vendor/plugins/railscart/app/models/category.rb +66 -0
  244. data/starter-app/vendor/plugins/railscart/app/models/country.rb +3 -0
  245. data/starter-app/vendor/plugins/railscart/app/models/line_item.rb +24 -0
  246. data/starter-app/vendor/plugins/railscart/app/models/option.rb +4 -0
  247. data/starter-app/vendor/plugins/railscart/app/models/option_group.rb +6 -0
  248. data/starter-app/vendor/plugins/railscart/app/models/option_value.rb +4 -0
  249. data/starter-app/vendor/plugins/railscart/app/models/order.rb +86 -0
  250. data/starter-app/vendor/plugins/railscart/app/models/order_mailer.rb +20 -0
  251. data/starter-app/vendor/plugins/railscart/app/models/payment.rb +49 -0
  252. data/starter-app/vendor/plugins/railscart/app/models/product.rb +76 -0
  253. data/starter-app/vendor/plugins/railscart/app/models/search_criteria.rb +27 -0
  254. data/starter-app/vendor/plugins/railscart/app/models/sku.rb +7 -0
  255. data/starter-app/vendor/plugins/railscart/app/models/state.rb +3 -0
  256. data/starter-app/vendor/plugins/railscart/app/models/tax_treatment.rb +2 -0
  257. data/starter-app/vendor/plugins/railscart/app/models/txn.rb +7 -0
  258. data/starter-app/vendor/plugins/railscart/app/models/variation.rb +5 -0
  259. data/starter-app/vendor/plugins/railscart/app/views/account/index.rhtml +3 -0
  260. data/starter-app/vendor/plugins/railscart/app/views/account/login.rhtml +12 -0
  261. data/starter-app/vendor/plugins/railscart/app/views/account/signup.rhtml +16 -0
  262. data/starter-app/vendor/plugins/railscart/app/views/admin/categories/_form.rhtml +27 -0
  263. data/starter-app/vendor/plugins/railscart/app/views/admin/categories/edit.rhtml +9 -0
  264. data/starter-app/vendor/plugins/railscart/app/views/admin/categories/list.rhtml +47 -0
  265. data/starter-app/vendor/plugins/railscart/app/views/admin/categories/new.rhtml +8 -0
  266. data/starter-app/vendor/plugins/railscart/app/views/admin/option_groups/_form.rhtml +19 -0
  267. data/starter-app/vendor/plugins/railscart/app/views/admin/option_groups/new.rhtml +8 -0
  268. data/starter-app/vendor/plugins/railscart/app/views/admin/option_values/_form.rhtml +8 -0
  269. data/starter-app/vendor/plugins/railscart/app/views/admin/option_values/edit.rhtml +8 -0
  270. data/starter-app/vendor/plugins/railscart/app/views/admin/option_values/list.rhtml +22 -0
  271. data/starter-app/vendor/plugins/railscart/app/views/admin/option_values/new.rhtml +8 -0
  272. data/starter-app/vendor/plugins/railscart/app/views/admin/options/_form.rhtml +7 -0
  273. data/starter-app/vendor/plugins/railscart/app/views/admin/options/edit.rhtml +26 -0
  274. data/starter-app/vendor/plugins/railscart/app/views/admin/options/list.rhtml +23 -0
  275. data/starter-app/vendor/plugins/railscart/app/views/admin/options/new.rhtml +8 -0
  276. data/starter-app/vendor/plugins/railscart/app/views/admin/orders/_address.rhtml +37 -0
  277. data/starter-app/vendor/plugins/railscart/app/views/admin/orders/index.rhtml +99 -0
  278. data/starter-app/vendor/plugins/railscart/app/views/admin/orders/show.rhtml +43 -0
  279. data/starter-app/vendor/plugins/railscart/app/views/admin/overview/index.rhtml +0 -0
  280. data/starter-app/vendor/plugins/railscart/app/views/admin/products/_form.rhtml +55 -0
  281. data/starter-app/vendor/plugins/railscart/app/views/admin/products/_menu.rhtml +8 -0
  282. data/starter-app/vendor/plugins/railscart/app/views/admin/products/_new_variation.rhtml +0 -0
  283. data/starter-app/vendor/plugins/railscart/app/views/admin/products/edit.rhtml +8 -0
  284. data/starter-app/vendor/plugins/railscart/app/views/admin/products/index.rhtml +66 -0
  285. data/starter-app/vendor/plugins/railscart/app/views/admin/products/new.rhtml +13 -0
  286. data/starter-app/vendor/plugins/railscart/app/views/admin/products/show.rhtml +26 -0
  287. data/starter-app/vendor/plugins/railscart/app/views/admin/reports/index.rhtml +29 -0
  288. data/starter-app/vendor/plugins/railscart/app/views/admin/reports/sales_total.rhtml +28 -0
  289. data/starter-app/vendor/plugins/railscart/app/views/admin/users/_form.rhtml +29 -0
  290. data/starter-app/vendor/plugins/railscart/app/views/admin/users/_menu.rhtml +5 -0
  291. data/starter-app/vendor/plugins/railscart/app/views/admin/users/edit.rhtml +8 -0
  292. data/starter-app/vendor/plugins/railscart/app/views/admin/users/index.rhtml +26 -0
  293. data/starter-app/vendor/plugins/railscart/app/views/admin/users/new.rhtml +6 -0
  294. data/starter-app/vendor/plugins/railscart/app/views/admin/users/show.rhtml +9 -0
  295. data/starter-app/vendor/plugins/railscart/app/views/admin/variations/_form.rhtml +33 -0
  296. data/starter-app/vendor/plugins/railscart/app/views/admin/variations/_option_values.rhtml +5 -0
  297. data/starter-app/vendor/plugins/railscart/app/views/admin/variations/list.rhtml +23 -0
  298. data/starter-app/vendor/plugins/railscart/app/views/admin/variations/new.rhtml +14 -0
  299. data/starter-app/vendor/plugins/railscart/app/views/cart/index.rhtml +49 -0
  300. data/starter-app/vendor/plugins/railscart/app/views/checkout/_address.rhtml +51 -0
  301. data/starter-app/vendor/plugins/railscart/app/views/checkout/_address_ro.rhtml +18 -0
  302. data/starter-app/vendor/plugins/railscart/app/views/checkout/_cart_item.rhtml +5 -0
  303. data/starter-app/vendor/plugins/railscart/app/views/checkout/_extra.rhtml +1 -0
  304. data/starter-app/vendor/plugins/railscart/app/views/checkout/addresses.rhtml +49 -0
  305. data/starter-app/vendor/plugins/railscart/app/views/checkout/cvv.rhtml +15 -0
  306. data/starter-app/vendor/plugins/railscart/app/views/checkout/empty_cart.rhtml +4 -0
  307. data/starter-app/vendor/plugins/railscart/app/views/checkout/final_confirmation.rhtml +92 -0
  308. data/starter-app/vendor/plugins/railscart/app/views/checkout/incomplete.rhtml +7 -0
  309. data/starter-app/vendor/plugins/railscart/app/views/checkout/thank_you.rhtml +11 -0
  310. data/starter-app/vendor/plugins/railscart/app/views/layouts/admin.rhtml +69 -0
  311. data/starter-app/vendor/plugins/railscart/app/views/layouts/products.rhtml +20 -0
  312. data/starter-app/vendor/plugins/railscart/app/views/layouts/simple.rhtml +37 -0
  313. data/starter-app/vendor/plugins/railscart/app/views/order_mailer/cancel.rhtml +15 -0
  314. data/starter-app/vendor/plugins/railscart/app/views/order_mailer/confirm.rhtml +18 -0
  315. data/starter-app/vendor/plugins/railscart/app/views/shared/_order_details.rhtml +35 -0
  316. data/starter-app/vendor/plugins/railscart/app/views/shared/_paginate.rhtml +34 -0
  317. data/starter-app/vendor/plugins/railscart/app/views/shared/_report_criteria.rhtml +32 -0
  318. data/starter-app/vendor/plugins/railscart/app/views/shared/_tax_treatments.rhtml +12 -0
  319. data/starter-app/vendor/plugins/railscart/app/views/shared/_variations.rhtml +60 -0
  320. data/starter-app/vendor/plugins/railscart/app/views/store/_menu.rhtml +7 -0
  321. data/starter-app/vendor/plugins/railscart/app/views/store/_products.rhtml +10 -0
  322. data/starter-app/vendor/plugins/railscart/app/views/store/list.rhtml +16 -0
  323. data/starter-app/vendor/plugins/railscart/app/views/store/show.rhtml +71 -0
  324. data/starter-app/vendor/plugins/railscart/assets/.htaccess +40 -0
  325. data/starter-app/vendor/plugins/railscart/assets/404.html +30 -0
  326. data/starter-app/vendor/plugins/railscart/assets/500.html +30 -0
  327. data/starter-app/vendor/plugins/railscart/assets/dispatch.cgi +10 -0
  328. data/starter-app/vendor/plugins/railscart/assets/dispatch.fcgi +24 -0
  329. data/starter-app/vendor/plugins/railscart/assets/dispatch.rb +10 -0
  330. data/starter-app/vendor/plugins/railscart/assets/favicon.ico +0 -0
  331. data/starter-app/vendor/plugins/railscart/assets/images/amex_cid.gif +0 -0
  332. data/starter-app/vendor/plugins/railscart/assets/images/creditcard.gif +0 -0
  333. data/starter-app/vendor/plugins/railscart/assets/images/discover_cid.gif +0 -0
  334. data/starter-app/vendor/plugins/railscart/assets/images/master_cid.jpg +0 -0
  335. data/starter-app/vendor/plugins/railscart/assets/images/products/ror_bag.jpg +0 -0
  336. data/starter-app/vendor/plugins/railscart/assets/images/products/ror_baseball_jersey.jpg +0 -0
  337. data/starter-app/vendor/plugins/railscart/assets/images/products/ror_jr_spaghetti.jpg +0 -0
  338. data/starter-app/vendor/plugins/railscart/assets/images/products/ror_mug.jpg +0 -0
  339. data/starter-app/vendor/plugins/railscart/assets/images/products/ror_ringer_tshirt.jpg +0 -0
  340. data/starter-app/vendor/plugins/railscart/assets/images/products/ror_stein.jpg +0 -0
  341. data/starter-app/vendor/plugins/railscart/assets/images/products/ror_tote.jpg +0 -0
  342. data/starter-app/vendor/plugins/railscart/assets/images/rails.png +0 -0
  343. data/starter-app/vendor/plugins/railscart/assets/images/railscart/progress.gif +0 -0
  344. data/starter-app/vendor/plugins/railscart/assets/images/railscart/railscart_logo142x65.gif +0 -0
  345. data/starter-app/vendor/plugins/railscart/assets/images/railscart/railscart_logo245x112.gif +0 -0
  346. data/starter-app/vendor/plugins/railscart/assets/images/railscart/spinner.gif +0 -0
  347. data/starter-app/vendor/plugins/railscart/assets/images/spinner.gif +0 -0
  348. data/starter-app/vendor/plugins/railscart/assets/images/visa_cid.gif +0 -0
  349. data/starter-app/vendor/plugins/railscart/assets/javascripts/application.js +2 -0
  350. data/starter-app/vendor/plugins/railscart/assets/javascripts/controls.js +833 -0
  351. data/starter-app/vendor/plugins/railscart/assets/javascripts/dragdrop.js +942 -0
  352. data/starter-app/vendor/plugins/railscart/assets/javascripts/effects.js +1088 -0
  353. data/starter-app/vendor/plugins/railscart/assets/javascripts/lowpro.js +307 -0
  354. data/starter-app/vendor/plugins/railscart/assets/javascripts/prototype.js +2515 -0
  355. data/starter-app/vendor/plugins/railscart/assets/robots.txt +1 -0
  356. data/starter-app/vendor/plugins/railscart/assets/stylesheets/cart/_controller.css +71 -0
  357. data/starter-app/vendor/plugins/railscart/assets/stylesheets/checkout/_controller.css +31 -0
  358. data/starter-app/vendor/plugins/railscart/assets/stylesheets/fullscreen.css +63 -0
  359. data/starter-app/vendor/plugins/railscart/assets/stylesheets/orders/_controller.css +3 -0
  360. data/starter-app/vendor/plugins/railscart/assets/stylesheets/products/_controller.css +13 -0
  361. data/starter-app/vendor/plugins/railscart/assets/stylesheets/railscart-admin.css +295 -0
  362. data/starter-app/vendor/plugins/railscart/assets/stylesheets/railscart.css +66 -0
  363. data/starter-app/vendor/plugins/railscart/assets/stylesheets/store/_controller.css +23 -0
  364. data/starter-app/vendor/plugins/railscart/db/migrate/001_create_addresses.rb +22 -0
  365. data/starter-app/vendor/plugins/railscart/db/migrate/002_create_cart_items.rb +14 -0
  366. data/starter-app/vendor/plugins/railscart/db/migrate/003_create_carts.rb +12 -0
  367. data/starter-app/vendor/plugins/railscart/db/migrate/004_create_categories.rb +15 -0
  368. data/starter-app/vendor/plugins/railscart/db/migrate/005_create_categories_products.rb +12 -0
  369. data/starter-app/vendor/plugins/railscart/db/migrate/006_create_line_items.rb +17 -0
  370. data/starter-app/vendor/plugins/railscart/db/migrate/007_create_option_groups.rb +12 -0
  371. data/starter-app/vendor/plugins/railscart/db/migrate/008_create_option_values.rb +11 -0
  372. data/starter-app/vendor/plugins/railscart/db/migrate/009_create_options.rb +11 -0
  373. data/starter-app/vendor/plugins/railscart/db/migrate/010_create_orders.rb +24 -0
  374. data/starter-app/vendor/plugins/railscart/db/migrate/011_create_products.rb +22 -0
  375. data/starter-app/vendor/plugins/railscart/db/migrate/012_ignore_users.rb +9 -0
  376. data/starter-app/vendor/plugins/railscart/db/migrate/013_create_txns.rb +21 -0
  377. data/starter-app/vendor/plugins/railscart/db/migrate/014_ignore_roles.rb +9 -0
  378. data/starter-app/vendor/plugins/railscart/db/migrate/015_create_variations.rb +14 -0
  379. data/starter-app/vendor/plugins/railscart/db/migrate/016_create_tax_treatments.rb +23 -0
  380. data/starter-app/vendor/plugins/railscart/db/migrate/017_create_skus.rb +13 -0
  381. data/starter-app/vendor/plugins/railscart/db/migrate/018_create_countries.rb +11 -0
  382. data/starter-app/vendor/plugins/railscart/db/migrate/019_create_states.rb +13 -0
  383. data/starter-app/vendor/plugins/railscart/db/migrate/020_modify_users.rb +9 -0
  384. data/starter-app/vendor/plugins/railscart/init.rb +16 -0
  385. data/starter-app/vendor/plugins/railscart/install.rb +3 -0
  386. data/starter-app/vendor/plugins/railscart/lib/constants/enumerable_constants.rb +207 -0
  387. data/starter-app/vendor/plugins/railscart/lib/format.rb +12 -0
  388. data/starter-app/vendor/plugins/railscart/lib/gateway/bogus_gateway.rb +63 -0
  389. data/starter-app/vendor/plugins/railscart/lib/shipping/flat_rate.rb +10 -0
  390. data/starter-app/vendor/plugins/railscart/lib/tasks/rc_bootstrap.rake +24 -0
  391. data/starter-app/vendor/plugins/railscart/lib/tax/sales_tax.rb +26 -0
  392. data/starter-app/vendor/plugins/railscart/routes.rb +3 -0
  393. data/starter-app/vendor/plugins/railscart/script/about +3 -0
  394. data/starter-app/vendor/plugins/railscart/script/breakpointer +3 -0
  395. data/starter-app/vendor/plugins/railscart/script/console +3 -0
  396. data/starter-app/vendor/plugins/railscart/script/destroy +3 -0
  397. data/starter-app/vendor/plugins/railscart/script/generate +3 -0
  398. data/starter-app/vendor/plugins/railscart/script/performance/benchmarker +3 -0
  399. data/starter-app/vendor/plugins/railscart/script/performance/profiler +3 -0
  400. data/starter-app/vendor/plugins/railscart/script/plugin +3 -0
  401. data/starter-app/vendor/plugins/railscart/script/process/inspector +3 -0
  402. data/starter-app/vendor/plugins/railscart/script/process/reaper +3 -0
  403. data/starter-app/vendor/plugins/railscart/script/process/spawner +3 -0
  404. data/starter-app/vendor/plugins/railscart/script/runner +3 -0
  405. data/starter-app/vendor/plugins/railscart/script/server +3 -0
  406. data/starter-app/vendor/plugins/railscart/test/fixtures/addresses.yml +29 -0
  407. data/starter-app/vendor/plugins/railscart/test/fixtures/categories.yml +40 -0
  408. data/starter-app/vendor/plugins/railscart/test/fixtures/line_items.yml +32 -0
  409. data/starter-app/vendor/plugins/railscart/test/fixtures/orders.yml +17 -0
  410. data/starter-app/vendor/plugins/railscart/test/fixtures/products.yml +63 -0
  411. data/starter-app/vendor/plugins/railscart/test/fixtures/products_tags.yml +10 -0
  412. data/starter-app/vendor/plugins/railscart/test/fixtures/roles.yml +6 -0
  413. data/starter-app/vendor/plugins/railscart/test/fixtures/roles_users.yml +3 -0
  414. data/starter-app/vendor/plugins/railscart/test/fixtures/skus.yml +5 -0
  415. data/starter-app/vendor/plugins/railscart/test/fixtures/tags.yml +7 -0
  416. data/starter-app/vendor/plugins/railscart/test/fixtures/tax_treatments.yml +7 -0
  417. data/starter-app/vendor/plugins/railscart/test/fixtures/txns.yml +13 -0
  418. data/starter-app/vendor/plugins/railscart/test/fixtures/users.yml +40 -0
  419. data/starter-app/vendor/plugins/railscart/test/fixtures/variations.yml +16 -0
  420. data/starter-app/vendor/plugins/railscart/test/functional/account_controller_test.rb +129 -0
  421. data/starter-app/vendor/plugins/railscart/test/functional/admin/base_controller_test.rb +18 -0
  422. data/starter-app/vendor/plugins/railscart/test/functional/admin/option_groups_controller_test.rb +18 -0
  423. data/starter-app/vendor/plugins/railscart/test/functional/admin/option_values_controller_test.rb +18 -0
  424. data/starter-app/vendor/plugins/railscart/test/functional/admin/orders_controller_test.rb +18 -0
  425. data/starter-app/vendor/plugins/railscart/test/functional/admin/overview_controller_test.rb +18 -0
  426. data/starter-app/vendor/plugins/railscart/test/functional/admin/products_controller_test.rb +125 -0
  427. data/starter-app/vendor/plugins/railscart/test/functional/admin/users_controller_test.rb +58 -0
  428. data/starter-app/vendor/plugins/railscart/test/functional/admin/variations_controller_test.rb +18 -0
  429. data/starter-app/vendor/plugins/railscart/test/functional/application_controller_test.rb +30 -0
  430. data/starter-app/vendor/plugins/railscart/test/functional/cart_controller_test.rb +76 -0
  431. data/starter-app/vendor/plugins/railscart/test/functional/checkout_controller_test.rb +20 -0
  432. data/starter-app/vendor/plugins/railscart/test/integration/authentication_test.rb +53 -0
  433. data/starter-app/vendor/plugins/railscart/test/integration/product_admin_test.rb +135 -0
  434. data/starter-app/vendor/plugins/railscart/test/integration/user_stories_test.rb +59 -0
  435. data/starter-app/vendor/plugins/railscart/test/integration/variations_test.rb +24 -0
  436. data/starter-app/vendor/plugins/railscart/test/test_helper.rb +45 -0
  437. data/starter-app/vendor/plugins/railscart/test/unit/address_test.rb +10 -0
  438. data/starter-app/vendor/plugins/railscart/test/unit/cart_item_test.rb +55 -0
  439. data/starter-app/vendor/plugins/railscart/test/unit/cart_test.rb +35 -0
  440. data/starter-app/vendor/plugins/railscart/test/unit/category_test.rb +52 -0
  441. data/starter-app/vendor/plugins/railscart/test/unit/line_item_test.rb +61 -0
  442. data/starter-app/vendor/plugins/railscart/test/unit/option_group_test.rb +12 -0
  443. data/starter-app/vendor/plugins/railscart/test/unit/order_test.rb +49 -0
  444. data/starter-app/vendor/plugins/railscart/test/unit/product_test.rb +107 -0
  445. data/starter-app/vendor/plugins/railscart/test/unit/role_test.rb +10 -0
  446. data/starter-app/vendor/plugins/railscart/test/unit/sales_tax_test.rb +46 -0
  447. data/starter-app/vendor/plugins/railscart/test/unit/sku_test.rb +10 -0
  448. data/starter-app/vendor/plugins/railscart/test/unit/tag_test.rb +9 -0
  449. data/starter-app/vendor/plugins/railscart/test/unit/tax_treatment_test.rb +10 -0
  450. data/starter-app/vendor/plugins/railscart/test/unit/txn_test.rb +10 -0
  451. data/starter-app/vendor/plugins/railscart/test/unit/variation_test.rb +9 -0
  452. data/starter-app/vendor/plugins/railscart/uninstall.rb +1 -0
  453. data/tasks/deployment.rake +34 -0
  454. data/tasks/environment.rake +7 -0
  455. data/tasks/website.rake +17 -0
  456. data/test/test_helper.rb +2 -0
  457. data/test/test_railscart.rb +11 -0
  458. data/website/index.html +93 -0
  459. data/website/index.txt +39 -0
  460. data/website/javascripts/rounded_corners_lite.inc.js +285 -0
  461. data/website/stylesheets/screen.css +138 -0
  462. data/website/template.rhtml +48 -0
  463. metadata +557 -0
@@ -0,0 +1,148 @@
1
+ # This code lets us redefine existing Rake tasks, which is extremely
2
+ # handy for modifying existing Rails rake tasks.
3
+ # Credit for the original snippet of code goes to Jeremy Kemper
4
+ # http://pastie.caboo.se/9620
5
+ unless Rake::TaskManager.methods.include?(:redefine_task)
6
+ module Rake
7
+ module TaskManager
8
+ def redefine_task(task_class, args, &block)
9
+ task_name, deps = resolve_args(args)
10
+ task_name = task_class.scope_name(@scope, task_name)
11
+ deps = [deps] unless deps.respond_to?(:to_ary)
12
+ deps = deps.collect {|d| d.to_s }
13
+ task = @tasks[task_name.to_s] = task_class.new(task_name, self)
14
+ task.application = self
15
+ @last_comment = nil
16
+ task.enhance(deps, &block)
17
+ task
18
+ end
19
+ end
20
+ class Task
21
+ class << self
22
+ def redefine_task(args, &block)
23
+ Rake.application.redefine_task(self, [args], &block)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+
30
+
31
+ namespace :db do
32
+ namespace :fixtures do
33
+ namespace :plugins do
34
+
35
+ desc "Load plugin fixtures into the current environment's database."
36
+ task :load => :environment do
37
+ require 'active_record/fixtures'
38
+ ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym)
39
+ Dir.glob(File.join(RAILS_ROOT, 'vendor', 'plugins', ENV['PLUGIN'] || '**',
40
+ 'test', 'fixtures', '*.yml')).each do |fixture_file|
41
+ Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*'))
42
+ end
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+
49
+ # this is just a modification of the original task in railties/lib/tasks/documentation.rake,
50
+ # because the default task doesn't support subdirectories like <plugin>/app or
51
+ # <plugin>/component. These tasks now include every file under a plugin's code paths (see
52
+ # Plugin#code_paths).
53
+ namespace :doc do
54
+
55
+ plugins = FileList['vendor/plugins/**'].collect { |plugin| File.basename(plugin) }
56
+
57
+ namespace :plugins do
58
+
59
+ # Define doc tasks for each plugin
60
+ plugins.each do |plugin|
61
+ desc "Create plugin documentation for '#{plugin}'"
62
+ Rake::Task.redefine_task(plugin => :environment) do
63
+ plugin_base = RAILS_ROOT + "/vendor/plugins/#{plugin}"
64
+ options = []
65
+ files = Rake::FileList.new
66
+ options << "-o doc/plugins/#{plugin}"
67
+ options << "--title '#{plugin.titlecase} Plugin Documentation'"
68
+ options << '--line-numbers' << '--inline-source'
69
+ options << '-T html'
70
+
71
+ # Include every file in the plugin's code_paths (see Plugin#code_paths)
72
+ if Engines.plugins[plugin]
73
+ files.include("#{plugin_base}/{#{Engines.plugins[plugin].code_paths.join(",")}}/**/*.rb")
74
+ end
75
+ if File.exists?("#{plugin_base}/README")
76
+ files.include("#{plugin_base}/README")
77
+ options << "--main '#{plugin_base}/README'"
78
+ end
79
+ files.include("#{plugin_base}/CHANGELOG") if File.exists?("#{plugin_base}/CHANGELOG")
80
+
81
+ if files.empty?
82
+ puts "No source files found in #{plugin_base}. No documentation will be generated."
83
+ else
84
+ options << files.to_s
85
+ sh %(rdoc #{options * ' '})
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
91
+
92
+
93
+
94
+ namespace :test do
95
+ task :warn_about_multiple_plugin_testing_with_engines do
96
+ puts %{-~============== A Moste Polite Warninge ===========================~-
97
+
98
+ You may experience issues testing multiple plugins at once when using
99
+ the code-mixing features that the engines plugin provides. If you do
100
+ experience any problems, please test plugins individually, i.e.
101
+
102
+ $ rake test:plugins PLUGIN=my_plugin
103
+
104
+ or use the per-type plugin test tasks:
105
+
106
+ $ rake test:plugins:units
107
+ $ rake test:plugins:functionals
108
+ $ rake test:plugins:integration
109
+ $ rake test:plugins:all
110
+
111
+ Report any issues on http://dev.rails-engines.org. Thanks!
112
+
113
+ -~===============( ... as you were ... )============================~-}
114
+ end
115
+
116
+ namespace :plugins do
117
+
118
+ desc "Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name)"
119
+ task :all => [:warn_about_multiple_plugin_testing_with_engines,
120
+ :units, :functionals, :integration]
121
+
122
+ desc "Run all plugin unit tests"
123
+ Rake::TestTask.new(:units => :setup_plugin_fixtures) do |t|
124
+ t.pattern = "vendor/plugins/#{ENV['PLUGIN'] || "**"}/test/unit/**/*_test.rb"
125
+ t.verbose = true
126
+ end
127
+
128
+ desc "Run all plugin functional tests"
129
+ Rake::TestTask.new(:functionals => :setup_plugin_fixtures) do |t|
130
+ t.pattern = "vendor/plugins/#{ENV['PLUGIN'] || "**"}/test/functional/**/*_test.rb"
131
+ t.verbose = true
132
+ end
133
+
134
+ desc "Integration test engines"
135
+ Rake::TestTask.new(:integration => :setup_plugin_fixtures) do |t|
136
+ t.pattern = "vendor/plugins/#{ENV['PLUGIN'] || "**"}/test/integration/**/*_test.rb"
137
+ t.verbose = true
138
+ end
139
+
140
+ desc "Mirrors plugin fixtures into a single location to help plugin tests"
141
+ task :setup_plugin_fixtures => :environment do
142
+ Engines::Testing.setup_plugin_fixtures
143
+ end
144
+
145
+ # Patch the default plugin testing task to have setup_plugin_fixtures as a prerequisite
146
+ Rake::Task["test:plugins"].prerequisites << "test:plugins:setup_plugin_fixtures"
147
+ end
148
+ end
@@ -0,0 +1,14 @@
1
+ InPlaceEditing
2
+ ==============
3
+
4
+ Example:
5
+
6
+ # Controller
7
+ class BlogController < ApplicationController
8
+ in_place_edit_for :post, :title
9
+ end
10
+
11
+ # View
12
+ <%= in_place_editor_field :post, 'title' %>
13
+
14
+ Copyright (c) 2007 David Heinemeier Hansson, released under the MIT license
@@ -0,0 +1,22 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+
5
+ desc 'Default: run unit tests.'
6
+ task :default => :test
7
+
8
+ desc 'Test in_place_editing plugin.'
9
+ Rake::TestTask.new(:test) do |t|
10
+ t.libs << 'lib'
11
+ t.pattern = 'test/**/*_test.rb'
12
+ t.verbose = true
13
+ end
14
+
15
+ desc 'Generate documentation for in_place_editing plugin.'
16
+ Rake::RDocTask.new(:rdoc) do |rdoc|
17
+ rdoc.rdoc_dir = 'rdoc'
18
+ rdoc.title = 'InPlaceEditing'
19
+ rdoc.options << '--line-numbers' << '--inline-source'
20
+ rdoc.rdoc_files.include('README')
21
+ rdoc.rdoc_files.include('lib/**/*.rb')
22
+ end
@@ -0,0 +1,2 @@
1
+ ActionController::Base.send :include, InPlaceEditing
2
+ ActionController::Base.helper InPlaceMacrosHelper
@@ -0,0 +1,25 @@
1
+ module InPlaceEditing
2
+ def self.included(base)
3
+ base.extend(ClassMethods)
4
+ end
5
+
6
+ # Example:
7
+ #
8
+ # # Controller
9
+ # class BlogController < ApplicationController
10
+ # in_place_edit_for :post, :title
11
+ # end
12
+ #
13
+ # # View
14
+ # <%= in_place_editor_field :post, 'title' %>
15
+ #
16
+ module ClassMethods
17
+ def in_place_edit_for(object, attribute, options = {})
18
+ define_method("set_#{object}_#{attribute}") do
19
+ @item = object.to_s.camelize.constantize.find(params[:id])
20
+ @item.update_attribute(attribute, params[:value])
21
+ render :text => @item.send(attribute).to_s
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,71 @@
1
+ module InPlaceMacrosHelper
2
+ # Makes an HTML element specified by the DOM ID +field_id+ become an in-place
3
+ # editor of a property.
4
+ #
5
+ # A form is automatically created and displayed when the user clicks the element,
6
+ # something like this:
7
+ # <form id="myElement-in-place-edit-form" target="specified url">
8
+ # <input name="value" text="The content of myElement"/>
9
+ # <input type="submit" value="ok"/>
10
+ # <a onclick="javascript to cancel the editing">cancel</a>
11
+ # </form>
12
+ #
13
+ # The form is serialized and sent to the server using an AJAX call, the action on
14
+ # the server should process the value and return the updated value in the body of
15
+ # the reponse. The element will automatically be updated with the changed value
16
+ # (as returned from the server).
17
+ #
18
+ # Required +options+ are:
19
+ # <tt>:url</tt>:: Specifies the url where the updated value should
20
+ # be sent after the user presses "ok".
21
+ #
22
+ # Addtional +options+ are:
23
+ # <tt>:rows</tt>:: Number of rows (more than 1 will use a TEXTAREA)
24
+ # <tt>:cols</tt>:: Number of characters the text input should span (works for both INPUT and TEXTAREA)
25
+ # <tt>:size</tt>:: Synonym for :cols when using a single line text input.
26
+ # <tt>:cancel_text</tt>:: The text on the cancel link. (default: "cancel")
27
+ # <tt>:save_text</tt>:: The text on the save link. (default: "ok")
28
+ # <tt>:loading_text</tt>:: The text to display while the data is being loaded from the server (default: "Loading...")
29
+ # <tt>:saving_text</tt>:: The text to display when submitting to the server (default: "Saving...")
30
+ # <tt>:external_control</tt>:: The id of an external control used to enter edit mode.
31
+ # <tt>:load_text_url</tt>:: URL where initial value of editor (content) is retrieved.
32
+ # <tt>:options</tt>:: Pass through options to the AJAX call (see prototype's Ajax.Updater)
33
+ # <tt>:with</tt>:: JavaScript snippet that should return what is to be sent
34
+ # in the AJAX call, +form+ is an implicit parameter
35
+ # <tt>:script</tt>:: Instructs the in-place editor to evaluate the remote JavaScript response (default: false)
36
+ # <tt>:click_to_edit_text</tt>::The text shown during mouseover the editable text (default: "Click to edit")
37
+ def in_place_editor(field_id, options = {})
38
+ function = "new Ajax.InPlaceEditor("
39
+ function << "'#{field_id}', "
40
+ function << "'#{url_for(options[:url])}'"
41
+
42
+ js_options = {}
43
+ js_options['cancelText'] = %('#{options[:cancel_text]}') if options[:cancel_text]
44
+ js_options['okText'] = %('#{options[:save_text]}') if options[:save_text]
45
+ js_options['loadingText'] = %('#{options[:loading_text]}') if options[:loading_text]
46
+ js_options['savingText'] = %('#{options[:saving_text]}') if options[:saving_text]
47
+ js_options['rows'] = options[:rows] if options[:rows]
48
+ js_options['cols'] = options[:cols] if options[:cols]
49
+ js_options['size'] = options[:size] if options[:size]
50
+ js_options['externalControl'] = "'#{options[:external_control]}'" if options[:external_control]
51
+ js_options['loadTextURL'] = "'#{url_for(options[:load_text_url])}'" if options[:load_text_url]
52
+ js_options['ajaxOptions'] = options[:options] if options[:options]
53
+ js_options['evalScripts'] = options[:script] if options[:script]
54
+ js_options['callback'] = "function(form) { return #{options[:with]} }" if options[:with]
55
+ js_options['clickToEditText'] = %('#{options[:click_to_edit_text]}') if options[:click_to_edit_text]
56
+ function << (', ' + options_for_javascript(js_options)) unless js_options.empty?
57
+
58
+ function << ')'
59
+
60
+ javascript_tag(function)
61
+ end
62
+
63
+ # Renders the value of the specified object and method with in-place editing capabilities.
64
+ def in_place_editor_field(object, method, tag_options = {}, in_place_editor_options = {})
65
+ tag = ::ActionView::Helpers::InstanceTag.new(object, method, self)
66
+ tag_options = {:tag => "span", :id => "#{object}_#{method}_#{tag.object.id}_in_place_editor", :class => "in_place_editor_field"}.merge!(tag_options)
67
+ in_place_editor_options[:url] = in_place_editor_options[:url] || url_for({ :action => "set_#{object}_#{method}", :id => tag.object.id })
68
+ tag.to_content_tag(tag_options.delete(:tag), tag_options) +
69
+ in_place_editor(tag_options[:id], in_place_editor_options)
70
+ end
71
+ end
@@ -0,0 +1,69 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), '../../../../test/test_helper'))
2
+ require 'test/unit'
3
+
4
+ class InPlaceEditingTest < Test::Unit::TestCase
5
+ include InPlaceEditing
6
+ include InPlaceMacrosHelper
7
+
8
+ include ActionView::Helpers::UrlHelper
9
+ include ActionView::Helpers::TagHelper
10
+ include ActionView::Helpers::TextHelper
11
+ include ActionView::Helpers::FormHelper
12
+ include ActionView::Helpers::CaptureHelper
13
+
14
+ def setup
15
+ @controller = Class.new do
16
+ def url_for(options)
17
+ url = "http://www.example.com/"
18
+ url << options[:action].to_s if options and options[:action]
19
+ url
20
+ end
21
+ end
22
+ @controller = @controller.new
23
+ end
24
+
25
+ def test_in_place_editor_external_control
26
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Ajax.InPlaceEditor('some_input', 'http://www.example.com/inplace_edit', {externalControl:'blah'})\n//]]>\n</script>),
27
+ in_place_editor('some_input', {:url => {:action => 'inplace_edit'}, :external_control => 'blah'})
28
+ end
29
+
30
+ def test_in_place_editor_size
31
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Ajax.InPlaceEditor('some_input', 'http://www.example.com/inplace_edit', {size:4})\n//]]>\n</script>),
32
+ in_place_editor('some_input', {:url => {:action => 'inplace_edit'}, :size => 4})
33
+ end
34
+
35
+ def test_in_place_editor_cols_no_rows
36
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Ajax.InPlaceEditor('some_input', 'http://www.example.com/inplace_edit', {cols:4})\n//]]>\n</script>),
37
+ in_place_editor('some_input', {:url => {:action => 'inplace_edit'}, :cols => 4})
38
+ end
39
+
40
+ def test_in_place_editor_cols_with_rows
41
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Ajax.InPlaceEditor('some_input', 'http://www.example.com/inplace_edit', {cols:40, rows:5})\n//]]>\n</script>),
42
+ in_place_editor('some_input', {:url => {:action => 'inplace_edit'}, :rows => 5, :cols => 40})
43
+ end
44
+
45
+ def test_inplace_editor_loading_text
46
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Ajax.InPlaceEditor('some_input', 'http://www.example.com/inplace_edit', {loadingText:'Why are we waiting?'})\n//]]>\n</script>),
47
+ in_place_editor('some_input', {:url => {:action => 'inplace_edit'}, :loading_text => 'Why are we waiting?'})
48
+ end
49
+
50
+ def test_in_place_editor_url
51
+ assert_match "Ajax.InPlaceEditor('id-goes-here', 'http://www.example.com/action_to_set_value')",
52
+ in_place_editor( 'id-goes-here', :url => { :action => "action_to_set_value" })
53
+ end
54
+
55
+ def test_in_place_editor_load_text_url
56
+ assert_match "Ajax.InPlaceEditor('id-goes-here', 'http://www.example.com/action_to_set_value', {loadTextURL:'http://www.example.com/action_to_get_value'})",
57
+ in_place_editor( 'id-goes-here',
58
+ :url => { :action => "action_to_set_value" },
59
+ :load_text_url => { :action => "action_to_get_value" })
60
+ end
61
+
62
+ def test_in_place_editor_eval_scripts
63
+ assert_match "Ajax.InPlaceEditor('id-goes-here', 'http://www.example.com/action_to_set_value', {evalScripts:true})",
64
+ in_place_editor( 'id-goes-here',
65
+ :url => { :action => "action_to_set_value" },
66
+ :script => true )
67
+ end
68
+
69
+ end
@@ -0,0 +1,117 @@
1
+ 2007-11-13
2
+ * Removed extraneous statement from collect_count_options. Thanks to Wolfgang Postler.
3
+
4
+ 2007-9-14
5
+ * Count query now respects the distinct keyword if it is included in the :select option. Thanks to Luke Pearce.
6
+
7
+ 2007-8-25
8
+ * PagingEnumerator#each now returns self. Thanks to Takeru Sasaki.
9
+ * Addeed #to_xml to the PagingEnumerator.
10
+
11
+ 2007-8-24
12
+ * No longer overwrite the AR #validate_find_options method. Instead just append :page to VALID_FIND_OPTIONS. Thanks for the suggestion Pratik.
13
+
14
+ 2007-7-24
15
+ * Fixed a bug in handling the HAVING having clause. Thanks to Daniel Aborg for the patch!
16
+ * Added support for Array#extract_options! added to Rails edge (9087). Thanks to Alex Payne!
17
+ * Tests no longer use with_scope since it became protected in Rails edge.
18
+
19
+ 2007-5-7
20
+ * Now uses alias_method_chain. Thanks to Jeremy Larkin for the patch.
21
+
22
+ 2007-4-27
23
+ * PagingEnumerator now supports Marshal.dump and Marshal.load. When marshaled, the enumerator loses its callback, so :auto => true is not supported in this scenario.
24
+
25
+ 2007-02-05
26
+ * :current < 1 is now gracefully handled. Thanks again to Benjamin Curtis and 21st Century Music.
27
+
28
+ 2007-01-24
29
+ * Added paging_helper that provides paginating_links and paginating_links_each to ActionView::Base. Special thanks to Benjamin Curtis and 21st Century Music (http://21cmusic.com/)!
30
+
31
+ 2007-01-07
32
+ * :first now defaults to 1 rather than the value of :page. Thanks to Jack Baty for bringing this to my attention.
33
+
34
+ 2006-12-28
35
+ * primary_key used to build count select statement rather than "id" column. Thanks to Rich Cox.
36
+
37
+ 2006-12-21
38
+ * Applied another fix to counting with :group option. Special thanks to Ben Weiner.
39
+ * Placed tests for grouping in a separate class.
40
+
41
+ 2006-12-12
42
+ * Removed rails from vendor directory.
43
+
44
+ 2006-11-27
45
+ * For purposes of counting, the HAVING statement is now extracted from the :group option as a convenience for users that are hacking around the lack of a AR#find :having option. Thanks to Gavin Joyce for pointing out this usage of :group. More info here: http://www.mail-archive.com/rails-core@lists.rubyonrails.org/msg01876.html.
46
+ * For purposes of counting, the :select option is now ignored in favor of table_name.id. Thanks to Aron Atkins for reporting a bug that led to this fix.
47
+
48
+ 2006-10-17
49
+ * Count query no longer uses :limit. This option doesn't have the same effect on count as it does on find. The :limit is applied to the count after the query is performed, if necessary.
50
+ * Count query no longer uses :group. Grouping during a count doesn't get any different count than not grouping.
51
+ * Count query no longer uses :order for the same reasons that :group is no longer used.
52
+
53
+ 2006-09-26
54
+ * Change log is now in reverse chronological order
55
+ * Count query now respects :group and :order. Previous changes removing this functionality are no longer applicable.
56
+
57
+ 2006-09-19
58
+ * Added :count option. Using this will cause the plugin to skip the automatic database count query (which can sometimes be slow).
59
+ * The :limit option no longer affects whether the count query will run.
60
+ * Fixed a bug reported by Lisa, where the count query was choking on grouped results. The count query now ignores :group.
61
+
62
+ 2006-09-14
63
+ * Scoping now works correctly, even when enumeration is done outside the #with_scope code block.
64
+ * Added the #empty? method.
65
+ * Added #first_item and #last_item, which return the index of the first and last items on the current page. Thanks, Ilya!
66
+
67
+ 2006-09-10
68
+ * Now works correctly :with_scope, nested :with_scope, and :include.
69
+ * Now correctly counts when querying on through associations.
70
+ * Rewrote paginating_find_test so that it uses real AR::Base models, rather than mocks.
71
+ * Trying out a bare-bones instance of rails in order to run tests without having to install the plugin.
72
+
73
+ 2006-09-10
74
+ * next_page? and previous_page? now return booleans rather than the page number. Thanks, Hammed.
75
+ * next_page and previous_page have been added.
76
+ * The total count now correctly respects conditions, includes, etc. Thanks, Ilya
77
+
78
+ 2006-09-09
79
+ * ArgumentError is now correctly thrown if options[:offset] is used. Thanks, jonni!
80
+
81
+ 2006-09-08
82
+ * :conditions are now correctly respected when paging is enabled
83
+ * :size now defaults to total number of records if less than ten.
84
+
85
+ 2006-09-06
86
+ * Added #last_page! method. Only works when :auto => true.
87
+ * Added #first_page! method. Only works when :auto => true.
88
+ * Added the #move!(page) method. Only works when :auto => true.
89
+ * Added the #previous_page!(page) method. Only works when :auto => true.
90
+ * Added the #page_exists?(page) method.
91
+ * The #load_page method is no longer protected.
92
+ * Fixed bug in #to_a that was causing :limit to be exceeded.
93
+ * An ArgumentError is now raised if both :page and :offset options are specified
94
+ * The first page and current page can be specified separately, using the :first and :current options respectively.
95
+ * Reversed semantics of automatic pagination. By default, the enumerator will stop after all records on current page. To enumerate all records, pass option :auto => true.
96
+ * :manual_paging is no longer supported. Use the :auto option instead. :auto defaults to false.
97
+ * All paging options are now specified in a hash, keyed by :page. This is mostly an aesthetics issue:
98
+ # The old way:
99
+ cogs = Cog.find(:all,
100
+ :limit => 3000,
101
+ :page_size => 10,
102
+ :page => 1,
103
+ :manual_paging => true)
104
+
105
+ # The new way:
106
+ cogs = Cog.find(:all,
107
+ :limit => 3000,
108
+ :page => {:size => 10,
109
+ :current => 1})
110
+
111
+ * The following :page options are supported in this revision:
112
+ :size => Number of records in each page of results. Defaults to 1/10
113
+ the total size if total size > 10, otherwise defaults to
114
+ the total size.
115
+ :current => The current page. Optional, defaults to the first page: 1.
116
+ :first => The first page. Optional, defaults to the current page.
117
+ :auto => Automatically load the next page during invocation of #each. Defaults to false.