synergy 0.50.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. data/.gitignore +9 -0
  2. data/LICENSE.txt +674 -0
  3. data/README.md +53 -0
  4. data/Rakefile +76 -0
  5. data/app/controllers/admin/products_controller_decorator.rb +64 -0
  6. data/app/controllers/checkout_controller_decorator.rb +10 -0
  7. data/app/models/calculator/cash_on_delivery.rb +14 -0
  8. data/app/models/taxon_decorator.rb +3 -0
  9. data/app/views/admin/overview/index.html.erb +170 -0
  10. data/app/views/admin/products/index.html.erb +94 -0
  11. data/app/views/shared/_filters.html.erb +0 -0
  12. data/config/initializers/secoint.rb +1 -0
  13. data/config/locales/affiliate_ru.yml +12 -0
  14. data/config/locales/devise.ru.yml +48 -0
  15. data/config/locales/email_to_friend_ru.yml +22 -0
  16. data/config/locales/reviews_ru.yml +59 -0
  17. data/config/locales/robokassa_ru.yml +14 -0
  18. data/config/locales/ru.yml +65 -0
  19. data/config/locales/wishlist_ru.yml +27 -0
  20. data/config/routes.rb +4 -0
  21. data/db/default/countries.yml +1583 -0
  22. data/db/default/roles.yml +7 -0
  23. data/db/default/states.yml +418 -0
  24. data/db/default/zone_members.yml +7 -0
  25. data/db/default/zones.yml +8 -0
  26. data/db/migrate/20090311090247_make_unicode_friendly.rb +48 -0
  27. data/db/migrate/20090827180351_add_secondname_to_addresses.rb +9 -0
  28. data/db/sample/calculators.yml +16 -0
  29. data/db/sample/preferences.yml +20 -0
  30. data/db/sample/shipping_categories.yml +3 -0
  31. data/db/sample/shipping_methods.yml +9 -0
  32. data/lib/synergy.rb +48 -0
  33. data/lib/synergy_hooks.rb +8 -0
  34. data/lib/tasks/install.rake +30 -0
  35. data/lib/tasks/synergy.rake +1 -0
  36. data/public/images/admin/icons/help.png +0 -0
  37. data/public/javascripts/admin/inline_help.js +24 -0
  38. data/public/javascripts/admin/jquery.simpletip-1.3.1.pack.js +14 -0
  39. data/public/stylesheets/admin/inline_help.css +21 -0
  40. data/public/stylesheets/admin/synergy.css +8 -0
  41. data/spec/spec_helper.rb +30 -0
  42. data/synergy.gemspec +30 -0
  43. metadata +261 -0
