railscart 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +3 -0
- data/License.txt +26 -0
- data/Manifest.txt +462 -0
- data/README.txt +1 -0
- data/Rakefile +4 -0
- data/bin/railscart +114 -0
- data/config/hoe.rb +78 -0
- data/config/requirements.rb +19 -0
- data/lib/railscart.rb +5 -0
- data/lib/railscart/version.rb +9 -0
- data/log/debug.log +0 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +74 -0
- data/setup.rb +1585 -0
- data/starter-app/README +182 -0
- data/starter-app/Rakefile +10 -0
- data/starter-app/app/controllers/application.rb +14 -0
- data/starter-app/app/helpers/application_helper.rb +3 -0
- data/starter-app/app/models/role.rb +3 -0
- data/starter-app/app/models/tag.rb +37 -0
- data/starter-app/app/models/tagging.rb +16 -0
- data/starter-app/app/models/user.rb +101 -0
- data/starter-app/app/views/layouts/application.rhtml +20 -0
- data/starter-app/config/boot.rb +45 -0
- data/starter-app/config/database.yml +23 -0
- data/starter-app/config/environment.rb +119 -0
- data/starter-app/config/environments/development.rb +21 -0
- data/starter-app/config/environments/production.rb +21 -0
- data/starter-app/config/environments/test.rb +19 -0
- data/starter-app/config/routes.rb +28 -0
- data/starter-app/db/migrate/001_add_sessions.rb +16 -0
- data/starter-app/db/migrate/002_create_tags_and_taggings.rb +28 -0
- data/starter-app/db/migrate/003_railscart_to_version_19.rb +9 -0
- data/starter-app/db/migrate/004_railscart_to_version_20.rb +9 -0
- data/starter-app/db/migrate/005_create_users.rb +17 -0
- data/starter-app/db/migrate/006_create_roles.rb +20 -0
- data/starter-app/db/sample/addresses.yml +29 -0
- data/starter-app/db/sample/categories.yml +35 -0
- data/starter-app/db/sample/countries.yml +4 -0
- data/starter-app/db/sample/line_items.yml +32 -0
- data/starter-app/db/sample/option_groups.yml +16 -0
- data/starter-app/db/sample/option_values.yml +13 -0
- data/starter-app/db/sample/options.yml +3 -0
- data/starter-app/db/sample/orders.yml +17 -0
- data/starter-app/db/sample/products.yml +70 -0
- data/starter-app/db/sample/roles.yml +3 -0
- data/starter-app/db/sample/skus.yml +35 -0
- data/starter-app/db/sample/states.yml +204 -0
- data/starter-app/db/sample/taggings.yml +16 -0
- data/starter-app/db/sample/tags.yml +6 -0
- data/starter-app/db/sample/txns.yml +13 -0
- data/starter-app/db/sample/users.yml +10 -0
- data/starter-app/db/sample/variations.yml +20 -0
- data/starter-app/doc/README_FOR_APP +2 -0
- data/starter-app/lib/authenticated_system.rb +116 -0
- data/starter-app/lib/authenticated_test_helper.rb +10 -0
- data/starter-app/lib/custom_fixtures.rb +7 -0
- data/starter-app/lib/hijacker.rb +78 -0
- data/starter-app/lib/role_requirement_system.rb +142 -0
- data/starter-app/lib/role_requirement_test_helper.rb +86 -0
- data/starter-app/lib/tagging_extensions.rb +104 -0
- data/starter-app/lib/tasks/rc_sample_data.rake +31 -0
- data/starter-app/lib/tasks/sample/images/ror_bag.jpg +0 -0
- data/starter-app/lib/tasks/sample/images/ror_baseball_jersey.jpg +0 -0
- data/starter-app/lib/tasks/sample/images/ror_jr_spaghetti.jpg +0 -0
- data/starter-app/lib/tasks/sample/images/ror_mug.jpg +0 -0
- data/starter-app/lib/tasks/sample/images/ror_ringer_tshirt.jpg +0 -0
- data/starter-app/lib/tasks/sample/images/ror_stein.jpg +0 -0
- data/starter-app/lib/tasks/sample/images/ror_tote.jpg +0 -0
- data/starter-app/public/.htaccess +40 -0
- data/starter-app/public/404.html +30 -0
- data/starter-app/public/500.html +30 -0
- data/starter-app/public/dispatch.cgi +10 -0
- data/starter-app/public/dispatch.fcgi +24 -0
- data/starter-app/public/dispatch.rb +10 -0
- data/starter-app/public/favicon.ico +0 -0
- data/starter-app/public/images/rails.png +0 -0
- data/starter-app/public/index.html +277 -0
- data/starter-app/public/javascripts/application.js +2 -0
- data/starter-app/public/javascripts/controls.js +833 -0
- data/starter-app/public/javascripts/dragdrop.js +942 -0
- data/starter-app/public/javascripts/effects.js +1088 -0
- data/starter-app/public/javascripts/prototype.js +4184 -0
- data/starter-app/public/robots.txt +1 -0
- data/starter-app/public/stylesheets/application.css +186 -0
- data/starter-app/public/stylesheets/cart/_controller.css +4 -0
- data/starter-app/public/stylesheets/checkout/_controller.css +13 -0
- data/starter-app/script/about +3 -0
- data/starter-app/script/breakpointer +3 -0
- data/starter-app/script/console +3 -0
- data/starter-app/script/destroy +3 -0
- data/starter-app/script/generate +3 -0
- data/starter-app/script/performance/benchmarker +3 -0
- data/starter-app/script/performance/profiler +3 -0
- data/starter-app/script/plugin +3 -0
- data/starter-app/script/process/inspector +3 -0
- data/starter-app/script/process/reaper +3 -0
- data/starter-app/script/process/spawner +3 -0
- data/starter-app/script/runner +3 -0
- data/starter-app/script/server +3 -0
- data/starter-app/test/fixtures/users.yml +7 -0
- data/starter-app/test/test_helper.rb +28 -0
- data/starter-app/test/unit/user_test.rb +8 -0
- data/starter-app/vendor/plugins/acts_as_list/README +23 -0
- data/starter-app/vendor/plugins/acts_as_list/init.rb +3 -0
- data/starter-app/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb +256 -0
- data/starter-app/vendor/plugins/acts_as_list/test/list_test.rb +332 -0
- data/starter-app/vendor/plugins/acts_as_tree/README +26 -0
- data/starter-app/vendor/plugins/acts_as_tree/Rakefile +22 -0
- data/starter-app/vendor/plugins/acts_as_tree/init.rb +1 -0
- data/starter-app/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +96 -0
- data/starter-app/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
- data/starter-app/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +219 -0
- data/starter-app/vendor/plugins/acts_as_tree/test/database.yml +0 -0
- data/starter-app/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
- data/starter-app/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
- data/starter-app/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
- data/starter-app/vendor/plugins/calendar_date_select/CHANGELOG +170 -0
- data/starter-app/vendor/plugins/calendar_date_select/MIT-LICENSE +20 -0
- data/starter-app/vendor/plugins/calendar_date_select/README +10 -0
- data/starter-app/vendor/plugins/calendar_date_select/init.rb +15 -0
- data/starter-app/vendor/plugins/calendar_date_select/js_test/functional/.tmp_cds_test.html +306 -0
- data/starter-app/vendor/plugins/calendar_date_select/js_test/functional/cds_test.html +324 -0
- data/starter-app/vendor/plugins/calendar_date_select/js_test/prototype.js +4184 -0
- data/starter-app/vendor/plugins/calendar_date_select/js_test/test.css +40 -0
- data/starter-app/vendor/plugins/calendar_date_select/js_test/unit/cds_helper_methods.html +46 -0
- data/starter-app/vendor/plugins/calendar_date_select/js_test/unittest.js +564 -0
- data/starter-app/vendor/plugins/calendar_date_select/lib/calendar_date_select.rb +192 -0
- data/starter-app/vendor/plugins/calendar_date_select/lib/includes_helper.rb +22 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/images/calendar_date_select/calendar.gif +0 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/calendar_date_select.js +439 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_american.js +34 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_euro_24hr.js +7 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_finnish.js +24 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_hyphen_ampm.js +36 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/format_italian.js +24 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/javascripts/calendar_date_select/locale/fi.js +10 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/blue.css +130 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/default.css +135 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/plain.css +128 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/red.css +135 -0
- data/starter-app/vendor/plugins/calendar_date_select/public/stylesheets/calendar_date_select/silver.css +133 -0
- data/starter-app/vendor/plugins/calendar_date_select/test/functional/calendar_date_select_test.rb +95 -0
- data/starter-app/vendor/plugins/calendar_date_select/test/functional/helper_methods_test.rb +15 -0
- data/starter-app/vendor/plugins/calendar_date_select/test/test_helper.rb +26 -0
- data/starter-app/vendor/plugins/engines/CHANGELOG +258 -0
- data/starter-app/vendor/plugins/engines/MIT-LICENSE +21 -0
- data/starter-app/vendor/plugins/engines/README +63 -0
- data/starter-app/vendor/plugins/engines/Rakefile +32 -0
- data/starter-app/vendor/plugins/engines/about.yml +7 -0
- data/starter-app/vendor/plugins/engines/boot.rb +18 -0
- data/starter-app/vendor/plugins/engines/generators/plugin_migration/USAGE +45 -0
- data/starter-app/vendor/plugins/engines/generators/plugin_migration/plugin_migration_generator.rb +79 -0
- data/starter-app/vendor/plugins/engines/generators/plugin_migration/templates/plugin_migration.erb +13 -0
- data/starter-app/vendor/plugins/engines/init.rb +2 -0
- data/starter-app/vendor/plugins/engines/lib/engines.rb +169 -0
- data/starter-app/vendor/plugins/engines/lib/engines/assets.rb +38 -0
- data/starter-app/vendor/plugins/engines/lib/engines/plugin.rb +125 -0
- data/starter-app/vendor/plugins/engines/lib/engines/plugin/list.rb +30 -0
- data/starter-app/vendor/plugins/engines/lib/engines/plugin/loader.rb +18 -0
- data/starter-app/vendor/plugins/engines/lib/engines/plugin/locator.rb +11 -0
- data/starter-app/vendor/plugins/engines/lib/engines/plugin/migrator.rb +60 -0
- data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/action_mailer.rb +85 -0
- data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/active_record.rb +24 -0
- data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/asset_helpers.rb +119 -0
- data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/dependencies.rb +145 -0
- data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/migrations.rb +161 -0
- data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/rails.rb +11 -0
- data/starter-app/vendor/plugins/engines/lib/engines/rails_extensions/routing.rb +84 -0
- data/starter-app/vendor/plugins/engines/lib/engines/testing.rb +87 -0
- data/starter-app/vendor/plugins/engines/tasks/engines.rake +148 -0
- data/starter-app/vendor/plugins/in_place_editing/README +14 -0
- data/starter-app/vendor/plugins/in_place_editing/Rakefile +22 -0
- data/starter-app/vendor/plugins/in_place_editing/init.rb +2 -0
- data/starter-app/vendor/plugins/in_place_editing/lib/in_place_editing.rb +25 -0
- data/starter-app/vendor/plugins/in_place_editing/lib/in_place_macros_helper.rb +71 -0
- data/starter-app/vendor/plugins/in_place_editing/test/in_place_editing_test.rb +69 -0
- data/starter-app/vendor/plugins/paginating_find/CHANGELOG +117 -0
- data/starter-app/vendor/plugins/paginating_find/README +89 -0
- data/starter-app/vendor/plugins/paginating_find/init.rb +2 -0
- data/starter-app/vendor/plugins/paginating_find/lib/paginating_find.rb +135 -0
- data/starter-app/vendor/plugins/paginating_find/lib/paging_enumerator.rb +158 -0
- data/starter-app/vendor/plugins/paginating_find/lib/paging_helper.rb +47 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/Rakefile +10 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/app/controllers/application.rb +2 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/config/boot.rb +44 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/config/database.yml +6 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/config/environment.rb +53 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/config/environments/test.rb +19 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/config/routes.rb +22 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/db/schema.rb +16 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/script/breakpointer +3 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/script/console +3 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/test/fixtures/articles.yml +19 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/test/fixtures/authors.yml +7 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/test/fixtures/edits.yml +11 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/test/fixtures/models.rb +18 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/test/test_helper.rb +33 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/test/unit/abstract_test.rb +7 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/test/unit/group_test.rb +40 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/test/unit/paginating_find_test.rb +194 -0
- data/starter-app/vendor/plugins/paginating_find/test_app/test/unit/paging_enumerator_test.rb +143 -0
- data/starter-app/vendor/plugins/railscart/.rakeTasks +7 -0
- data/starter-app/vendor/plugins/railscart/CHANGELOG +1 -0
- data/starter-app/vendor/plugins/railscart/LICENSE +26 -0
- data/starter-app/vendor/plugins/railscart/README +2 -0
- data/starter-app/vendor/plugins/railscart/Rakefile +10 -0
- data/starter-app/vendor/plugins/railscart/VERSION +1 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/account_controller.rb +48 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/base_controller.rb +7 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/categories_controller.rb +107 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/option_groups_controller.rb +36 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/option_values_controller.rb +42 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/options_controller.rb +52 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/orders_controller.rb +194 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/overview_controller.rb +14 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/products_controller.rb +147 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/reports_controller.rb +53 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/users_controller.rb +45 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/admin/variations_controller.rb +73 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/cart_controller.rb +45 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/checkout_controller.rb +179 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/rails_cart/base_controller.rb +41 -0
- data/starter-app/vendor/plugins/railscart/app/controllers/store_controller.rb +20 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/account_helper.rb +2 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/admin/base_helper.rb +15 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/admin/categories_helper.rb +3 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/admin/option_groups_helper.rb +2 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/admin/option_values_helper.rb +2 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/admin/orders_helper.rb +11 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/admin/overview_helper.rb +12 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/admin/users_helper.rb +2 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/admin/variations_helper.rb +2 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/cart_helper.rb +6 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/checkout_helper.rb +17 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/rails_cart/base_helper.rb +67 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/search_helper.rb +10 -0
- data/starter-app/vendor/plugins/railscart/app/helpers/store_helper.rb +3 -0
- data/starter-app/vendor/plugins/railscart/app/models/address.rb +17 -0
- data/starter-app/vendor/plugins/railscart/app/models/cart.rb +37 -0
- data/starter-app/vendor/plugins/railscart/app/models/cart_item.rb +28 -0
- data/starter-app/vendor/plugins/railscart/app/models/category.rb +66 -0
- data/starter-app/vendor/plugins/railscart/app/models/country.rb +3 -0
- data/starter-app/vendor/plugins/railscart/app/models/line_item.rb +24 -0
- data/starter-app/vendor/plugins/railscart/app/models/option.rb +4 -0
- data/starter-app/vendor/plugins/railscart/app/models/option_group.rb +6 -0
- data/starter-app/vendor/plugins/railscart/app/models/option_value.rb +4 -0
- data/starter-app/vendor/plugins/railscart/app/models/order.rb +86 -0
- data/starter-app/vendor/plugins/railscart/app/models/order_mailer.rb +20 -0
- data/starter-app/vendor/plugins/railscart/app/models/payment.rb +49 -0
- data/starter-app/vendor/plugins/railscart/app/models/product.rb +76 -0
- data/starter-app/vendor/plugins/railscart/app/models/search_criteria.rb +27 -0
- data/starter-app/vendor/plugins/railscart/app/models/sku.rb +7 -0
- data/starter-app/vendor/plugins/railscart/app/models/state.rb +3 -0
- data/starter-app/vendor/plugins/railscart/app/models/tax_treatment.rb +2 -0
- data/starter-app/vendor/plugins/railscart/app/models/txn.rb +7 -0
- data/starter-app/vendor/plugins/railscart/app/models/variation.rb +5 -0
- data/starter-app/vendor/plugins/railscart/app/views/account/index.rhtml +3 -0
- data/starter-app/vendor/plugins/railscart/app/views/account/login.rhtml +12 -0
- data/starter-app/vendor/plugins/railscart/app/views/account/signup.rhtml +16 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/categories/_form.rhtml +27 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/categories/edit.rhtml +9 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/categories/list.rhtml +47 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/categories/new.rhtml +8 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/option_groups/_form.rhtml +19 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/option_groups/new.rhtml +8 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/option_values/_form.rhtml +8 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/option_values/edit.rhtml +8 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/option_values/list.rhtml +22 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/option_values/new.rhtml +8 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/options/_form.rhtml +7 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/options/edit.rhtml +26 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/options/list.rhtml +23 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/options/new.rhtml +8 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/orders/_address.rhtml +37 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/orders/index.rhtml +99 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/orders/show.rhtml +43 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/overview/index.rhtml +0 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/products/_form.rhtml +55 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/products/_menu.rhtml +8 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/products/_new_variation.rhtml +0 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/products/edit.rhtml +8 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/products/index.rhtml +66 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/products/new.rhtml +13 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/products/show.rhtml +26 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/reports/index.rhtml +29 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/reports/sales_total.rhtml +28 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/users/_form.rhtml +29 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/users/_menu.rhtml +5 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/users/edit.rhtml +8 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/users/index.rhtml +26 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/users/new.rhtml +6 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/users/show.rhtml +9 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/variations/_form.rhtml +33 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/variations/_option_values.rhtml +5 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/variations/list.rhtml +23 -0
- data/starter-app/vendor/plugins/railscart/app/views/admin/variations/new.rhtml +14 -0
- data/starter-app/vendor/plugins/railscart/app/views/cart/index.rhtml +49 -0
- data/starter-app/vendor/plugins/railscart/app/views/checkout/_address.rhtml +51 -0
- data/starter-app/vendor/plugins/railscart/app/views/checkout/_address_ro.rhtml +18 -0
- data/starter-app/vendor/plugins/railscart/app/views/checkout/_cart_item.rhtml +5 -0
- data/starter-app/vendor/plugins/railscart/app/views/checkout/_extra.rhtml +1 -0
- data/starter-app/vendor/plugins/railscart/app/views/checkout/addresses.rhtml +49 -0
- data/starter-app/vendor/plugins/railscart/app/views/checkout/cvv.rhtml +15 -0
- data/starter-app/vendor/plugins/railscart/app/views/checkout/empty_cart.rhtml +4 -0
- data/starter-app/vendor/plugins/railscart/app/views/checkout/final_confirmation.rhtml +92 -0
- data/starter-app/vendor/plugins/railscart/app/views/checkout/incomplete.rhtml +7 -0
- data/starter-app/vendor/plugins/railscart/app/views/checkout/thank_you.rhtml +11 -0
- data/starter-app/vendor/plugins/railscart/app/views/layouts/admin.rhtml +69 -0
- data/starter-app/vendor/plugins/railscart/app/views/layouts/products.rhtml +20 -0
- data/starter-app/vendor/plugins/railscart/app/views/layouts/simple.rhtml +37 -0
- data/starter-app/vendor/plugins/railscart/app/views/order_mailer/cancel.rhtml +15 -0
- data/starter-app/vendor/plugins/railscart/app/views/order_mailer/confirm.rhtml +18 -0
- data/starter-app/vendor/plugins/railscart/app/views/shared/_order_details.rhtml +35 -0
- data/starter-app/vendor/plugins/railscart/app/views/shared/_paginate.rhtml +34 -0
- data/starter-app/vendor/plugins/railscart/app/views/shared/_report_criteria.rhtml +32 -0
- data/starter-app/vendor/plugins/railscart/app/views/shared/_tax_treatments.rhtml +12 -0
- data/starter-app/vendor/plugins/railscart/app/views/shared/_variations.rhtml +60 -0
- data/starter-app/vendor/plugins/railscart/app/views/store/_menu.rhtml +7 -0
- data/starter-app/vendor/plugins/railscart/app/views/store/_products.rhtml +10 -0
- data/starter-app/vendor/plugins/railscart/app/views/store/list.rhtml +16 -0
- data/starter-app/vendor/plugins/railscart/app/views/store/show.rhtml +71 -0
- data/starter-app/vendor/plugins/railscart/assets/.htaccess +40 -0
- data/starter-app/vendor/plugins/railscart/assets/404.html +30 -0
- data/starter-app/vendor/plugins/railscart/assets/500.html +30 -0
- data/starter-app/vendor/plugins/railscart/assets/dispatch.cgi +10 -0
- data/starter-app/vendor/plugins/railscart/assets/dispatch.fcgi +24 -0
- data/starter-app/vendor/plugins/railscart/assets/dispatch.rb +10 -0
- data/starter-app/vendor/plugins/railscart/assets/favicon.ico +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/amex_cid.gif +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/creditcard.gif +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/discover_cid.gif +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/master_cid.jpg +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/products/ror_bag.jpg +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/products/ror_baseball_jersey.jpg +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/products/ror_jr_spaghetti.jpg +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/products/ror_mug.jpg +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/products/ror_ringer_tshirt.jpg +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/products/ror_stein.jpg +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/products/ror_tote.jpg +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/rails.png +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/railscart/progress.gif +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/railscart/railscart_logo142x65.gif +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/railscart/railscart_logo245x112.gif +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/railscart/spinner.gif +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/spinner.gif +0 -0
- data/starter-app/vendor/plugins/railscart/assets/images/visa_cid.gif +0 -0
- data/starter-app/vendor/plugins/railscart/assets/javascripts/application.js +2 -0
- data/starter-app/vendor/plugins/railscart/assets/javascripts/controls.js +833 -0
- data/starter-app/vendor/plugins/railscart/assets/javascripts/dragdrop.js +942 -0
- data/starter-app/vendor/plugins/railscart/assets/javascripts/effects.js +1088 -0
- data/starter-app/vendor/plugins/railscart/assets/javascripts/lowpro.js +307 -0
- data/starter-app/vendor/plugins/railscart/assets/javascripts/prototype.js +2515 -0
- data/starter-app/vendor/plugins/railscart/assets/robots.txt +1 -0
- data/starter-app/vendor/plugins/railscart/assets/stylesheets/cart/_controller.css +71 -0
- data/starter-app/vendor/plugins/railscart/assets/stylesheets/checkout/_controller.css +31 -0
- data/starter-app/vendor/plugins/railscart/assets/stylesheets/fullscreen.css +63 -0
- data/starter-app/vendor/plugins/railscart/assets/stylesheets/orders/_controller.css +3 -0
- data/starter-app/vendor/plugins/railscart/assets/stylesheets/products/_controller.css +13 -0
- data/starter-app/vendor/plugins/railscart/assets/stylesheets/railscart-admin.css +295 -0
- data/starter-app/vendor/plugins/railscart/assets/stylesheets/railscart.css +66 -0
- data/starter-app/vendor/plugins/railscart/assets/stylesheets/store/_controller.css +23 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/001_create_addresses.rb +22 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/002_create_cart_items.rb +14 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/003_create_carts.rb +12 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/004_create_categories.rb +15 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/005_create_categories_products.rb +12 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/006_create_line_items.rb +17 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/007_create_option_groups.rb +12 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/008_create_option_values.rb +11 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/009_create_options.rb +11 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/010_create_orders.rb +24 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/011_create_products.rb +22 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/012_ignore_users.rb +9 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/013_create_txns.rb +21 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/014_ignore_roles.rb +9 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/015_create_variations.rb +14 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/016_create_tax_treatments.rb +23 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/017_create_skus.rb +13 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/018_create_countries.rb +11 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/019_create_states.rb +13 -0
- data/starter-app/vendor/plugins/railscart/db/migrate/020_modify_users.rb +9 -0
- data/starter-app/vendor/plugins/railscart/init.rb +16 -0
- data/starter-app/vendor/plugins/railscart/install.rb +3 -0
- data/starter-app/vendor/plugins/railscart/lib/constants/enumerable_constants.rb +207 -0
- data/starter-app/vendor/plugins/railscart/lib/format.rb +12 -0
- data/starter-app/vendor/plugins/railscart/lib/gateway/bogus_gateway.rb +63 -0
- data/starter-app/vendor/plugins/railscart/lib/shipping/flat_rate.rb +10 -0
- data/starter-app/vendor/plugins/railscart/lib/tasks/rc_bootstrap.rake +24 -0
- data/starter-app/vendor/plugins/railscart/lib/tax/sales_tax.rb +26 -0
- data/starter-app/vendor/plugins/railscart/routes.rb +3 -0
- data/starter-app/vendor/plugins/railscart/script/about +3 -0
- data/starter-app/vendor/plugins/railscart/script/breakpointer +3 -0
- data/starter-app/vendor/plugins/railscart/script/console +3 -0
- data/starter-app/vendor/plugins/railscart/script/destroy +3 -0
- data/starter-app/vendor/plugins/railscart/script/generate +3 -0
- data/starter-app/vendor/plugins/railscart/script/performance/benchmarker +3 -0
- data/starter-app/vendor/plugins/railscart/script/performance/profiler +3 -0
- data/starter-app/vendor/plugins/railscart/script/plugin +3 -0
- data/starter-app/vendor/plugins/railscart/script/process/inspector +3 -0
- data/starter-app/vendor/plugins/railscart/script/process/reaper +3 -0
- data/starter-app/vendor/plugins/railscart/script/process/spawner +3 -0
- data/starter-app/vendor/plugins/railscart/script/runner +3 -0
- data/starter-app/vendor/plugins/railscart/script/server +3 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/addresses.yml +29 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/categories.yml +40 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/line_items.yml +32 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/orders.yml +17 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/products.yml +63 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/products_tags.yml +10 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/roles.yml +6 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/roles_users.yml +3 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/skus.yml +5 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/tags.yml +7 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/tax_treatments.yml +7 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/txns.yml +13 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/users.yml +40 -0
- data/starter-app/vendor/plugins/railscart/test/fixtures/variations.yml +16 -0
- data/starter-app/vendor/plugins/railscart/test/functional/account_controller_test.rb +129 -0
- data/starter-app/vendor/plugins/railscart/test/functional/admin/base_controller_test.rb +18 -0
- data/starter-app/vendor/plugins/railscart/test/functional/admin/option_groups_controller_test.rb +18 -0
- data/starter-app/vendor/plugins/railscart/test/functional/admin/option_values_controller_test.rb +18 -0
- data/starter-app/vendor/plugins/railscart/test/functional/admin/orders_controller_test.rb +18 -0
- data/starter-app/vendor/plugins/railscart/test/functional/admin/overview_controller_test.rb +18 -0
- data/starter-app/vendor/plugins/railscart/test/functional/admin/products_controller_test.rb +125 -0
- data/starter-app/vendor/plugins/railscart/test/functional/admin/users_controller_test.rb +58 -0
- data/starter-app/vendor/plugins/railscart/test/functional/admin/variations_controller_test.rb +18 -0
- data/starter-app/vendor/plugins/railscart/test/functional/application_controller_test.rb +30 -0
- data/starter-app/vendor/plugins/railscart/test/functional/cart_controller_test.rb +76 -0
- data/starter-app/vendor/plugins/railscart/test/functional/checkout_controller_test.rb +20 -0
- data/starter-app/vendor/plugins/railscart/test/integration/authentication_test.rb +53 -0
- data/starter-app/vendor/plugins/railscart/test/integration/product_admin_test.rb +135 -0
- data/starter-app/vendor/plugins/railscart/test/integration/user_stories_test.rb +59 -0
- data/starter-app/vendor/plugins/railscart/test/integration/variations_test.rb +24 -0
- data/starter-app/vendor/plugins/railscart/test/test_helper.rb +45 -0
- data/starter-app/vendor/plugins/railscart/test/unit/address_test.rb +10 -0
- data/starter-app/vendor/plugins/railscart/test/unit/cart_item_test.rb +55 -0
- data/starter-app/vendor/plugins/railscart/test/unit/cart_test.rb +35 -0
- data/starter-app/vendor/plugins/railscart/test/unit/category_test.rb +52 -0
- data/starter-app/vendor/plugins/railscart/test/unit/line_item_test.rb +61 -0
- data/starter-app/vendor/plugins/railscart/test/unit/option_group_test.rb +12 -0
- data/starter-app/vendor/plugins/railscart/test/unit/order_test.rb +49 -0
- data/starter-app/vendor/plugins/railscart/test/unit/product_test.rb +107 -0
- data/starter-app/vendor/plugins/railscart/test/unit/role_test.rb +10 -0
- data/starter-app/vendor/plugins/railscart/test/unit/sales_tax_test.rb +46 -0
- data/starter-app/vendor/plugins/railscart/test/unit/sku_test.rb +10 -0
- data/starter-app/vendor/plugins/railscart/test/unit/tag_test.rb +9 -0
- data/starter-app/vendor/plugins/railscart/test/unit/tax_treatment_test.rb +10 -0
- data/starter-app/vendor/plugins/railscart/test/unit/txn_test.rb +10 -0
- data/starter-app/vendor/plugins/railscart/test/unit/variation_test.rb +9 -0
- data/starter-app/vendor/plugins/railscart/uninstall.rb +1 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +17 -0
- data/test/test_helper.rb +2 -0
- data/test/test_railscart.rb +11 -0
- data/website/index.html +93 -0
- data/website/index.txt +39 -0
- data/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/website/stylesheets/screen.css +138 -0
- data/website/template.rhtml +48 -0
- 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,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.
|