synergy 0.50.0.rc1

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.
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
+