From dc77711c37d07a278cde586bfb972a06afc7aed7 Mon Sep 17 00:00:00 2001 From: Phil Pirozhkov Date: Sat, 14 Apr 2012 19:37:06 +0400 Subject: [PATCH] rails g synergy:install works --- lib/spree/synergy.rb | 90 +----------------------------- lib/spree/synergy/engine.rb | 75 +++++++++++++++++++++++++ lib/spree/synergy_configuration.rb | 6 ++ lib/synergy.rb | 2 + synergy.gemspec | 4 +- 5 files changed, 86 insertions(+), 91 deletions(-) create mode 100644 lib/spree/synergy/engine.rb create mode 100644 lib/synergy.rb diff --git a/lib/spree/synergy.rb b/lib/spree/synergy.rb index 169d47e..8877b5d 100644 --- a/lib/spree/synergy.rb +++ b/lib/spree/synergy.rb @@ -1,89 +1 @@ -# coding: utf-8 -# require 'spree_core' -# require 'spree_auth' -# require 'spree_api' -# require 'spree_dash' -# require 'spree_promo' -# require 'spree_i18n' -# require 'russian' -# require 'ru_propisju' - -require 'ext/number_helper' - -module Spree - module Synergy - class Engine < Rails::Engine - engine_name 'synergy' - - config.autoload_paths += %W(#{config.root}/lib) - - def self.activate - Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c| - Rails.env.production? ? require(c) : load(c) - end - - Time::DATE_FORMATS[:default] = "%d.%m.%Y - %H:%M" - Date::DATE_FORMATS[:default] = "%d.%m.%Y" - - Time.zone = "Moscow" - I18n.default_locale = :ru - - if Spree::Config.instance - Spree::Config.set(:default_locale => :ru) - Spree::Config.set(:default_country_id => 168) - Spree::Config.set(:allow_ssl_in_production => false) - Spree::Config.set(:disable_bill_address => true) - Spree::Config.set(:admin_interface_logo => "admin/logo.png") - checkout_zone = Zone.first - Spree::Config.set(:checkout_zone => checkout_zone.name) if checkout_zone - # store email address - Spree::Config.set(:store_email => 'test@site.ru') unless Spree::Config[:store_email] - # store phone - Spree::Config.set(:store_phone => '+7 (495) 1234567') unless Spree::Config[:store_phone] - # store address - #Spree::Config.set(:store_address => 'Somewhere st. Nowhere') - end - - ::ADDRESS_FIELDS.clear << ["lastname", "firstname", "secondname", "country", "state", "city", "zipcode", "address1", "phone"] - ::ADDRESS_FIELDS.flatten! - - String.class_eval do - def to_url - self.parameterize - end - end - - - # добавить событие для перехода от шага доставки к шагу подтверждения, минуя шаг оплаты - confirm_event = StateMachine::Event.new(Order.state_machine, :confirm_without_payment) - confirm_event.transition :to => 'confirm' - Order.state_machine.events << confirm_event - - # переопределение события :next для отображения шага подтверждения в любом случае - next_event = StateMachine::Event.new(Order.state_machine, :next) - next_event.transition :from => 'cart', :to => 'address' - next_event.transition :from => 'address', :to => 'delivery' - next_event.transition :from => 'delivery', :to => 'payment' - next_event.transition :from => 'payment', :to => 'confirm' - next_event.transition :from => 'confirm', :to => 'complete' - Order.state_machine.events << next_event - end - - config.to_prepare &method(:activate).to_proc - - initializer "spree.register.calculators" do |app| - app.config.spree.calculators.shipping_methods = [ - Spree::Calculator::Juridical - ] - end - - initializer "spree.register.payment_methods" do |app| - app.config.spree.payment_methods = [ - Spree::Gateway::Bogus, - Spree::PaymentMethod::SberBankInvoice, - Spree::PaymentMethod::JuridicalInvoice - ] - end - end - end -end +require 'spree/synergy/engine' \ No newline at end of file diff --git a/lib/spree/synergy/engine.rb b/lib/spree/synergy/engine.rb new file mode 100644 index 0000000..cbf7ea1 --- /dev/null +++ b/lib/spree/synergy/engine.rb @@ -0,0 +1,75 @@ +# coding: utf-8 + +# require 'spree_core' +# require 'spree_auth' +# require 'spree_api' +# require 'spree_dash' +# require 'spree_promo' +# require 'spree_i18n' +# require 'russian' +# require 'ru_propisju' + +require 'ext/number_helper' + +module Spree + module Synergy + class Engine < Rails::Engine + engine_name 'synergy' + + config.autoload_paths += %W(#{config.root}/lib) + + def self.activate + Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c| + Rails.env.production? ? require(c) : load(c) + end + + Time::DATE_FORMATS[:default] = "%d.%m.%Y - %H:%M" + Date::DATE_FORMATS[:default] = "%d.%m.%Y" + + Time.zone = "Europe/Moscow" + I18n.default_locale = :ru + + Spree::Config.set(:default_locale => :ru) + Spree::Config.set(:default_country_id => 168) + # Spree::Config.set(:allow_ssl_in_production => false) + # Spree::Config.set(:disable_bill_address => true) + # Spree::Config.set(:admin_interface_logo => "admin/logo.png") + # checkout_zone = Zone.first + # Spree::Config.set(:checkout_zone => checkout_zone.name) if checkout_zone + + # ::ADDRESS_FIELDS.clear << ["lastname", "firstname", "secondname", "country", "state", "city", "zipcode", "address1", "phone"] + # ::ADDRESS_FIELDS.flatten! + + # # добавить событие для перехода от шага доставки к шагу подтверждения, минуя шаг оплаты + # confirm_event = StateMachine::Event.new(Order.state_machine, :confirm_without_payment) + # confirm_event.transition :to => 'confirm' + # Order.state_machine.events << confirm_event + + # # переопределение события :next для отображения шага подтверждения в любом случае + # next_event = StateMachine::Event.new(Order.state_machine, :next) + # next_event.transition :from => 'cart', :to => 'address' + # next_event.transition :from => 'address', :to => 'delivery' + # next_event.transition :from => 'delivery', :to => 'payment' + # next_event.transition :from => 'payment', :to => 'confirm' + # next_event.transition :from => 'confirm', :to => 'complete' + # Order.state_machine.events << next_event + end + + config.to_prepare &method(:activate).to_proc + + initializer "spree.register.calculators" do |app| + app.config.spree.calculators.shipping_methods = [ + Spree::Calculator::Juridical + ] + end + + initializer "spree.register.payment_methods" do |app| + app.config.spree.payment_methods = [ + Spree::Gateway::Bogus, + Spree::PaymentMethod::SberBankInvoice, + Spree::PaymentMethod::JuridicalInvoice + ] + end + end + end +end diff --git a/lib/spree/synergy_configuration.rb b/lib/spree/synergy_configuration.rb index 5a07792..af9c06e 100644 --- a/lib/spree/synergy_configuration.rb +++ b/lib/spree/synergy_configuration.rb @@ -18,4 +18,10 @@ class SynergyConfiguration < Preferences::Configuration preference :director, :string preference :accountant, :string end + + AppConfiguration.class_eval do + preference :store_email, :string, :default => 'test@site.ru' + preference :store_phone, :string, :default => '+7 (495) 1234567' + preference :store_address, :string, :default => 'Somewhere st. Nowhere' + end end diff --git a/lib/synergy.rb b/lib/synergy.rb new file mode 100644 index 0000000..440acf0 --- /dev/null +++ b/lib/synergy.rb @@ -0,0 +1,2 @@ +require 'spree_core' +require 'spree/synergy' diff --git a/synergy.gemspec b/synergy.gemspec index 79abb76..6548b6a 100644 --- a/synergy.gemspec +++ b/synergy.gemspec @@ -15,10 +15,10 @@ Gem::Specification.new do |s| s.require_path = 'lib' s.requirements << 'none' - s.add_dependency('synergy_russian', '0.2.8') + s.add_dependency 'synergy_russian', '0.2.8' #s.add_dependency('json', '>= 1.5') #s.add_dependency('nokogiri', '~> 1.5') - s.add_dependency('spree', '~> 1.0') + s.add_dependency 'spree', '~> 1.0' #s.add_dependency('spree_static_content', '~> 0.70.0') #s.add_dependency('spree_editor', '~> 1.0') #s.add_dependency('spree_robokassa', '~> 0.50.2')