goca-spree-core 3.1.14.rails.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +3 -0
- data/LICENSE +26 -0
- data/Rakefile +15 -0
- data/app/assets/images/logo/spree_50.png +0 -0
- data/app/assets/images/noimage/large.png +0 -0
- data/app/assets/images/noimage/mini.png +0 -0
- data/app/assets/images/noimage/product.png +0 -0
- data/app/assets/images/noimage/small.png +0 -0
- data/app/assets/javascripts/spree.js.coffee.erb +59 -0
- data/app/controllers/spree/base_controller.rb +15 -0
- data/app/helpers/spree/base_helper.rb +123 -0
- data/app/helpers/spree/products_helper.rb +91 -0
- data/app/mailers/spree/base_mailer.rb +27 -0
- data/app/mailers/spree/order_mailer.rb +17 -0
- data/app/mailers/spree/reimbursement_mailer.rb +10 -0
- data/app/mailers/spree/shipment_mailer.rb +10 -0
- data/app/mailers/spree/test_mailer.rb +8 -0
- data/app/models/concerns/spree/adjustment_source.rb +53 -0
- data/app/models/concerns/spree/calculated_adjustments.rb +34 -0
- data/app/models/concerns/spree/default_price.rb +40 -0
- data/app/models/concerns/spree/display_money.rb +32 -0
- data/app/models/concerns/spree/named_type.rb +12 -0
- data/app/models/concerns/spree/ransackable_attributes.rb +24 -0
- data/app/models/concerns/spree/user_address.rb +30 -0
- data/app/models/concerns/spree/user_api_authentication.rb +19 -0
- data/app/models/concerns/spree/user_methods.rb +57 -0
- data/app/models/concerns/spree/user_payment_source.rb +19 -0
- data/app/models/concerns/spree/user_reporting.rb +22 -0
- data/app/models/concerns/spree/vat_price_calculation.rb +47 -0
- data/app/models/friendly_id/slug_decorator.rb +3 -0
- data/app/models/spree/ability.rb +80 -0
- data/app/models/spree/address.rb +145 -0
- data/app/models/spree/adjustable/adjuster/base.rb +25 -0
- data/app/models/spree/adjustable/adjuster/promotion.rb +41 -0
- data/app/models/spree/adjustable/adjuster/tax.rb +26 -0
- data/app/models/spree/adjustable/adjustments_updater.rb +47 -0
- data/app/models/spree/adjustable/promotion_accumulator.rb +75 -0
- data/app/models/spree/adjustment.rb +104 -0
- data/app/models/spree/app_configuration.rb +74 -0
- data/app/models/spree/asset.rb +6 -0
- data/app/models/spree/base.rb +24 -0
- data/app/models/spree/calculator/default_tax.rb +59 -0
- data/app/models/spree/calculator/flat_percent_item_total.rb +22 -0
- data/app/models/spree/calculator/flat_rate.rb +20 -0
- data/app/models/spree/calculator/flexi_rate.rb +33 -0
- data/app/models/spree/calculator/free_shipping.rb +22 -0
- data/app/models/spree/calculator/percent_on_line_item.rb +15 -0
- data/app/models/spree/calculator/percent_per_item.rb +50 -0
- data/app/models/spree/calculator/price_sack.rb +29 -0
- data/app/models/spree/calculator/returns/default_refund_amount.rb +36 -0
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +22 -0
- data/app/models/spree/calculator/shipping/flat_rate.rb +18 -0
- data/app/models/spree/calculator/shipping/flexi_rate.rb +35 -0
- data/app/models/spree/calculator/shipping/per_item.rb +22 -0
- data/app/models/spree/calculator/shipping/price_sack.rb +28 -0
- data/app/models/spree/calculator/tiered_flat_rate.rb +37 -0
- data/app/models/spree/calculator/tiered_percent.rb +44 -0
- data/app/models/spree/calculator.rb +47 -0
- data/app/models/spree/classification.rb +15 -0
- data/app/models/spree/country.rb +40 -0
- data/app/models/spree/credit_card.rb +166 -0
- data/app/models/spree/customer_return.rb +67 -0
- data/app/models/spree/exchange.rb +46 -0
- data/app/models/spree/gateway/bogus.rb +91 -0
- data/app/models/spree/gateway/bogus_simple.rb +26 -0
- data/app/models/spree/gateway.rb +80 -0
- data/app/models/spree/image.rb +43 -0
- data/app/models/spree/inventory_unit.rb +105 -0
- data/app/models/spree/legacy_user.rb +13 -0
- data/app/models/spree/line_item.rb +158 -0
- data/app/models/spree/log_entry.rb +17 -0
- data/app/models/spree/option_type.rb +32 -0
- data/app/models/spree/option_type_prototype.rb +9 -0
- data/app/models/spree/option_value.rb +26 -0
- data/app/models/spree/option_value_variant.rb +6 -0
- data/app/models/spree/order/checkout.rb +336 -0
- data/app/models/spree/order/currency_updater.rb +40 -0
- data/app/models/spree/order/payments.rb +66 -0
- data/app/models/spree/order/store_credit.rb +96 -0
- data/app/models/spree/order.rb +685 -0
- data/app/models/spree/order_contents.rb +120 -0
- data/app/models/spree/order_inventory.rb +103 -0
- data/app/models/spree/order_merger.rb +65 -0
- data/app/models/spree/order_promotion.rb +6 -0
- data/app/models/spree/order_updater.rb +177 -0
- data/app/models/spree/payment/gateway_options.rb +90 -0
- data/app/models/spree/payment/processing.rb +175 -0
- data/app/models/spree/payment.rb +276 -0
- data/app/models/spree/payment_capture_event.rb +9 -0
- data/app/models/spree/payment_method/check.rb +43 -0
- data/app/models/spree/payment_method/store_credit.rb +130 -0
- data/app/models/spree/payment_method.rb +71 -0
- data/app/models/spree/preference.rb +5 -0
- data/app/models/spree/preferences/configuration.rb +71 -0
- data/app/models/spree/preferences/preferable.rb +133 -0
- data/app/models/spree/preferences/preferable_class_methods.rb +51 -0
- data/app/models/spree/preferences/scoped_store.rb +33 -0
- data/app/models/spree/preferences/store.rb +98 -0
- data/app/models/spree/price.rb +53 -0
- data/app/models/spree/product/scopes.rb +271 -0
- data/app/models/spree/product.rb +384 -0
- data/app/models/spree/product_option_type.rb +12 -0
- data/app/models/spree/product_promotion_rule.rb +9 -0
- data/app/models/spree/product_property.rb +28 -0
- data/app/models/spree/promotion/actions/create_adjustment.rb +21 -0
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +24 -0
- data/app/models/spree/promotion/actions/create_line_items.rb +62 -0
- data/app/models/spree/promotion/actions/free_shipping.rb +18 -0
- data/app/models/spree/promotion/rules/first_order.rb +37 -0
- data/app/models/spree/promotion/rules/item_total.rb +61 -0
- data/app/models/spree/promotion/rules/one_use_per_user.rb +24 -0
- data/app/models/spree/promotion/rules/option_value.rb +50 -0
- data/app/models/spree/promotion/rules/product.rb +65 -0
- data/app/models/spree/promotion/rules/taxon.rb +70 -0
- data/app/models/spree/promotion/rules/user.rb +30 -0
- data/app/models/spree/promotion/rules/user_logged_in.rb +18 -0
- data/app/models/spree/promotion.rb +198 -0
- data/app/models/spree/promotion_action.rb +25 -0
- data/app/models/spree/promotion_action_line_item.rb +6 -0
- data/app/models/spree/promotion_category.rb +6 -0
- data/app/models/spree/promotion_handler/cart.rb +51 -0
- data/app/models/spree/promotion_handler/coupon.rb +107 -0
- data/app/models/spree/promotion_handler/free_shipping.rb +33 -0
- data/app/models/spree/promotion_handler/page.rb +24 -0
- data/app/models/spree/promotion_rule.rb +43 -0
- data/app/models/spree/promotion_rule_taxon.rb +9 -0
- data/app/models/spree/promotion_rule_user.rb +9 -0
- data/app/models/spree/property.rb +23 -0
- data/app/models/spree/property_prototype.rb +9 -0
- data/app/models/spree/prototype.rb +14 -0
- data/app/models/spree/prototype_taxon.rb +9 -0
- data/app/models/spree/refund.rb +89 -0
- data/app/models/spree/refund_reason.rb +13 -0
- data/app/models/spree/reimbursement/credit.rb +25 -0
- data/app/models/spree/reimbursement/reimbursement_type_engine.rb +56 -0
- data/app/models/spree/reimbursement/reimbursement_type_validator.rb +15 -0
- data/app/models/spree/reimbursement.rb +164 -0
- data/app/models/spree/reimbursement_performer.rb +43 -0
- data/app/models/spree/reimbursement_tax_calculator.rb +44 -0
- data/app/models/spree/reimbursement_type/credit.rb +13 -0
- data/app/models/spree/reimbursement_type/exchange.rb +9 -0
- data/app/models/spree/reimbursement_type/original_payment.rb +13 -0
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +67 -0
- data/app/models/spree/reimbursement_type/store_credit.rb +28 -0
- data/app/models/spree/reimbursement_type.rb +16 -0
- data/app/models/spree/return_authorization.rb +98 -0
- data/app/models/spree/return_authorization_reason.rb +7 -0
- data/app/models/spree/return_item/eligibility_validator/base_validator.rb +24 -0
- data/app/models/spree/return_item/eligibility_validator/default.rb +30 -0
- data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +16 -0
- data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +16 -0
- data/app/models/spree/return_item/eligibility_validator/order_completed.rb +16 -0
- data/app/models/spree/return_item/eligibility_validator/rma_required.rb +17 -0
- data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +16 -0
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +34 -0
- data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +9 -0
- data/app/models/spree/return_item.rb +236 -0
- data/app/models/spree/returns_calculator.rb +8 -0
- data/app/models/spree/role.rb +8 -0
- data/app/models/spree/role_user.rb +6 -0
- data/app/models/spree/shipment.rb +419 -0
- data/app/models/spree/shipment_handler.rb +43 -0
- data/app/models/spree/shipping_calculator.rb +22 -0
- data/app/models/spree/shipping_category.rb +11 -0
- data/app/models/spree/shipping_method.rb +69 -0
- data/app/models/spree/shipping_method_category.rb +6 -0
- data/app/models/spree/shipping_method_zone.rb +6 -0
- data/app/models/spree/shipping_rate.rb +44 -0
- data/app/models/spree/state.rb +41 -0
- data/app/models/spree/state_change.rb +10 -0
- data/app/models/spree/stock/adjuster.rb +27 -0
- data/app/models/spree/stock/availability_validator.rb +30 -0
- data/app/models/spree/stock/content_item.rb +54 -0
- data/app/models/spree/stock/coordinator.rb +65 -0
- data/app/models/spree/stock/differentiator.rb +44 -0
- data/app/models/spree/stock/estimator.rb +70 -0
- data/app/models/spree/stock/inventory_unit_builder.rb +22 -0
- data/app/models/spree/stock/package.rb +104 -0
- data/app/models/spree/stock/packer.rb +48 -0
- data/app/models/spree/stock/prioritizer.rb +47 -0
- data/app/models/spree/stock/quantifier.rb +29 -0
- data/app/models/spree/stock/splitter/backordered.rb +23 -0
- data/app/models/spree/stock/splitter/base.rb +28 -0
- data/app/models/spree/stock/splitter/shipping_category.rb +32 -0
- data/app/models/spree/stock/splitter/weight.rb +34 -0
- data/app/models/spree/stock_item.rb +90 -0
- data/app/models/spree/stock_location.rb +115 -0
- data/app/models/spree/stock_movement.rb +35 -0
- data/app/models/spree/stock_transfer.rb +50 -0
- data/app/models/spree/store.rb +48 -0
- data/app/models/spree/store_credit.rb +252 -0
- data/app/models/spree/store_credit_category.rb +22 -0
- data/app/models/spree/store_credit_event.rb +38 -0
- data/app/models/spree/store_credit_type.rb +6 -0
- data/app/models/spree/tax_category.rb +18 -0
- data/app/models/spree/tax_rate.rb +110 -0
- data/app/models/spree/taxon.rb +102 -0
- data/app/models/spree/taxonomy.rb +24 -0
- data/app/models/spree/tracker.rb +19 -0
- data/app/models/spree/validations/db_maximum_length_validator.rb +23 -0
- data/app/models/spree/variant.rb +312 -0
- data/app/models/spree/zone.rb +190 -0
- data/app/models/spree/zone_member.rb +12 -0
- data/app/validators/db_maximum_length_validator.rb +11 -0
- data/app/views/layouts/spree/base_mailer.html.erb +41 -0
- data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +19 -0
- data/app/views/spree/order_mailer/_adjustment.html.erb +8 -0
- data/app/views/spree/order_mailer/_subtotal.html.erb +8 -0
- data/app/views/spree/order_mailer/_total.html.erb +8 -0
- data/app/views/spree/order_mailer/cancel_email.html.erb +30 -0
- data/app/views/spree/order_mailer/cancel_email.text.erb +16 -0
- data/app/views/spree/order_mailer/confirm_email.html.erb +70 -0
- data/app/views/spree/order_mailer/confirm_email.text.erb +38 -0
- data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +22 -0
- data/app/views/spree/shared/_base_mailer_footer.html.erb +20 -0
- data/app/views/spree/shared/_base_mailer_header.html.erb +29 -0
- data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +777 -0
- data/app/views/spree/shared/_error_messages.html.erb +11 -0
- data/app/views/spree/shared/_mailer_line_item.html.erb +12 -0
- data/app/views/spree/shipment_mailer/shipped_email.html.erb +41 -0
- data/app/views/spree/shipment_mailer/shipped_email.text.erb +16 -0
- data/app/views/spree/test_mailer/test_email.html.erb +40 -0
- data/app/views/spree/test_mailer/test_email.text.erb +4 -0
- data/config/initializers/assets.rb +1 -0
- data/config/initializers/friendly_id.rb +88 -0
- data/config/initializers/premailer_assets.rb +1 -0
- data/config/initializers/premailer_rails.rb +3 -0
- data/config/initializers/user_class_extensions.rb +10 -0
- data/config/locales/en.yml +1499 -0
- data/config/routes.rb +8 -0
- data/db/default/spree/countries.rb +29 -0
- data/db/default/spree/default_reimbursement_type.rb +1 -0
- data/db/default/spree/roles.rb +2 -0
- data/db/default/spree/states.rb +28 -0
- data/db/default/spree/stores.rb +9 -0
- data/db/default/spree/zones.rb +11 -0
- data/db/migrate/20120831092320_spree_one_two.rb +481 -0
- data/db/migrate/20120831092359_spree_promo_one_two.rb +45 -0
- data/db/migrate/20120905145253_add_tax_rate_label.rb +5 -0
- data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +5 -0
- data/db/migrate/20120929093553_remove_unused_preference_columns.rb +8 -0
- data/db/migrate/20121009142519_add_lock_version_to_variant.rb +5 -0
- data/db/migrate/20121010142909_add_states_required_to_countries.rb +5 -0
- data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +6 -0
- data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +11 -0
- data/db/migrate/20121031162139_split_prices_from_variants.rb +31 -0
- data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +9 -0
- data/db/migrate/20121107184631_add_currency_to_line_items.rb +5 -0
- data/db/migrate/20121107194006_add_currency_to_orders.rb +5 -0
- data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +5 -0
- data/db/migrate/20121111231553_remove_display_on_from_payment_methods.rb +5 -0
- data/db/migrate/20121124203911_add_position_to_taxonomies.rb +5 -0
- data/db/migrate/20121126040517_add_last_ip_to_spree_orders.rb +5 -0
- data/db/migrate/20121213162028_add_state_to_spree_adjustments.rb +6 -0
- data/db/migrate/20130114053446_add_display_on_to_spree_payment_methods.rb +9 -0
- data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +6 -0
- data/db/migrate/20130203232234_add_identifier_to_spree_payments.rb +5 -0
- data/db/migrate/20130207155350_add_order_id_index_to_payments.rb +9 -0
- data/db/migrate/20130208032954_add_primary_to_spree_products_taxons.rb +5 -0
- data/db/migrate/20130211190146_create_spree_stock_items.rb +14 -0
- data/db/migrate/20130211191120_create_spree_stock_locations.rb +11 -0
- data/db/migrate/20130213191427_create_default_stock.rb +33 -0
- data/db/migrate/20130222032153_add_order_id_index_to_shipments.rb +5 -0
- data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +5 -0
- data/db/migrate/20130226191231_add_stock_location_id_to_spree_shipments.rb +5 -0
- data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +6 -0
- data/db/migrate/20130228164411_remove_on_demand_from_product_and_variant.rb +6 -0
- data/db/migrate/20130228210442_create_shipping_method_zone.rb +21 -0
- data/db/migrate/20130301162745_remove_shipping_category_id_from_shipping_method.rb +5 -0
- data/db/migrate/20130301162924_create_shipping_method_categories.rb +13 -0
- data/db/migrate/20130301205200_add_tracking_url_to_spree_shipping_methods.rb +5 -0
- data/db/migrate/20130304162240_create_spree_shipping_rates.rb +24 -0
- data/db/migrate/20130304192936_remove_category_match_attributes_from_shipping_method.rb +7 -0
- data/db/migrate/20130305143310_create_stock_movements.rb +12 -0
- data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +22 -0
- data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +5 -0
- data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +5 -0
- data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +5 -0
- data/db/migrate/20130318151756_add_source_and_destination_to_stock_movements.rb +8 -0
- data/db/migrate/20130319062004_change_orders_total_precision.rb +8 -0
- data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +7 -0
- data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +7 -0
- data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +7 -0
- data/db/migrate/20130319183250_add_originator_to_stock_movement.rb +7 -0
- data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +15 -0
- data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +9 -0
- data/db/migrate/20130326175857_add_stock_location_to_rma.rb +5 -0
- data/db/migrate/20130328130308_update_shipment_state_for_canceled_orders.rb +15 -0
- data/db/migrate/20130328195253_add_seo_metas_to_taxons.rb +9 -0
- data/db/migrate/20130329134939_remove_stock_item_and_variant_lock.rb +14 -0
- data/db/migrate/20130413230529_add_name_to_spree_credit_cards.rb +5 -0
- data/db/migrate/20130414000512_update_name_fields_on_spree_credit_cards.rb +13 -0
- data/db/migrate/20130417120034_add_index_to_source_columns_on_adjustments.rb +5 -0
- data/db/migrate/20130417120035_update_adjustment_states.rb +16 -0
- data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +15 -0
- data/db/migrate/20130418125341_create_spree_stock_transfers.rb +14 -0
- data/db/migrate/20130423110707_drop_products_count_on_hand.rb +5 -0
- data/db/migrate/20130423223847_set_default_shipping_rate_cost.rb +5 -0
- data/db/migrate/20130509115210_add_number_to_stock_transfer.rb +23 -0
- data/db/migrate/20130514151929_add_sku_index_to_spree_variants.rb +5 -0
- data/db/migrate/20130515180736_add_backorderable_default_to_spree_stock_location.rb +5 -0
- data/db/migrate/20130516151222_add_propage_all_variants_to_spree_stock_location.rb +5 -0
- data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +5 -0
- data/db/migrate/20130611185927_add_user_id_index_to_spree_orders.rb +5 -0
- data/db/migrate/20130618041418_add_updated_at_to_spree_countries.rb +9 -0
- data/db/migrate/20130619012236_add_updated_at_to_spree_states.rb +9 -0
- data/db/migrate/20130626232741_add_cvv_result_code_and_cvv_result_message_to_spree_payments.rb +6 -0
- data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +5 -0
- data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +7 -0
- data/db/migrate/20130708052307_add_deleted_at_to_spree_tax_rates.rb +5 -0
- data/db/migrate/20130711200933_remove_lock_version_from_inventory_units.rb +6 -0
- data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +5 -0
- data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +6 -0
- data/db/migrate/20130725031716_add_created_by_id_to_spree_orders.rb +5 -0
- data/db/migrate/20130729214043_index_completed_at_on_spree_orders.rb +5 -0
- data/db/migrate/20130802014537_add_tax_category_id_to_spree_line_items.rb +5 -0
- data/db/migrate/20130802022321_migrate_tax_categories_to_line_items.rb +10 -0
- data/db/migrate/20130806022521_drop_spree_mail_methods.rb +12 -0
- data/db/migrate/20130806145853_set_default_stock_location_on_shipments.rb +8 -0
- data/db/migrate/20130807024301_upgrade_adjustments.rb +40 -0
- data/db/migrate/20130807024302_rename_adjustment_fields.rb +14 -0
- data/db/migrate/20130809164245_add_admin_name_column_to_spree_shipping_methods.rb +5 -0
- data/db/migrate/20130809164330_add_admin_name_column_to_spree_stock_locations.rb +5 -0
- data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +5 -0
- data/db/migrate/20130813140619_expand_order_number_size.rb +9 -0
- data/db/migrate/20130813232134_rename_activators_to_promotions.rb +5 -0
- data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +5 -0
- data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +5 -0
- data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +16 -0
- data/db/migrate/20130828234942_add_tax_total_to_line_items_shipments_and_orders.rb +8 -0
- data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +15 -0
- data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +19 -0
- data/db/migrate/20130903183026_add_code_to_spree_promotion_rules.rb +5 -0
- data/db/migrate/20130909115621_change_states_required_for_countries.rb +9 -0
- data/db/migrate/20130915032339_add_deleted_at_to_spree_stock_items.rb +5 -0
- data/db/migrate/20130917024658_remove_promotions_event_name_field.rb +5 -0
- data/db/migrate/20130924040529_add_promo_total_to_line_items_and_shipments_and_orders.rb +7 -0
- data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +16 -0
- data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +5 -0
- data/db/migrate/20131107132123_add_tax_category_to_variants.rb +6 -0
- data/db/migrate/20131113035136_add_channel_to_spree_orders.rb +5 -0
- data/db/migrate/20131118043959_add_included_to_adjustments.rb +5 -0
- data/db/migrate/20131118050234_rename_tax_total_fields.rb +11 -0
- data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +21 -0
- data/db/migrate/20131120234456_add_updated_at_to_variants.rb +5 -0
- data/db/migrate/20131127001002_add_position_to_classifications.rb +5 -0
- data/db/migrate/20131211112807_create_spree_orders_promotions.rb +8 -0
- data/db/migrate/20131211192741_unique_shipping_method_categories.rb +24 -0
- data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +5 -0
- data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +8 -0
- data/db/migrate/20140106224208_rename_permalink_to_slug_for_products.rb +5 -0
- data/db/migrate/20140120160805_add_index_to_variant_id_and_currency_on_prices.rb +5 -0
- data/db/migrate/20140124023232_rename_activator_id_in_rules_and_actions_to_promotion_id.rb +6 -0
- data/db/migrate/20140129024326_add_deleted_at_to_spree_prices.rb +5 -0
- data/db/migrate/20140203161722_add_approver_id_and_approved_at_to_orders.rb +6 -0
- data/db/migrate/20140204115338_add_confirmation_delivered_to_spree_orders.rb +5 -0
- data/db/migrate/20140204192230_add_auto_capture_to_payment_methods.rb +5 -0
- data/db/migrate/20140205120320_create_spree_payment_capture_events.rb +12 -0
- data/db/migrate/20140205144710_add_uncaptured_amount_to_payments.rb +5 -0
- data/db/migrate/20140205181631_default_variant_weight_to_zero.rb +11 -0
- data/db/migrate/20140207085910_add_tax_category_id_to_shipping_methods.rb +5 -0
- data/db/migrate/20140207093021_add_tax_rate_id_to_shipping_rates.rb +5 -0
- data/db/migrate/20140211040159_add_pre_tax_amount_to_line_items_and_shipments.rb +6 -0
- data/db/migrate/20140213184916_add_more_indexes.rb +13 -0
- data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +5 -0
- data/db/migrate/20140227112348_add_preference_store_to_everything.rb +8 -0
- data/db/migrate/20140307235515_add_user_id_to_spree_credit_cards.rb +13 -0
- data/db/migrate/20140309023735_migrate_old_preferences.rb +23 -0
- data/db/migrate/20140309024355_create_spree_stores.rb +25 -0
- data/db/migrate/20140309033438_create_store_from_preferences.rb +37 -0
- data/db/migrate/20140315053743_add_timestamps_to_spree_assets.rb +6 -0
- data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +8 -0
- data/db/migrate/20140331100557_add_additional_store_fields.rb +8 -0
- data/db/migrate/20140410141842_add_many_missing_indexes.rb +18 -0
- data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +66 -0
- data/db/migrate/20140415041315_add_user_id_created_by_id_index_to_order.rb +5 -0
- data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +8 -0
- data/db/migrate/20140518174634_add_token_to_spree_orders.rb +5 -0
- data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +29 -0
- data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +10 -0
- data/db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb +6 -0
- data/db/migrate/20140609201656_add_deleted_at_to_spree_promotion_actions.rb +6 -0
- data/db/migrate/20140616202624_remove_uncaptured_amount_from_spree_payments.rb +5 -0
- data/db/migrate/20140625214618_create_spree_refunds.rb +12 -0
- data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +12 -0
- data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +5 -0
- data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +10 -0
- data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +55 -0
- data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +7 -0
- data/db/migrate/20140710190048_drop_return_authorization_amount.rb +5 -0
- data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +28 -0
- data/db/migrate/20140713140527_create_spree_refund_reasons.rb +14 -0
- data/db/migrate/20140713142214_rename_return_authorization_reason.rb +5 -0
- data/db/migrate/20140715182625_create_spree_promotion_categories.rb +11 -0
- data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +9 -0
- data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +6 -0
- data/db/migrate/20140717155155_create_default_refund_reason.rb +9 -0
- data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +7 -0
- data/db/migrate/20140718133010_create_spree_customer_returns.rb +9 -0
- data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +6 -0
- data/db/migrate/20140718195325_create_friendly_id_slugs.rb +15 -0
- data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +5 -0
- data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +13 -0
- data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +15 -0
- data/db/migrate/20140725131539_create_spree_reimbursements.rb +21 -0
- data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +5 -0
- data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +7 -0
- data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +5 -0
- data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +20 -0
- data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +10 -0
- data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +5 -0
- data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +10 -0
- data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +9 -0
- data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +10 -0
- data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +7 -0
- data/db/migrate/20140911173301_add_kind_to_zone.rb +11 -0
- data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +5 -0
- data/db/migrate/20140927193717_default_pre_tax_amount_should_be_zero.rb +6 -0
- data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +5 -0
- data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +6 -0
- data/db/migrate/20141009204607_add_store_id_to_orders.rb +8 -0
- data/db/migrate/20141012083513_create_spree_taxons_prototypes.rb +8 -0
- data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +5 -0
- data/db/migrate/20141023005240_add_counter_cache_from_spree_variants_to_spree_stock_items.rb +13 -0
- data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +13 -0
- data/db/migrate/20141105213646_update_classifications_positions.rb +9 -0
- data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +5 -0
- data/db/migrate/20141215232040_remove_token_permissions_table.rb +6 -0
- data/db/migrate/20141215235502_remove_extra_products_slug_index.rb +5 -0
- data/db/migrate/20141217215630_update_product_slug_index.rb +6 -0
- data/db/migrate/20141218025915_rename_identifier_to_number_for_payment.rb +5 -0
- data/db/migrate/20150118210639_create_spree_store_credits.rb +24 -0
- data/db/migrate/20150118211500_create_spree_store_credit_categories.rb +8 -0
- data/db/migrate/20150118212051_create_spree_store_credit_events.rb +17 -0
- data/db/migrate/20150118212101_create_spree_store_credit_types.rb +10 -0
- data/db/migrate/20150121022521_remove_environment_from_payment_method.rb +6 -0
- data/db/migrate/20150122145607_add_resellable_to_return_items.rb +5 -0
- data/db/migrate/20150122202432_add_code_to_spree_promotion_categories.rb +5 -0
- data/db/migrate/20150128032538_remove_environment_from_tracker.rb +6 -0
- data/db/migrate/20150128060325_remove_spree_configurations.rb +16 -0
- data/db/migrate/20150216173445_add_index_to_spree_stock_items_variant_id.rb +13 -0
- data/db/migrate/20150309161154_ensure_payments_have_numbers.rb +9 -0
- data/db/migrate/20150314013438_add_missing_indexes_on_spree_tables.rb +67 -0
- data/db/migrate/20150317174308_remove_duplicated_indexes_from_multi_columns.rb +18 -0
- data/db/migrate/20150324104002_remove_user_index_from_spree_state_changes.rb +14 -0
- data/db/migrate/20150515211137_fix_adjustment_order_id.rb +70 -0
- data/db/migrate/20150522071831_add_position_to_spree_payment_methods.rb +5 -0
- data/db/migrate/20150522181728_add_deleted_at_to_friendly_id_slugs.rb +6 -0
- data/db/migrate/20150609093816_increase_scale_on_pre_tax_amounts.rb +16 -0
- data/db/migrate/20150626181949_add_taxable_adjustment_total_to_line_item.rb +19 -0
- data/db/migrate/20150627090949_migrate_payment_methods_display.rb +12 -0
- data/db/migrate/20150707204155_enable_acts_as_paranoid_on_calculators.rb +6 -0
- data/db/migrate/20150714154102_spree_payment_method_store_credits.rb +12 -0
- data/db/migrate/20150726141425_rename_has_and_belongs_to_associations_to_model_names.rb +18 -0
- data/db/migrate/20150727191614_spree_store_credit_types.rb +11 -0
- data/db/migrate/20150819154308_add_discontinued_to_products_and_variants.rb +68 -0
- data/db/migrate/20151220072838_remove_shipping_method_id_from_spree_orders.rb +13 -0
- data/db/migrate/20160207191757_add_id_column_to_earlier_habtm_tables.rb +16 -0
- data/db/migrate/20160219165458_add_indexes.rb +14 -0
- data/db/seeds.rb +5 -0
- data/lib/generators/spree/custom_user/custom_user_generator.rb +56 -0
- data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +36 -0
- data/lib/generators/spree/custom_user/templates/initializer.rb.tt +1 -0
- data/lib/generators/spree/custom_user/templates/migration.rb.tt +7 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +140 -0
- data/lib/generators/spree/dummy/templates/initializers/custom_user.rb +1 -0
- data/lib/generators/spree/dummy/templates/initializers/devise.rb +3 -0
- data/lib/generators/spree/dummy/templates/rails/application.rb +10 -0
- data/lib/generators/spree/dummy/templates/rails/boot.rb +6 -0
- data/lib/generators/spree/dummy/templates/rails/database.yml +72 -0
- data/lib/generators/spree/dummy/templates/rails/routes.rb +2 -0
- data/lib/generators/spree/dummy/templates/rails/script/rails +6 -0
- data/lib/generators/spree/dummy/templates/rails/test.rb +35 -0
- data/lib/generators/spree/install/install_generator.rb +233 -0
- data/lib/generators/spree/install/templates/config/initializers/spree.rb +18 -0
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +17 -0
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +17 -0
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +16 -0
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +16 -0
- data/lib/spree/core/controller_helpers/auth.rb +84 -0
- data/lib/spree/core/controller_helpers/common.rb +74 -0
- data/lib/spree/core/controller_helpers/order.rb +103 -0
- data/lib/spree/core/controller_helpers/respond_with.rb +65 -0
- data/lib/spree/core/controller_helpers/search.rb +14 -0
- data/lib/spree/core/controller_helpers/store.rb +51 -0
- data/lib/spree/core/controller_helpers/strong_parameters.rb +42 -0
- data/lib/spree/core/delegate_belongs_to.rb +95 -0
- data/lib/spree/core/engine.rb +134 -0
- data/lib/spree/core/environment/calculators.rb +12 -0
- data/lib/spree/core/environment.rb +15 -0
- data/lib/spree/core/environment_extension.rb +25 -0
- data/lib/spree/core/importer/order.rb +284 -0
- data/lib/spree/core/importer/product.rb +62 -0
- data/lib/spree/core/importer.rb +9 -0
- data/lib/spree/core/number_generator.rb +52 -0
- data/lib/spree/core/product_duplicator.rb +74 -0
- data/lib/spree/core/product_filters.rb +194 -0
- data/lib/spree/core/routes.rb +46 -0
- data/lib/spree/core/search/base.rb +102 -0
- data/lib/spree/core/token_generator.rb +22 -0
- data/lib/spree/core/validators/email.rb +11 -0
- data/lib/spree/core/version.rb +5 -0
- data/lib/spree/core.rb +96 -0
- data/lib/spree/i18n/base.rb +17 -0
- data/lib/spree/i18n/initializer.rb +1 -0
- data/lib/spree/i18n.rb +37 -0
- data/lib/spree/localized_number.rb +22 -0
- data/lib/spree/migrations.rb +77 -0
- data/lib/spree/money.rb +61 -0
- data/lib/spree/permitted_attributes.rb +115 -0
- data/lib/spree/promo/environment.rb +9 -0
- data/lib/spree/responder.rb +45 -0
- data/lib/spree/testing_support/ability_helpers.rb +105 -0
- data/lib/spree/testing_support/authorization_helpers.rb +63 -0
- data/lib/spree/testing_support/bar_ability.rb +14 -0
- data/lib/spree/testing_support/caching.rb +47 -0
- data/lib/spree/testing_support/capybara_ext.rb +179 -0
- data/lib/spree/testing_support/common_rake.rb +39 -0
- data/lib/spree/testing_support/controller_requests.rb +93 -0
- data/lib/spree/testing_support/extension_rake.rb +10 -0
- data/lib/spree/testing_support/factories/address_factory.rb +22 -0
- data/lib/spree/testing_support/factories/adjustment_factory.rb +26 -0
- data/lib/spree/testing_support/factories/calculator_factory.rb +20 -0
- data/lib/spree/testing_support/factories/country_factory.rb +9 -0
- data/lib/spree/testing_support/factories/credit_card_factory.rb +10 -0
- data/lib/spree/testing_support/factories/customer_return_factory.rb +31 -0
- data/lib/spree/testing_support/factories/image_factory.rb +5 -0
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +10 -0
- data/lib/spree/testing_support/factories/line_item_factory.rb +12 -0
- data/lib/spree/testing_support/factories/options_factory.rb +13 -0
- data/lib/spree/testing_support/factories/order_factory.rb +91 -0
- data/lib/spree/testing_support/factories/payment_factory.rb +28 -0
- data/lib/spree/testing_support/factories/payment_method_factory.rb +23 -0
- data/lib/spree/testing_support/factories/price_factory.rb +7 -0
- data/lib/spree/testing_support/factories/product_factory.rb +36 -0
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +6 -0
- data/lib/spree/testing_support/factories/product_property_factory.rb +6 -0
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +6 -0
- data/lib/spree/testing_support/factories/promotion_factory.rb +52 -0
- data/lib/spree/testing_support/factories/promotion_rule_factory.rb +5 -0
- data/lib/spree/testing_support/factories/property_factory.rb +6 -0
- data/lib/spree/testing_support/factories/prototype_factory.rb +11 -0
- data/lib/spree/testing_support/factories/refund_factory.rb +22 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +16 -0
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +7 -0
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +20 -0
- data/lib/spree/testing_support/factories/return_item_factory.rb +14 -0
- data/lib/spree/testing_support/factories/role_factory.rb +9 -0
- data/lib/spree/testing_support/factories/shipment_factory.rb +23 -0
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +5 -0
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +21 -0
- data/lib/spree/testing_support/factories/state_factory.rb +13 -0
- data/lib/spree/testing_support/factories/stock_factory.rb +31 -0
- data/lib/spree/testing_support/factories/stock_item_factory.rb +9 -0
- data/lib/spree/testing_support/factories/stock_location_factory.rb +28 -0
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +11 -0
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +9 -0
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -0
- data/lib/spree/testing_support/factories/store_credit_factory.rb +17 -0
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +11 -0
- data/lib/spree/testing_support/factories/store_factory.rb +8 -0
- data/lib/spree/testing_support/factories/tax_category_factory.rb +6 -0
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +8 -0
- data/lib/spree/testing_support/factories/taxon_factory.rb +7 -0
- data/lib/spree/testing_support/factories/taxonomy_factory.rb +5 -0
- data/lib/spree/testing_support/factories/tracker_factory.rb +6 -0
- data/lib/spree/testing_support/factories/user_factory.rb +22 -0
- data/lib/spree/testing_support/factories/variant_factory.rb +39 -0
- data/lib/spree/testing_support/factories/zone_factory.rb +25 -0
- data/lib/spree/testing_support/factories/zone_member_factory.rb +6 -0
- data/lib/spree/testing_support/factories.rb +19 -0
- data/lib/spree/testing_support/flash.rb +27 -0
- data/lib/spree/testing_support/i18n.rb +97 -0
- data/lib/spree/testing_support/microdata.rb +189 -0
- data/lib/spree/testing_support/order_walkthrough.rb +72 -0
- data/lib/spree/testing_support/preferences.rb +31 -0
- data/lib/spree/testing_support/url_helpers.rb +9 -0
- data/lib/spree_core.rb +1 -0
- data/lib/tasks/core.rake +169 -0
- data/lib/tasks/email.rake +10 -0
- data/lib/tasks/exchanges.rake +70 -0
- data/script/rails +9 -0
- data/spec/fixtures/microdata.html +22 -0
- data/spec/fixtures/microdata_itemref.html +15 -0
- data/spec/fixtures/microdata_no_itemscope.html +20 -0
- data/spec/fixtures/thinking-cat.jpg +0 -0
- data/spree_core.gemspec +47 -0
- data/vendor/assets/javascripts/jquery-migrate-1.0.0.js +498 -0
- data/vendor/assets/javascripts/jquery.payment.js +652 -0
- data/vendor/assets/javascripts/jsuri.js +2 -0
- data/vendor/assets/stylesheets/normalize.css +375 -0
- data/vendor/assets/stylesheets/skeleton.css +242 -0
- metadata +971 -0
@@ -0,0 +1,233 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'highline/import'
|
3
|
+
require 'bundler'
|
4
|
+
require 'bundler/cli'
|
5
|
+
|
6
|
+
module Spree
|
7
|
+
class InstallGenerator < Rails::Generators::Base
|
8
|
+
class_option :migrate, :type => :boolean, :default => true, :banner => 'Run Spree migrations'
|
9
|
+
class_option :seed, :type => :boolean, :default => true, :banner => 'load seed data (migrations must be run)'
|
10
|
+
class_option :sample, :type => :boolean, :default => true, :banner => 'load sample data (migrations must be run)'
|
11
|
+
class_option :auto_accept, :type => :boolean
|
12
|
+
class_option :user_class, :type => :string
|
13
|
+
class_option :admin_email, :type => :string
|
14
|
+
class_option :admin_password, :type => :string
|
15
|
+
class_option :lib_name, :type => :string, :default => 'spree'
|
16
|
+
class_option :enforce_available_locales, :type => :boolean, :default => nil
|
17
|
+
|
18
|
+
def self.source_paths
|
19
|
+
paths = self.superclass.source_paths
|
20
|
+
paths << File.expand_path('../templates', "../../#{__FILE__}")
|
21
|
+
paths << File.expand_path('../templates', "../#{__FILE__}")
|
22
|
+
paths << File.expand_path('../templates', __FILE__)
|
23
|
+
paths.flatten
|
24
|
+
end
|
25
|
+
|
26
|
+
def prepare_options
|
27
|
+
@run_migrations = options[:migrate]
|
28
|
+
@load_seed_data = options[:seed]
|
29
|
+
@load_sample_data = options[:sample]
|
30
|
+
|
31
|
+
unless @run_migrations
|
32
|
+
@load_seed_data = false
|
33
|
+
@load_sample_data = false
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def add_files
|
38
|
+
template 'config/initializers/spree.rb', 'config/initializers/spree.rb'
|
39
|
+
end
|
40
|
+
|
41
|
+
def additional_tweaks
|
42
|
+
return unless File.exists? 'public/robots.txt'
|
43
|
+
append_file "public/robots.txt", <<-ROBOTS
|
44
|
+
User-agent: *
|
45
|
+
Disallow: /checkout
|
46
|
+
Disallow: /cart
|
47
|
+
Disallow: /orders
|
48
|
+
Disallow: /user
|
49
|
+
Disallow: /account
|
50
|
+
Disallow: /api
|
51
|
+
Disallow: /password
|
52
|
+
ROBOTS
|
53
|
+
end
|
54
|
+
|
55
|
+
def setup_assets
|
56
|
+
@lib_name = 'spree'
|
57
|
+
%w{javascripts stylesheets images}.each do |path|
|
58
|
+
empty_directory "vendor/assets/#{path}/spree/frontend" if defined? Spree::Frontend || Rails.env.test?
|
59
|
+
empty_directory "vendor/assets/#{path}/spree/backend" if defined? Spree::Backend || Rails.env.test?
|
60
|
+
end
|
61
|
+
|
62
|
+
if defined? Spree::Frontend || Rails.env.test?
|
63
|
+
template "vendor/assets/javascripts/spree/frontend/all.js"
|
64
|
+
template "vendor/assets/stylesheets/spree/frontend/all.css"
|
65
|
+
end
|
66
|
+
|
67
|
+
if defined? Spree::Backend || Rails.env.test?
|
68
|
+
template "vendor/assets/javascripts/spree/backend/all.js"
|
69
|
+
template "vendor/assets/stylesheets/spree/backend/all.css"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def create_overrides_directory
|
74
|
+
empty_directory "app/overrides"
|
75
|
+
end
|
76
|
+
|
77
|
+
def configure_application
|
78
|
+
application <<-APP
|
79
|
+
|
80
|
+
config.to_prepare do
|
81
|
+
# Load application's model / class decorators
|
82
|
+
Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
|
83
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
84
|
+
end
|
85
|
+
|
86
|
+
# Load application's view overrides
|
87
|
+
Dir.glob(File.join(File.dirname(__FILE__), "../app/overrides/*.rb")) do |c|
|
88
|
+
Rails.configuration.cache_classes ? require(c) : load(c)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
APP
|
92
|
+
|
93
|
+
if !options[:enforce_available_locales].nil?
|
94
|
+
application <<-APP
|
95
|
+
# Prevent this deprecation message: https://github.com/svenfuchs/i18n/commit/3b6e56e
|
96
|
+
I18n.enforce_available_locales = #{options[:enforce_available_locales]}
|
97
|
+
APP
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def include_seed_data
|
102
|
+
append_file "db/seeds.rb", <<-SEEDS
|
103
|
+
\n
|
104
|
+
Spree::Core::Engine.load_seed if defined?(Spree::Core)
|
105
|
+
Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
|
106
|
+
SEEDS
|
107
|
+
end
|
108
|
+
|
109
|
+
def install_migrations
|
110
|
+
say_status :copying, "migrations"
|
111
|
+
silence_stream(STDOUT) do
|
112
|
+
silence_warnings { rake 'railties:install:migrations' }
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def create_database
|
117
|
+
say_status :creating, "database"
|
118
|
+
silence_stream(STDOUT) do
|
119
|
+
silence_stream(STDERR) do
|
120
|
+
silence_warnings { rake 'db:create' }
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def run_migrations
|
126
|
+
if @run_migrations
|
127
|
+
say_status :running, "migrations"
|
128
|
+
silence_stream(STDOUT) do
|
129
|
+
silence_stream(STDERR) do
|
130
|
+
silence_warnings { rake 'db:migrate' }
|
131
|
+
end
|
132
|
+
end
|
133
|
+
else
|
134
|
+
say_status :skipping, "migrations (don't forget to run rake db:migrate)"
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
def populate_seed_data
|
139
|
+
if @load_seed_data
|
140
|
+
say_status :loading, "seed data"
|
141
|
+
rake_options=[]
|
142
|
+
rake_options << "AUTO_ACCEPT=1" if options[:auto_accept]
|
143
|
+
rake_options << "ADMIN_EMAIL=#{options[:admin_email]}" if options[:admin_email]
|
144
|
+
rake_options << "ADMIN_PASSWORD=#{options[:admin_password]}" if options[:admin_password]
|
145
|
+
|
146
|
+
cmd = lambda { rake("db:seed #{rake_options.join(' ')}") }
|
147
|
+
if options[:auto_accept] || (options[:admin_email] && options[:admin_password])
|
148
|
+
silence_stream(STDOUT) do
|
149
|
+
silence_stream(STDERR) do
|
150
|
+
silence_warnings &cmd
|
151
|
+
end
|
152
|
+
end
|
153
|
+
else
|
154
|
+
cmd.call
|
155
|
+
end
|
156
|
+
else
|
157
|
+
say_status :skipping, "seed data (you can always run rake db:seed)"
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
def load_sample_data
|
162
|
+
if @load_sample_data
|
163
|
+
say_status :loading, "sample data"
|
164
|
+
silence_stream(STDOUT) do
|
165
|
+
silence_stream(STDERR) do
|
166
|
+
silence_warnings { rake 'spree_sample:load' }
|
167
|
+
end
|
168
|
+
end
|
169
|
+
else
|
170
|
+
say_status :skipping, "sample data (you can always run rake spree_sample:load)"
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
def notify_about_routes
|
175
|
+
insert_into_file File.join('config', 'routes.rb'), :after => "Rails.application.routes.draw do\n" do
|
176
|
+
%Q{
|
177
|
+
# This line mounts Spree's routes at the root of your application.
|
178
|
+
# This means, any requests to URLs such as /products, will go to Spree::ProductsController.
|
179
|
+
# If you would like to change where this engine is mounted, simply change the :at option to something different.
|
180
|
+
#
|
181
|
+
# We ask that you don't use the :as option here, as Spree relies on it being the default of "spree"
|
182
|
+
mount Spree::Core::Engine, at: '/'
|
183
|
+
}
|
184
|
+
end
|
185
|
+
|
186
|
+
unless options[:quiet]
|
187
|
+
puts "*" * 50
|
188
|
+
puts "We added the following line to your application's config/routes.rb file:"
|
189
|
+
puts " "
|
190
|
+
puts " mount Spree::Core::Engine, at: '/'"
|
191
|
+
end
|
192
|
+
end
|
193
|
+
|
194
|
+
def complete
|
195
|
+
unless options[:quiet]
|
196
|
+
puts "*" * 50
|
197
|
+
puts "Spree has been installed successfully. You're all ready to go!"
|
198
|
+
puts " "
|
199
|
+
puts "Enjoy!"
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
protected
|
204
|
+
|
205
|
+
def javascript_exists?(script)
|
206
|
+
extensions = %w(.js.coffee .js.erb .js.coffee.erb .js)
|
207
|
+
file_exists?(extensions, script)
|
208
|
+
end
|
209
|
+
|
210
|
+
def stylesheet_exists?(stylesheet)
|
211
|
+
extensions = %w(.css.scss .css.erb .css.scss.erb .css)
|
212
|
+
file_exists?(extensions, stylesheet)
|
213
|
+
end
|
214
|
+
|
215
|
+
def file_exists?(extensions, filename)
|
216
|
+
extensions.detect do |extension|
|
217
|
+
File.exists?("#{filename}#{extension}")
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
private
|
222
|
+
|
223
|
+
def silence_stream(stream)
|
224
|
+
old_stream = stream.dup
|
225
|
+
stream.reopen(RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ? 'NUL:' : '/dev/null')
|
226
|
+
stream.sync = true
|
227
|
+
yield
|
228
|
+
ensure
|
229
|
+
stream.reopen(old_stream)
|
230
|
+
old_stream.close
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Configure Spree Preferences
|
2
|
+
#
|
3
|
+
# Note: Initializing preferences available within the Admin will overwrite any changes that were made through the user interface when you restart.
|
4
|
+
# If you would like users to be able to update a setting with the Admin it should NOT be set here.
|
5
|
+
#
|
6
|
+
# Note: If a preference is set here it will be stored within the cache & database upon initialization.
|
7
|
+
# Just removing an entry from this initializer will not make the preference value go away.
|
8
|
+
# Instead you must either set a new value or remove entry, clear cache, and remove database entry.
|
9
|
+
#
|
10
|
+
# In order to initialize a setting do:
|
11
|
+
# config.setting_name = 'new value'
|
12
|
+
Spree.config do |config|
|
13
|
+
# Example:
|
14
|
+
# Uncomment to stop tracking inventory levels in the application
|
15
|
+
# config.track_inventory_levels = false
|
16
|
+
end
|
17
|
+
|
18
|
+
Spree.user_class = <%= (options[:user_class].blank? ? "Spree::LegacyUser" : options[:user_class]).inspect %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into including all the files listed below.
|
2
|
+
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
3
|
+
// be included in the compiled file accessible from http://example.com/assets/application.js
|
4
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
5
|
+
// the compiled file.
|
6
|
+
//
|
7
|
+
//= require jquery
|
8
|
+
//= require jquery_ujs
|
9
|
+
//= require spree/backend
|
10
|
+
<% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/backend' %>
|
11
|
+
<% filename = "spree/backend/#{ options[:lib_name].gsub("/", "_") }" %>
|
12
|
+
<% filepath = File.join(File.dirname(__FILE__), "../../app/assets/javascripts/#{filename}") %>
|
13
|
+
<% if javascript_exists?(filepath) %>
|
14
|
+
//= require <%= filename %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
//= require_tree .
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into including all the files listed below.
|
2
|
+
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
3
|
+
// be included in the compiled file accessible from http://example.com/assets/application.js
|
4
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
5
|
+
// the compiled file.
|
6
|
+
//
|
7
|
+
//= require jquery
|
8
|
+
//= require jquery_ujs
|
9
|
+
//= require spree/frontend
|
10
|
+
<% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/frontend' %>
|
11
|
+
<% filename = "spree/frontend/#{ options[:lib_name].gsub("/", "_") }" %>
|
12
|
+
<% filepath = File.join(File.dirname(__FILE__), "../../app/assets/javascripts/#{ filename }") %>
|
13
|
+
<% if javascript_exists?(filepath) %>
|
14
|
+
//= require <%= filename %>
|
15
|
+
<% end %>
|
16
|
+
<% end %>
|
17
|
+
//= require_tree .
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
3
|
+
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
|
+
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
|
+
*
|
6
|
+
*= require spree/backend
|
7
|
+
<% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/backend' %>
|
8
|
+
<% filename = "spree/backend/#{ options[:lib_name].gsub("/", "_") }" %>
|
9
|
+
<% filepath = File.join(File.dirname(__FILE__), "../../app/assets/stylesheets/#{ filename }") %>
|
10
|
+
<% if stylesheet_exists?(filepath) %>
|
11
|
+
*= require <%= filename %>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
*= require_self
|
15
|
+
*= require_tree .
|
16
|
+
*/
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
3
|
+
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
|
+
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
|
+
*
|
6
|
+
*= require spree/frontend
|
7
|
+
<% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/frontend' %>
|
8
|
+
<% filename = "spree/frontend/#{ options[:lib_name].gsub("/", "_") }" %>
|
9
|
+
<% filepath = File.join(File.dirname(__FILE__), "../../app/assets/stylesheets/#{ filename }") %>
|
10
|
+
<% if stylesheet_exists?(filepath) %>
|
11
|
+
*= require <%= filename %>
|
12
|
+
<% end %>
|
13
|
+
<% end %>
|
14
|
+
*= require_self
|
15
|
+
*= require_tree .
|
16
|
+
*/
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module Spree
|
2
|
+
module Core
|
3
|
+
module ControllerHelpers
|
4
|
+
module Auth
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
include Spree::Core::TokenGenerator
|
7
|
+
|
8
|
+
included do
|
9
|
+
before_action :set_guest_token
|
10
|
+
helper_method :try_spree_current_user
|
11
|
+
|
12
|
+
rescue_from CanCan::AccessDenied do |exception|
|
13
|
+
redirect_unauthorized_access
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# Needs to be overriden so that we use Spree's Ability rather than anyone else's.
|
18
|
+
def current_ability
|
19
|
+
@current_ability ||= Spree::Ability.new(try_spree_current_user)
|
20
|
+
end
|
21
|
+
|
22
|
+
def redirect_back_or_default(default)
|
23
|
+
redirect_to(session["spree_user_return_to"] || request.env["HTTP_REFERER"] || default)
|
24
|
+
session["spree_user_return_to"] = nil
|
25
|
+
end
|
26
|
+
|
27
|
+
def set_guest_token
|
28
|
+
if cookies.signed[:guest_token].blank?
|
29
|
+
cookies.permanent.signed[:guest_token] = generate_guest_token
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def store_location
|
34
|
+
# disallow return to login, logout, signup pages
|
35
|
+
authentication_routes = [:spree_signup_path, :spree_login_path, :spree_logout_path]
|
36
|
+
disallowed_urls = []
|
37
|
+
authentication_routes.each do |route|
|
38
|
+
if respond_to?(route)
|
39
|
+
disallowed_urls << send(route)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
disallowed_urls.map!{ |url| url[/\/\w+$/] }
|
44
|
+
unless disallowed_urls.include?(request.fullpath)
|
45
|
+
session['spree_user_return_to'] = request.fullpath.gsub('//', '/')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# proxy method to *possible* spree_current_user method
|
50
|
+
# Authentication extensions (such as spree_auth_devise) are meant to provide spree_current_user
|
51
|
+
def try_spree_current_user
|
52
|
+
# This one will be defined by apps looking to hook into Spree
|
53
|
+
# As per authentication_helpers.rb
|
54
|
+
if respond_to?(:spree_current_user)
|
55
|
+
spree_current_user
|
56
|
+
# This one will be defined by Devise
|
57
|
+
elsif respond_to?(:current_spree_user)
|
58
|
+
current_spree_user
|
59
|
+
else
|
60
|
+
nil
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
# Redirect as appropriate when an access request fails. The default action is to redirect to the login screen.
|
65
|
+
# Override this method in your controllers if you want to have special behavior in case the user is not authorized
|
66
|
+
# to access the requested action. For example, a popup window might simply close itself.
|
67
|
+
def redirect_unauthorized_access
|
68
|
+
if try_spree_current_user
|
69
|
+
flash[:error] = Spree.t(:authorization_failure)
|
70
|
+
redirect_to spree.forbidden_path
|
71
|
+
else
|
72
|
+
store_location
|
73
|
+
if respond_to?(:spree_login_path)
|
74
|
+
redirect_to spree_login_path
|
75
|
+
else
|
76
|
+
redirect_to spree.respond_to?(:root_path) ? spree.root_path : main_app.root_path
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module Spree
|
2
|
+
module Core
|
3
|
+
module ControllerHelpers
|
4
|
+
module Common
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
included do
|
7
|
+
helper_method :title
|
8
|
+
helper_method :title=
|
9
|
+
helper_method :accurate_title
|
10
|
+
|
11
|
+
layout :get_layout
|
12
|
+
|
13
|
+
before_action :set_user_language
|
14
|
+
|
15
|
+
protected
|
16
|
+
|
17
|
+
# can be used in views as well as controllers.
|
18
|
+
# e.g. <% self.title = 'This is a custom title for this view' %>
|
19
|
+
attr_writer :title
|
20
|
+
|
21
|
+
def title
|
22
|
+
title_string = @title.present? ? @title : accurate_title
|
23
|
+
if title_string.present?
|
24
|
+
if Spree::Config[:always_put_site_name_in_title]
|
25
|
+
[title_string, default_title].join(' - ')
|
26
|
+
else
|
27
|
+
title_string
|
28
|
+
end
|
29
|
+
else
|
30
|
+
default_title
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def default_title
|
35
|
+
current_store.name
|
36
|
+
end
|
37
|
+
|
38
|
+
# this is a hook for subclasses to provide title
|
39
|
+
def accurate_title
|
40
|
+
current_store.seo_title
|
41
|
+
end
|
42
|
+
|
43
|
+
def render_404(exception = nil)
|
44
|
+
respond_to do |type|
|
45
|
+
type.html { render :status => :not_found, :file => "#{::Rails.root}/public/404", :formats => [:html], :layout => nil}
|
46
|
+
type.all { render :status => :not_found, :nothing => true }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def set_user_language
|
53
|
+
locale = session[:locale]
|
54
|
+
locale = config_locale if respond_to?(:config_locale, true) && locale.blank?
|
55
|
+
locale = Rails.application.config.i18n.default_locale if locale.blank?
|
56
|
+
locale = I18n.default_locale unless I18n.available_locales.map(&:to_s).include?(locale.to_s)
|
57
|
+
I18n.locale = locale
|
58
|
+
end
|
59
|
+
|
60
|
+
# Returns which layout to render.
|
61
|
+
#
|
62
|
+
# You can set the layout you want to render inside your Spree configuration with the +:layout+ option.
|
63
|
+
#
|
64
|
+
# Default layout is: +app/views/spree/layouts/spree_application+
|
65
|
+
#
|
66
|
+
def get_layout
|
67
|
+
layout ||= Spree::Config[:layout]
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
module Spree
|
2
|
+
module Core
|
3
|
+
module ControllerHelpers
|
4
|
+
module Order
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
before_action :set_current_order
|
9
|
+
|
10
|
+
helper_method :current_order
|
11
|
+
helper_method :simple_current_order
|
12
|
+
end
|
13
|
+
|
14
|
+
# Used in the link_to_cart helper.
|
15
|
+
def simple_current_order
|
16
|
+
|
17
|
+
return @simple_current_order if @simple_current_order
|
18
|
+
|
19
|
+
@simple_current_order = find_order_by_token_or_user
|
20
|
+
|
21
|
+
if @simple_current_order
|
22
|
+
@simple_current_order.last_ip_address = ip_address
|
23
|
+
return @simple_current_order
|
24
|
+
else
|
25
|
+
@simple_current_order = Spree::Order.new
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# The current incomplete order from the guest_token for use in cart and during checkout
|
30
|
+
def current_order(options = {})
|
31
|
+
options[:create_order_if_necessary] ||= false
|
32
|
+
|
33
|
+
return @current_order if @current_order
|
34
|
+
|
35
|
+
@current_order = find_order_by_token_or_user(options, true)
|
36
|
+
|
37
|
+
if options[:create_order_if_necessary] && (@current_order.nil? || @current_order.completed?)
|
38
|
+
@current_order = Spree::Order.new(current_order_params)
|
39
|
+
@current_order.user ||= try_spree_current_user
|
40
|
+
# See issue #3346 for reasons why this line is here
|
41
|
+
@current_order.created_by ||= try_spree_current_user
|
42
|
+
@current_order.save!
|
43
|
+
end
|
44
|
+
|
45
|
+
if @current_order
|
46
|
+
@current_order.last_ip_address = ip_address
|
47
|
+
return @current_order
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def associate_user
|
52
|
+
@order ||= current_order
|
53
|
+
if try_spree_current_user && @order
|
54
|
+
@order.associate_user!(try_spree_current_user) if @order.user.blank? || @order.email.blank?
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def set_current_order
|
59
|
+
if try_spree_current_user && current_order
|
60
|
+
try_spree_current_user.orders.incomplete.where('id != ?', current_order.id).each do |order|
|
61
|
+
current_order.merge!(order, try_spree_current_user)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def ip_address
|
67
|
+
request.remote_ip
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def last_incomplete_order
|
73
|
+
@last_incomplete_order ||= try_spree_current_user.last_incomplete_spree_order
|
74
|
+
end
|
75
|
+
|
76
|
+
def current_order_params
|
77
|
+
{ currency: current_currency, guest_token: cookies.signed[:guest_token], store_id: current_store.id, user_id: try_spree_current_user.try(:id) }
|
78
|
+
end
|
79
|
+
|
80
|
+
def find_order_by_token_or_user(options={}, with_adjustments = false)
|
81
|
+
options[:lock] ||= false
|
82
|
+
|
83
|
+
# Find any incomplete orders for the guest_token
|
84
|
+
incomplete_orders = Spree::Order.incomplete.includes(line_items: [variant: [:images, :option_values, :product]])
|
85
|
+
guest_token_order_params = current_order_params.except(:user_id)
|
86
|
+
order = if with_adjustments
|
87
|
+
incomplete_orders.includes(:adjustments).lock(options[:lock]).find_by(guest_token_order_params)
|
88
|
+
else
|
89
|
+
incomplete_orders.lock(options[:lock]).find_by(guest_token_order_params)
|
90
|
+
end
|
91
|
+
|
92
|
+
# Find any incomplete orders for the current user
|
93
|
+
if order.nil? && try_spree_current_user
|
94
|
+
order = last_incomplete_order
|
95
|
+
end
|
96
|
+
|
97
|
+
order
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'spree/responder'
|
2
|
+
|
3
|
+
module ActionController
|
4
|
+
class Base
|
5
|
+
def respond_with(*resources, &block)
|
6
|
+
if Spree::BaseController.spree_responders.keys.include?(self.class.to_s.to_sym)
|
7
|
+
# Checkout AS Array#extract_options! and original respond_with
|
8
|
+
# implementation for a better picture of this hack
|
9
|
+
if resources.last.is_a? Hash
|
10
|
+
resources.last.merge! action_name: action_name.to_sym
|
11
|
+
else
|
12
|
+
resources.push action_name: action_name.to_sym
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
super
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module Spree
|
22
|
+
module Core
|
23
|
+
module ControllerHelpers
|
24
|
+
module RespondWith
|
25
|
+
extend ActiveSupport::Concern
|
26
|
+
|
27
|
+
included do
|
28
|
+
cattr_accessor :spree_responders
|
29
|
+
self.spree_responders = {}
|
30
|
+
self.responder = Spree::Responder
|
31
|
+
end
|
32
|
+
|
33
|
+
module ClassMethods
|
34
|
+
def clear_overrides!
|
35
|
+
self.spree_responders = {}
|
36
|
+
end
|
37
|
+
|
38
|
+
def respond_override(options={})
|
39
|
+
unless options.blank?
|
40
|
+
action_name = options.keys.first
|
41
|
+
action_value = options.values.first
|
42
|
+
|
43
|
+
if action_name.blank? || action_value.blank?
|
44
|
+
raise ArgumentError, "invalid values supplied #{options.inspect}"
|
45
|
+
end
|
46
|
+
|
47
|
+
format_name = action_value.keys.first
|
48
|
+
format_value = action_value.values.first
|
49
|
+
|
50
|
+
if format_name.blank? || format_value.blank?
|
51
|
+
raise ArgumentError, "invalid values supplied #{options.inspect}"
|
52
|
+
end
|
53
|
+
|
54
|
+
if format_value.is_a?(Proc)
|
55
|
+
options = {action_name.to_sym => {format_name.to_sym => {:success => format_value}}}
|
56
|
+
end
|
57
|
+
|
58
|
+
self.spree_responders.deep_merge!(self.name.to_sym => options)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Spree
|
2
|
+
module Core
|
3
|
+
module ControllerHelpers
|
4
|
+
module Search
|
5
|
+
def build_searcher(params)
|
6
|
+
Spree::Config.searcher_class.new(params).tap do |searcher|
|
7
|
+
searcher.current_user = try_spree_current_user
|
8
|
+
searcher.current_currency = current_currency
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|