@@ -0,0 +1,9 @@
1
+ class AddSecondnameToAddresses < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :addresses, :secondname, :string
4
+ end
5
+
6
+ def self.down
7
+ remove_column :addresses, :secondname
8
+ end
9
+ end
@@ -0,0 +1,16 @@
1
+ ups_ground:
2
+ calculable: ups_ground
3
+ calculable_type: ShippingMethod
4
+ type: Calculator::FlatRate
5
+ ups_two_day:
6
+ calculable: ups_two_day
7
+ calculable_type: ShippingMethod
8
+ type: Calculator::FlatRate
9
+ ups_one_day:
10
+ calculable: ups_one_day
11
+ calculable_type: ShippingMethod
12
+ type: Calculator::FlatRate
13
+ flat_rate_coupon_calculator:
14
+ calculable: spree_coupon
15
+ calculable_type: Promotion
16
+ type: Calculator::FlatRate
@@ -0,0 +1,20 @@
1
+ flat_rate_ground:
2
+ name: amount
3
+ owner: ups_ground
4
+ owner_type: Calculator
5
+ value: 5
6
+ flat_rate_two_day:
7
+ name: amount
8
+ owner: ups_two_day
9
+ owner_type: Calculator
10
+ value: 10
11
+ flat_rate_one_day:
12
+ name: amount
13
+ owner: ups_one_day
14
+ owner_type: Calculator
15
+ value: 15
16
+ flat_rate_five_dollars:
17
+ name: amount
18
+ owner: flat_rate_coupon_calculator
19
+ owner_type: Calculator
20
+ value: 5
@@ -0,0 +1,3 @@
1
+ default_shipping:
2
+ id: 1
3
+ name: "По умолчанию"
@@ -0,0 +1,9 @@
1
+ ups_ground:
2
+ name: "Почта России (наложным платежём)"
3
+ zone_id: 1
4
+ ups_two_day:
5
+ name: "Почта России (по предоплате)"
6
+ zone_id: 1
7
+ ups_one_day:
8
+ name: "Курьером"
9
+ zone_id: 1
data/lib/synergy.rb ADDED
@@ -0,0 +1,48 @@
1
+ # coding: utf-8
2
+ require 'spree_core'
3
+ require 'synergy_hooks'
4
+
5
+ module Synergy
6
+ class Engine < Rails::Engine
7
+
8
+ config.autoload_paths += %W(#{config.root}/lib)
9
+
10
+ def self.activate
11
+ Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
12
+ Rails.env.production? ? require(c) : load(c)
13
+ end
14
+
15
+ Time::DATE_FORMATS[:default] = "%d.%m.%Y - %H:%M"
16
+ Date::DATE_FORMATS[:default] = "%d.%m.%Y"
17
+
18
+ Time.zone = "Moscow"
19
+ I18n.default_locale = :ru
20
+
21
+ if Spree::Config.instance
22
+ Spree::Config.set(:default_locale => :ru)
23
+ Spree::Config.set(:default_country_id => 168)
24
+ Spree::Config.set(:allow_ssl_in_production => false)
25
+ Spree::Config.set(:disable_bill_address => true)
26
+ end
27
+
28
+ ADDRESS_FIELDS.clear << ["lastname", "firstname", "secondname", "country", "state", "city", "zipcode", "address1", "phone"]
29
+ ADDRESS_FIELDS.flatten!
30
+
31
+ String.class_eval do
32
+ def to_url
33
+ self.parameterize
34
+ end
35
+ end
36
+
37
+ # зарегистрировать калькулятор для доставки наложенным платежём
38
+ Calculator::CashOnDelivery.register
39
+
40
+ # добавить событие для перехода от шага доставки к шагу завершения, минуя шаг оплаты
41
+ complete_event = StateMachine::Event.new(Order.state_machine, :complete_without_payment)
42
+ complete_event.transition(:to => 'complete')
43
+ Order.state_machine.events << complete_event
44
+ end
45
+
46
+ config.to_prepare &method(:activate).to_proc
47
+ end
48
+ end
@@ -0,0 +1,8 @@
1
+ class SecointHooks < Spree::ThemeSupport::HookListener
2
+ insert_after :admin_inside_head do
3
+ %(
4
+ <%= javascript_include_tag 'admin/inline_help.js', 'admin/jquery.simpletip-1.3.1.pack.js' %>
5
+ <%= stylesheet_link_tag 'admin/inline_help.css', 'admin/synergy.css' %>
6
+ )
7
+ end
8
+ end
@@ -0,0 +1,30 @@
1
+ namespace :synergy do
2
+ desc "Copies all migrations and assets (NOTE: This will be obsolete with Rails 3.1)"
3
+ task :install do
4
+ Rake::Task['synergy:install:migrations'].invoke
5
+ Rake::Task['synergy:install:assets'].invoke
6
+ Rake::Task['spree_editor:install'].invoke
7
+ Rake::Task['spree_yandex_market:install'].invoke
8
+ Rake::Task['spree_address_book:install'].invoke
9
+ exec "rails g spree_static_content:install"
10
+ end
11
+
12
+ namespace :install do
13
+ desc "Copies all migrations (NOTE: This will be obsolete with Rails 3.1)"
14
+ task :migrations do
15
+ source = File.join(File.dirname(__FILE__), '..', '..', 'db')
16
+ destination = File.join(Rails.root, 'db')
17
+ puts "INFO: Mirroring assets from #{source} to #{destination}"
18
+ Spree::FileUtilz.mirror_files(source, destination)
19
+ end
20
+
21
+ desc "Copies all assets (NOTE: This will be obsolete with Rails 3.1)"
22
+ task :assets do
23
+ source = File.join(File.dirname(__FILE__), '..', '..', 'public')
24
+ destination = File.join(Rails.root, 'public')
25
+ puts "INFO: Mirroring assets from #{source} to #{destination}"
26
+ Spree::FileUtilz.mirror_files(source, destination)
27
+ end
28
+ end
29
+
30
+ end
@@ -0,0 +1 @@
1
+ # add custom rake tasks here
Binary file
@@ -0,0 +1,24 @@
1
+ fields = {
2
+ product_available_on: "Укажите, начиная с какой даты товар станет<br />доступен в публичной части магазина.",
3
+ product_permalink: "Постоянная ссылка на товар (SEO-атрибут).",
4
+ product_prototype_id: "Заранее определенный набор свойств товара.<br />Позволяет существенно сэкономить время при<br />добавлении товаров с одинаковыми наборами свойств.<br />Прототипы задаются в меню \"Товары\"&nbsp;&ndash;&nbsp;\"Прототипы\"",
5
+ product_price: "Дробная часть отделяется точкой.",
6
+ product_shipping_category_id: "Набор способов доставки, применимых к данному товару.<br />Определяется в меню \"Конфигурация\"&nbsp;&ndash;<br />\"Способы доставки\"/\"Категории доставки\"",
7
+ product_tax_category_id: "Набор налоговых ставок, применимых к данному товару.<br />Определяется в меню \"Конфигурация\"&nbsp;&ndash;<br />\"Налоговые ставки\"/\"Категории налогов\"",
8
+ option_type_name: "Для внутреннего использования в административном интерфейсе.",
9
+ option_type_presentation: "Для отображения в магазине.",
10
+ property_name: "Для внутреннего использования в административном интерфейсе.",
11
+ property_presentation: "Для отображения в магазине.",
12
+ prototype_name: "Для внутреннего использования в административном интерфейсе.<br />Старайтесь, чтобы название прототипа отражало товар, к которому<br />он будет применяться."
13
+ }
14
+
15
+ function register_help() {
16
+ jQuery.each(fields, function(element_id, help_msg) {
17
+ jQuery('label[for='+element_id+']').after("&nbsp;<span class='help' id='help_"+element_id+"'><img src='/images/admin/icons/help.png' alt='help' /></span>");
18
+ jQuery('#help_'+element_id).simpletip({ position: 'right', offset: [-10, -230], content: help_msg});
19
+ });
20
+ }
21
+
22
+ $(document).ajaxSuccess(register_help);
23
+ $(document).ready(register_help);
24
+
@@ -0,0 +1,14 @@
1
+ /**
2
+ * jquery.simpletip 1.3.1. A simple tooltip plugin
3
+ *
4
+ * Copyright (c) 2009 Craig Thompson
5
+ * http://craigsworks.com
6
+ *
7
+ * Licensed under GPLv3
8
+ * http://www.opensource.org/licenses/gpl-3.0.html
9
+ *
10
+ * Launch : February 2009
11
+ * Version : 1.3.1
12
+ * Released: February 5, 2009 - 11:04am
13
+ */
14
+ eval(function(p,a,c,k,e,r){e=function(c){return(c<62?'':e(parseInt(c/62)))+((c=c%62)>35?String.fromCharCode(c+29):c.toString(36))};if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'([3-9a-zB-Z]|1\\w)'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(6($){6 Z(f,3){4 7=n;f=b(f);4 5=b(document.createElement(\'div\')).B(3.10).B((3.p)?3.11:\'\').B((3.C)?3.12:\'\').13(3.q).appendTo(f);a(!3.14)5.t();o 5.r();a(!3.C){f.hover(6(c){7.t(c)},6(){7.r()});a(!3.p){f.mousemove(6(c){a(5.D(\'N\')!==\'u\')7.E(c)})}}o{f.click(6(c){a(c.15===f.16(0)){a(5.D(\'N\')!==\'u\')7.r();o 7.t()}});b(v).mousedown(6(c){a(5.D(\'N\')!==\'u\'){4 17=(3.O)?b(c.15).parents(\'.5\').andSelf().filter(6(){d n===5.16(0)}).length:0;a(17===0)7.r()}})};b.18(7,{getVersion:6(){d[1,2,0]},getParent:6(){d f},getTooltip:6(){d 5},getPos:6(){d 5.i()},19:6(8,9){4 e=f.i();a(s 8==\'F\')8=G(8)+e.k;a(s 9==\'F\')9=G(9)+e.l;5.D({k:8,l:9});d 7},t:6(c){3.1a.m(7);7.E((3.p)?P:c);Q(3.1b){g\'H\':5.fadeIn(3.I);h;g\'1c\':5.slideDown(3.I,7.E);h;g\'1d\':3.1e.m(5,3.I);h;w:g\'u\':5.t();h};5.B(3.R);3.1f.m(7);d 7},r:6(){3.1g.m(7);Q(3.1h){g\'H\':5.fadeOut(3.J);h;g\'1c\':5.slideUp(3.J);h;g\'1d\':3.1i.m(5,3.J);h;w:g\'u\':5.r();h};5.removeClass(3.R);3.1j.m(7);d 7},update:6(q){5.13(q);3.q=q;d 7},1k:6(1l,K){3.1m.m(7);5.1k(1l,K,6(){3.1n.m(7)});d 7},L:6(8,9){4 1o=8+5.S();4 1p=9+5.T();4 1q=b(v).width()+b(v).scrollLeft();4 1r=b(v).height()+b(v).scrollTop();d[(1o>=1q),(1p>=1r)]},E:6(c){4 x=5.S();4 y=5.T();a(!c&&3.p){a(3.j.constructor==Array){8=G(3.j[0]);9=G(3.j[1])}o a(b(3.j).attr(\'nodeType\')===1){4 i=b(3.j).i();8=i.k;9=i.l}o{4 e=f.i();4 z=f.S();4 M=f.T();Q(3.j){g\'l\':4 8=e.k-(x/2)+(z/2);4 9=e.l-y;h;g\'bottom\':4 8=e.k-(x/2)+(z/2);4 9=e.l+M;h;g\'k\':4 8=e.k-x;4 9=e.l-(y/2)+(M/2);h;g\'right\':4 8=e.k+z;4 9=e.l-(y/2)+(M/2);h;w:g\'w\':4 8=(z/2)+e.k+20;4 9=e.l;h}}}o{4 8=c.pageX;4 9=c.pageY};a(s 3.j!=\'object\'){8=8+3.i[0];9=9+3.i[1];a(3.L){4 U=7.L(8,9);a(U[0])8=8-(x/2)-(2*3.i[0]);a(U[1])9=9-(y/2)-(2*3.i[1])}}o{a(s 3.j[0]=="F")8=1s(8);a(s 3.j[1]=="F")9=1s(9)};7.19(8,9);d 7}})};b.fn.V=6(3){4 W=b(n).eq(s 3==\'number\'?3:0).K("V");a(W)d W;4 X={q:\'A simple 5\',C:1t,O:1t,14:Y,j:\'w\',i:[0,0],L:Y,p:Y,1b:\'H\',I:1u,1e:P,1h:\'H\',J:1u,1i:P,10:\'5\',R:\'active\',11:\'p\',12:\'C\',focusClass:\'O\',1a:6(){},1f:6(){},1g:6(){},1j:6(){},1m:6(){},1n:6(){}};b.18(X,3);n.each(6(){4 el=new Z(b(n),X);b(n).K("V",el)});d n}})();',[],93,'|||conf|var|tooltip|function|self|posX|posY|if|jQuery|event|return|elemPos|elem|case|break|offset|position|left|top|call|this|else|fixed|content|hide|typeof|show|none|window|default|tooltipWidth|tooltipHeight|elemWidth||addClass|persistent|css|updatePos|string|parseInt|fade|showTime|hideTime|data|boundryCheck|elemHeight|display|focus|null|switch|activeClass|outerWidth|outerHeight|overflow|simpletip|api|defaultConf|true|Simpletip|baseClass|fixedClass|persistentClass|html|hidden|target|get|check|extend|setPos|onBeforeShow|showEffect|slide|custom|showCustom|onShow|onBeforeHide|hideEffect|hideCustom|onHide|load|uri|beforeContentLoad|onContentLoad|newX|newY|windowWidth|windowHeight|String|false|150'.split('|'),0,{}))
@@ -0,0 +1,21 @@
1
+ .tooltip{
2
+ position: absolute;
3
+ padding: 10px 12px;
4
+ z-index: 2;
5
+
6
+ color: #303030;
7
+ background-color: #f5f5b5;
8
+ border: 1px solid #DECA7E;
9
+
10
+ font-family: sans-serif;
11
+ font-size: 12px;
12
+ line-height: 18px;
13
+ text-align: center;
14
+ }
15
+
16
+ .tooltip h3{
17
+ margin: 0 0 5px;
18
+ text-align: left;
19
+ }
20
+
21
+ .help { cursor: help; }
@@ -0,0 +1,8 @@
1
+ ul#shipping-specs label {
2
+ display: block;
3
+ }
4
+
5
+ ul#shipping-specs li {
6
+ display: block;
7
+ list-style-image: none;
8
+ }
@@ -0,0 +1,30 @@
1
+ # This file is copied to ~/spec when you run 'ruby script/generate rspec'
2
+ # from the project root directory.
3
+ ENV["RAILS_ENV"] ||= 'test'
4
+ require File.expand_path("../test_app/config/environment", __FILE__)
5
+ require 'rspec/rails'
6
+
7
+ # Requires supporting files with custom matchers and macros, etc,
8
+ # in ./support/ and its subdirectories.
9
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
10
+
11
+ RSpec.configure do |config|
12
+ # == Mock Framework
13
+ #
14
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
15
+ #
16
+ # config.mock_with :mocha
17
+ # config.mock_with :flexmock
18
+ # config.mock_with :rr
19
+ config.mock_with :rspec
20
+
21
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
22
+
23
+ #config.include Devise::TestHelpers, :type => :controller
24
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
25
+ # examples within a transaction, comment the following line or assign false
26
+ # instead of true.
27
+ config.use_transactional_fixtures = true
28
+ end
29
+
30
+ @configuration ||= AppConfiguration.find_or_create_by_name("Default configuration")
data/synergy.gemspec ADDED
@@ -0,0 +1,30 @@
1
+ Gem::Specification.new do |s|
2
+ s.platform = Gem::Platform::RUBY
3
+ s.name = 'synergy'
4
+ s.version = '0.50.0.rc1'
5
+ s.summary = 'Russian e-commerce solution based on Spree'
6
+ #s.description = 'Add (optional) gem description here'
7
+ s.required_ruby_version = '>= 1.8.7'
8
+
9
+ s.author = 'Roman Smirnov'
10
+ s.email = 'roman@railsdog.com'
11
+ s.homepage = 'https://github.com/secoint/synergy'
12
+ # s.rubyforge_project = 'actionmailer'
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.require_path = 'lib'
17
+ s.requirements << 'none'
18
+
19
+ s.add_dependency('russian', '0.2.7')
20
+ s.add_dependency('json', '1.5.1')
21
+ s.add_dependency('nokogiri', '1.4.4')
22
+ s.add_dependency('spree', '~> 0.50.2')
23
+ s.add_dependency('spree_static_content', '~> 0.40.2')
24
+ s.add_dependency('spree_editor', '~> 0.50.0')
25
+ s.add_dependency('spree_robokassa', '~> 0.50.0')
26
+ s.add_dependency('spree_yandex_market', '~> 1.2.0')
27
+ s.add_dependency('spree_online_support', '~> 0.50.0')
28
+ s.add_dependency('spree_address_book', '~> 0.50.0')
29
+ s.add_dependency('spree_dynamic_sitemaps', '~> 0.50.1')
30
+ end
metadata ADDED
@@ -0,0 +1,261 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: synergy
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: true
5
+ segments:
6
+ - 0
7
+ - 50
8
+ - 0
9
+ - rc1
10
+ version: 0.50.0.rc1
11
+ platform: ruby
12
+ authors:
13
+ - Roman Smirnov
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-05-01 00:00:00 +04:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: russian
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 2
31
+ - 7
32
+ version: 0.2.7
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: json
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 1
44
+ - 5
45
+ - 1
46
+ version: 1.5.1
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: nokogiri
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "="
55
+ - !ruby/object:Gem::Version
56
+ segments:
57
+ - 1
58
+ - 4
59
+ - 4
60
+ version: 1.4.4
61
+ type: :runtime
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: spree
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ segments:
71
+ - 0
72
+ - 50
73
+ - 2
74
+ version: 0.50.2
75
+ type: :runtime
76
+ version_requirements: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: spree_static_content
79
+ prerelease: false
80
+ requirement: &id005 !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ~>
83
+ - !ruby/object:Gem::Version
84
+ segments:
85
+ - 0
86
+ - 40
87
+ - 2
88
+ version: 0.40.2
89
+ type: :runtime
90
+ version_requirements: *id005
91
+ - !ruby/object:Gem::Dependency
92
+ name: spree_editor
93
+ prerelease: false
94
+ requirement: &id006 !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ segments:
99
+ - 0
100
+ - 50
101
+ - 0
102
+ version: 0.50.0
103
+ type: :runtime
104
+ version_requirements: *id006
105
+ - !ruby/object:Gem::Dependency
106
+ name: spree_robokassa
107
+ prerelease: false
108
+ requirement: &id007 !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ~>
111
+ - !ruby/object:Gem::Version
112
+ segments:
113
+ - 0
114
+ - 50
115
+ - 0
116
+ version: 0.50.0
117
+ type: :runtime
118
+ version_requirements: *id007
119
+ - !ruby/object:Gem::Dependency
120
+ name: spree_yandex_market
121
+ prerelease: false
122
+ requirement: &id008 !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ segments:
127
+ - 1
128
+ - 2
129
+ - 0
130
+ version: 1.2.0
131
+ type: :runtime
132
+ version_requirements: *id008
133
+ - !ruby/object:Gem::Dependency
134
+ name: spree_online_support
135
+ prerelease: false
136
+ requirement: &id009 !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ~>
139
+ - !ruby/object:Gem::Version
140
+ segments:
141
+ - 0
142
+ - 50
143
+ - 0
144
+ version: 0.50.0
145
+ type: :runtime
146
+ version_requirements: *id009
147
+ - !ruby/object:Gem::Dependency
148
+ name: spree_address_book
149
+ prerelease: false
150
+ requirement: &id010 !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - ~>
153
+ - !ruby/object:Gem::Version
154
+ segments:
155
+ - 0
156
+ - 50
157
+ - 0
158
+ version: 0.50.0
159
+ type: :runtime
160
+ version_requirements: *id010
161
+ - !ruby/object:Gem::Dependency
162
+ name: spree_dynamic_sitemaps
163
+ prerelease: false
164
+ requirement: &id011 !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ~>
167
+ - !ruby/object:Gem::Version
168
+ segments:
169
+ - 0
170
+ - 50
171
+ - 1
172
+ version: 0.50.1
173
+ type: :runtime
174
+ version_requirements: *id011
175
+ description:
176
+ email: roman@railsdog.com
177
+ executables: []
178
+
179
+ extensions: []
180
+
181
+ extra_rdoc_files: []
182
+
183
+ files:
184
+ - .gitignore
185
+ - LICENSE.txt
186
+ - README.md
187
+ - Rakefile
188
+ - app/controllers/admin/products_controller_decorator.rb
189
+ - app/controllers/checkout_controller_decorator.rb
190
+ - app/models/calculator/cash_on_delivery.rb
191
+ - app/models/taxon_decorator.rb
192
+ - app/views/admin/overview/index.html.erb
193
+ - app/views/admin/products/index.html.erb
194
+ - app/views/shared/_filters.html.erb
195
+ - config/initializers/secoint.rb
196
+ - config/locales/affiliate_ru.yml
197
+ - config/locales/devise.ru.yml
198
+ - config/locales/email_to_friend_ru.yml
199
+ - config/locales/reviews_ru.yml
200
+ - config/locales/robokassa_ru.yml
201
+ - config/locales/ru.yml
202
+ - config/locales/wishlist_ru.yml
203
+ - config/routes.rb
204
+ - db/default/countries.yml
205
+ - db/default/roles.yml
206
+ - db/default/states.yml
207
+ - db/default/zone_members.yml
208
+ - db/default/zones.yml
209
+ - db/migrate/20090311090247_make_unicode_friendly.rb
210
+ - db/migrate/20090827180351_add_secondname_to_addresses.rb
211
+ - db/sample/calculators.yml
212
+ - db/sample/preferences.yml
213
+ - db/sample/shipping_categories.yml
214
+ - db/sample/shipping_methods.yml
215
+ - lib/synergy.rb
216
+ - lib/synergy_hooks.rb
217
+ - lib/tasks/install.rake
218
+ - lib/tasks/synergy.rake
219
+ - public/images/admin/icons/help.png
220
+ - public/javascripts/admin/inline_help.js
221
+ - public/javascripts/admin/jquery.simpletip-1.3.1.pack.js
222
+ - public/stylesheets/admin/inline_help.css
223
+ - public/stylesheets/admin/synergy.css
224
+ - spec/spec_helper.rb
225
+ - synergy.gemspec
226
+ has_rdoc: true
227
+ homepage: https://github.com/secoint/synergy
228
+ licenses: []
229
+
230
+ post_install_message:
231
+ rdoc_options: []
232
+
233
+ require_paths:
234
+ - lib
235
+ required_ruby_version: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - ">="
238
+ - !ruby/object:Gem::Version
239
+ segments:
240
+ - 1
241
+ - 8
242
+ - 7
243
+ version: 1.8.7
244
+ required_rubygems_version: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ">"
247
+ - !ruby/object:Gem::Version
248
+ segments:
249
+ - 1
250
+ - 3
251
+ - 1
252
+ version: 1.3.1
253
+ requirements:
254
+ - none
255
+ rubyforge_project:
256
+ rubygems_version: 1.3.6
257
+ signing_key:
258
+ specification_version: 3
259
+ summary: Russian e-commerce solution based on Spree
260
+ test_files: []
261
+