My-Commerce 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,130 @@
1
+ SUMMARY
2
+ -------
3
+
4
+ Spree is a complete open source commerce solution for Ruby on Rails. It was originally developed by Sean Schofield
5
+ and is now maintained by a dedicated [core team](http://spreecommerce.com/core-team). You can find out more about
6
+ by visiting the [Spree e-commerce project page](http://spreecommerce.com).
7
+
8
+ Spree actually consists of several different gems, each of which are maintained in a single repository and documented
9
+ in a single set of [online documentation](http://spreecommerce.com/documentation). By requiring the Spree gem you
10
+ automatically require all of the necessary dependency gems. Those gems are as follows:
11
+
12
+ * spree_api
13
+ * spree_auth
14
+ * spree_core
15
+ * spree_dash
16
+ * spree_promo
17
+ * spree_sample
18
+
19
+ All of the gems are designed to work together to provide a fully functional e-commerce platform. It is also possible,
20
+ however, to use only the pieces you are interested in. So for example, you could use just the barebones spree\_core gem
21
+ and perhaps combine it with your own custom authorization scheme instead of using spree_auth.
22
+
23
+ Using the Gem
24
+ -------------
25
+
26
+ Start by adding the gem to your existing Rails 3.x application's Gemfile
27
+
28
+ gem 'spree'
29
+
30
+ Update your bundle
31
+
32
+ bundle install
33
+
34
+ Then use the install generator to do the basic setup (add Spree to Gemfile, etc.)
35
+
36
+ rails g spree:site
37
+
38
+ Now its time to install all of the necessary migrations, assets, etc.
39
+
40
+ rake spree:install
41
+
42
+ If you'd like to also install sample data and images you can follow up the above command with:
43
+
44
+ rake spree_sample:install
45
+
46
+ Now you just need to run the new migrations
47
+
48
+ rake db:migrate
49
+ rake db:seed
50
+
51
+ If you also want some sample products, orders, etc. to play with you can run the appropriate rake task.
52
+
53
+ rake db:sample
54
+
55
+
56
+ Browse Store
57
+ ------------
58
+
59
+ http://localhost:nnnn
60
+
61
+ Browse Admin Interface
62
+ ----------------------
63
+
64
+ http://localhost:nnnn/admin
65
+
66
+
67
+
68
+ Working with the edge source (latest and greatest features)
69
+ -----------------------------------------------------------
70
+
71
+ The source code is essentially a collection of gems. Spree is meant to be run within the context of Rails application. You can easily create a sandbox application inside of your cloned source directory for testing purposes.
72
+
73
+
74
+ 1. Clone the git repo
75
+
76
+ git clone git://github.com/spree/spree.git spree
77
+ cd spree
78
+
79
+ 2. Install the gem dependencies
80
+
81
+ bundle install
82
+
83
+ 3. Create a sandbox rails application for testing purposes (and automatically perform all necessary database setup)
84
+
85
+ rake sandbox
86
+
87
+ 6. Start the server
88
+
89
+ cd sandbox
90
+ rails server
91
+
92
+ Running Tests
93
+ -------------
94
+
95
+ If you want to run all the tests across all the gems then
96
+
97
+ $ cd spree
98
+ $ rake spec #=> 'this will run spec tests for all the gems'
99
+ $ rake cucumber #=> 'this will run cucumber tests for all the gems'
100
+ $ rake #=> 'this will run both spec and cucumber tests for all the gems'
101
+
102
+ Each gem contains its own series of tests, and for each directory, you need to do a quick one-time
103
+ creation of a test application and then you can use it to run the tests. For example, to run the
104
+ tests for the core project.
105
+
106
+ $ cd core
107
+ $ rake test_app
108
+ $ rake spec
109
+ $ rake cucumber
110
+ $ rake #=> 'this will run both spec and cucumber tests for the gem'
111
+
112
+ # If you want to run specs for only a single spec file
113
+ $ bundle exec rspec spec/models/state_spec.rb
114
+
115
+ # If you want to run a particular line of spec
116
+ $ bundle exec rspec spec/models/state_spec.rb:7
117
+
118
+ # If you want to run a single cucumber feature
119
+ # bundle exec cucumber features/admin/orders.feature --require features
120
+
121
+ # If you want to run a particular scenario then include the line number
122
+ # bundle exec cucumber features/admin/orders.feature:3 --require features
123
+
124
+
125
+ Contributing
126
+ ------------
127
+
128
+ Spree is an open source project. We encourage contributions. Please see the [contributors guidelines](http://spreecommerce.com/documentation/contributing_to_spree.html) before contributing.
129
+
130
+ The Github team has also been kind enough to write up some great [documentation](http://help.github.com/pull-requests/) on working with pull requests. Contributions should be performed on [topic branches](http://progit.org/book/ch3-4.html) in your personal forks - just issue your pull requests from there. We're also asking that you continue to log important issues for non-trivial patches in our [lighthouse repository](http://railsdog.lighthouseapp.com/projects/31096-spree). You can just link the pull request in the ticket (and link the ticket in the pull request.)
@@ -0,0 +1,71 @@
1
+ require 'rails/generators'
2
+
3
+ module Spree
4
+ module Generators
5
+ class ExtensionGenerator < Rails::Generators::NamedBase
6
+ source_root File.expand_path("../../templates", __FILE__)
7
+
8
+ desc "Creates a new extension with the name you specify."
9
+ check_class_collision
10
+
11
+ def create_root_files
12
+ empty_directory file_name
13
+ empty_directory "#{file_name}/config"
14
+ empty_directory "#{file_name}/db"
15
+ empty_directory "#{file_name}/public"
16
+ template "LICENSE", "#{file_name}/LICENSE"
17
+ template "Rakefile.tt", "#{file_name}/Rakefile"
18
+ template "README.md", "#{file_name}/README.md"
19
+ template "gitignore.tt", "#{file_name}/.gitignore"
20
+ template "extension.gemspec.tt", "#{file_name}/#{file_name}.gemspec"
21
+ template "Versionfile.tt", "#{file_name}/Versionfile"
22
+ end
23
+
24
+ def config_routes
25
+ template "routes.rb", "#{file_name}/config/routes.rb"
26
+ end
27
+
28
+ def install_rake
29
+ template "install.rake.tt", "#{file_name}/lib/tasks/install.rake"
30
+ end
31
+
32
+ def create_app_dirs
33
+ empty_directory extension_dir('app')
34
+ empty_directory extension_dir('app/controllers')
35
+ empty_directory extension_dir('app/helpers')
36
+ empty_directory extension_dir('app/models')
37
+ empty_directory extension_dir('app/views')
38
+ empty_directory extension_dir('spec')
39
+ end
40
+
41
+ def create_lib_files
42
+ directory "lib", "#{file_name}/lib"
43
+ template 'extension/extension.rb.tt', "#{file_name}/lib/#{file_name}.rb"
44
+ template 'hooks.rb.tt', "#{file_name}/lib/#{file_name}_hooks.rb"
45
+ end
46
+
47
+ def create_spec_helper
48
+ template "spec_helper.rb", "#{file_name}/spec/spec_helper.rb"
49
+ end
50
+
51
+ def update_gemfile
52
+ gem file_name, :path => file_name, :require => file_name
53
+ end
54
+
55
+ protected
56
+
57
+ def current_locale
58
+ I18n.locale.to_s
59
+ end
60
+
61
+ def extension_dir(join=nil)
62
+ if join
63
+ File.join(file_name, join)
64
+ else
65
+ file_name
66
+ end
67
+ end
68
+
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,45 @@
1
+ module Spree
2
+ module Generators
3
+ class SiteGenerator < Rails::Generators::Base
4
+ source_root File.expand_path("../../templates", __FILE__)
5
+
6
+ desc "Configures an existing Rails application to use Spree."
7
+
8
+ def create_lib_files
9
+ template 'spree_site.rb', "lib/spree_site.rb"
10
+ end
11
+
12
+ def additional_tweaks
13
+ remove_file "public/index.html"
14
+
15
+ append_file "public/robots.txt", <<-ROBOTS
16
+ User-agent: *
17
+ Disallow: /checkouts
18
+ Disallow: /orders
19
+ Disallow: /countries
20
+ Disallow: /line_items
21
+ Disallow: /password_resets
22
+ Disallow: /states
23
+ Disallow: /user_sessions
24
+ Disallow: /users
25
+ ROBOTS
26
+
27
+ append_file "db/seeds.rb", <<-SEEDS
28
+ \n
29
+ Rake::Task["db:load_dir"].invoke( "default" )
30
+ puts "Default data has been loaded"
31
+ SEEDS
32
+ end
33
+
34
+ def config_middleware
35
+ application 'config.middleware.use "SeoAssist"'
36
+ application 'config.middleware.use "RedirectLegacyProductUrl"'
37
+ end
38
+
39
+ def require_site
40
+ application "require 'spree_site'"
41
+ end
42
+
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,145 @@
1
+ require 'rails/generators'
2
+
3
+ module Spree
4
+ module Generators
5
+ class TestAppGenerator < Rails::Generators::Base
6
+
7
+ class << self
8
+ attr_accessor :verbose
9
+ end
10
+
11
+ class_option :app_name, :type => :string,
12
+ :desc => "The name of the test rails app to generate. Defaults to test_app.",
13
+ :default => "test_app"
14
+
15
+ def self.source_root
16
+ File.expand_path('../../templates', __FILE__)
17
+ end
18
+
19
+ def generate_app
20
+ remove_directory_if_exists("spec/#{test_app}")
21
+ inside "spec" do
22
+ run "bundle exec rails new #{test_app} --database=#{database_name} -GJTq --skip-gemfile"
23
+ end
24
+ end
25
+
26
+ def create_rspec_gemfile
27
+ # newer versions of rspec require a Gemfile in the local gem dirs so create one there as well as in spec/test_app
28
+ silence_stream(STDOUT) {
29
+ template "Gemfile", :force => true
30
+ remove_file "Gemfile.lock"
31
+ }
32
+ end
33
+
34
+ def create_root
35
+ self.destination_root = File.expand_path("spec/#{test_app}", destination_root)
36
+ end
37
+
38
+ def remove_unneeded_files
39
+ silence_stream(STDOUT) {
40
+ remove_file "doc"
41
+ remove_file "lib/tasks"
42
+ remove_file "public/images/rails.png"
43
+ remove_file "public/index.html"
44
+ remove_file "README"
45
+ remove_file "vendor"
46
+ }
47
+ end
48
+
49
+ def replace_gemfile
50
+ silence_stream(STDOUT) {
51
+ template "Gemfile"
52
+ }
53
+ end
54
+
55
+ def setup_environments
56
+ silence_stream(STDOUT) {
57
+ template "config/environments/cucumber.rb"
58
+ }
59
+ end
60
+
61
+ def create_databases_yml
62
+ silence_stream(STDOUT) {
63
+ remove_file "config/database.yml"
64
+ template "config/database.yml.#{database_name}"
65
+ mv "spec/test_app/config/database.yml.#{database_name}", "spec/test_app/config/database.yml", :verbose => false
66
+ }
67
+ end
68
+
69
+ def tweak_gemfile
70
+ silence_stream(STDOUT) {
71
+ append_file '../../Gemfile' do
72
+ full_path_for_local_gems
73
+ end
74
+
75
+ append_file 'Gemfile' do
76
+ full_path_for_local_gems
77
+ end
78
+ }
79
+ end
80
+
81
+ def append_db_adapter_gem
82
+ silence_stream(STDOUT) {
83
+ case database_name
84
+ when "mysql"
85
+ gem "mysql2"
86
+ append_file '../../Gemfile' do
87
+ "gem 'mysql2'"
88
+ end
89
+ else
90
+ gem "sqlite3-ruby"
91
+ append_file '../../Gemfile' do
92
+ "gem 'sqlite3-ruby'"
93
+ end
94
+ end
95
+ }
96
+ end
97
+
98
+ protected
99
+ def full_path_for_local_gems
100
+ # Gemfile needs to be full local path to the source (ex. /Users/schof/repos/spree/auth)
101
+ # By default we do nothing but each gem should override this method with the appropriate content
102
+ end
103
+
104
+ private
105
+
106
+ def run_migrations
107
+ silence_stream(STDOUT) {
108
+ inside "" do
109
+ run "bundle exec rake db:drop db:create db:migrate db:seed RAILS_ENV=test"
110
+ run "bundle exec rake db:drop db:create db:migrate db:seed RAILS_ENV=cucumber"
111
+ end
112
+ }
113
+ end
114
+
115
+ def test_app
116
+ options[:app_name]
117
+ end
118
+
119
+ def database_name
120
+ ENV['DB_NAME'] || "sqlite3"
121
+ end
122
+
123
+ def remove_directory_if_exists(path)
124
+ silence_stream(STDOUT) {
125
+ run "rm -r #{path}" if File.directory?(path)
126
+ }
127
+ end
128
+
129
+ def silence_stream(stream)
130
+ if self.class.verbose
131
+ yield
132
+ else
133
+ begin
134
+ old_stream = stream.dup
135
+ stream.reopen(RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ? 'NUL:' : '/dev/null')
136
+ stream.sync = true
137
+ yield
138
+ ensure
139
+ stream.reopen(old_stream)
140
+ end
141
+ end
142
+ end
143
+ end
144
+ end
145
+ end
@@ -0,0 +1,32 @@
1
+ source 'http://rubygems.org'
2
+
3
+ group :test do
4
+ gem 'rspec-rails', '= 2.5.0'
5
+ gem 'factory_girl', '= 1.3.3'
6
+ gem 'factory_girl_rails', '= 1.0.1'
7
+ gem 'rcov'
8
+ gem 'shoulda'
9
+ gem 'faker'
10
+ if RUBY_VERSION < "1.9"
11
+ gem "ruby-debug"
12
+ else
13
+ gem "ruby-debug19"
14
+ end
15
+ end
16
+
17
+ group :cucumber do
18
+ gem 'cucumber-rails'
19
+ gem 'database_cleaner', '= 0.6.7'
20
+ gem 'nokogiri'
21
+ gem 'capybara', '= 0.4.1.2'
22
+ gem 'factory_girl', '= 1.3.3'
23
+ gem 'factory_girl_rails', '= 1.0.1'
24
+ gem 'faker'
25
+ gem 'launchy'
26
+
27
+ if RUBY_VERSION < "1.9"
28
+ gem "ruby-debug"
29
+ else
30
+ gem "ruby-debug19"
31
+ end
32
+ end
@@ -0,0 +1,23 @@
1
+ Redistribution and use in source and binary forms, with or without modification,
2
+ are permitted provided that the following conditions are met:
3
+
4
+ * Redistributions of source code must retain the above copyright notice,
5
+ this list of conditions and the following disclaimer.
6
+ * Redistributions in binary form must reproduce the above copyright notice,
7
+ this list of conditions and the following disclaimer in the documentation
8
+ and/or other materials provided with the distribution.
9
+ * Neither the name of the Rails Dog LLC nor the names of its
10
+ contributors may be used to endorse or promote products derived from this
11
+ software without specific prior written permission.
12
+
13
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
14
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
15
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
16
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
21
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
22
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,13 @@
1
+ <%= class_name %>
2
+ <%= "=" * class_name.size %>
3
+
4
+ Introduction goes here.
5
+
6
+
7
+ Example
8
+ =======
9
+
10
+ Example goes here.
11
+
12
+
13
+ Copyright (c) <%= Date.today.year %> [name of extension creator], released under the New BSD License
@@ -0,0 +1,75 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+ require 'rake/packagetask'
5
+ require 'rake/gempackagetask'
6
+
7
+ gemfile = File.expand_path('../spec/test_app/Gemfile', __FILE__)
8
+ if File.exists?(gemfile) && (%w(spec cucumber).include?(ARGV.first.to_s) || ARGV.size == 0)
9
+ require 'bundler'
10
+ ENV['BUNDLE_GEMFILE'] = gemfile
11
+ Bundler.setup
12
+
13
+ require 'rspec'
14
+ require 'rspec/core/rake_task'
15
+ RSpec::Core::RakeTask.new
16
+
17
+ require 'cucumber/rake/task'
18
+ Cucumber::Rake::Task.new do |t|
19
+ t.cucumber_opts = %w{--format progress}
20
+ end
21
+ end
22
+
23
+ desc "Default Task"
24
+ task :default => [:spec, :cucumber ]
25
+
26
+ spec = eval(File.read('<%= file_name %>.gemspec'))
27
+
28
+ Rake::GemPackageTask.new(spec) do |p|
29
+ p.gem_spec = spec
30
+ end
31
+
32
+ desc "Release to gemcutter"
33
+ task :release => :package do
34
+ require 'rake/gemcutter'
35
+ Rake::Gemcutter::Tasks.new(spec).define
36
+ Rake::Task['gem:push'].invoke
37
+ end
38
+
39
+ desc "Default Task"
40
+ task :default => [ :spec ]
41
+
42
+ desc "Regenerates a rails 3 app for testing"
43
+ task :test_app do
44
+ require '../spree/lib/generators/spree/test_app_generator'
45
+ class <%= file_name.classify %>TestAppGenerator < Spree::Generators::TestAppGenerator
46
+
47
+ def install_gems
48
+ inside "test_app" do
49
+ run 'bundle exec rake spree_core:install'
50
+ run 'bundle exec rake <%= file_name %>:install'
51
+ end
52
+ end
53
+
54
+ def migrate_db
55
+ run_migrations
56
+ end
57
+
58
+ protected
59
+ def full_path_for_local_gems
60
+ <<-gems
61
+ gem 'spree_core', :path => \'#{File.join(File.dirname(__FILE__), "../spree/", "core")}\'
62
+ gem '<%= file_name %>', :path => \'#{File.dirname(__FILE__)}\'
63
+ gems
64
+ end
65
+
66
+ end
67
+ <%= file_name.classify %>TestAppGenerator.start
68
+ end
69
+
70
+ namespace :test_app do
71
+ desc 'Rebuild test and cucumber databases'
72
+ task :rebuild_dbs do
73
+ system("cd spec/test_app && bundle exec rake db:drop db:migrate RAILS_ENV=test && rake db:drop db:migrate RAILS_ENV=cucumber")
74
+ end
75
+ end
@@ -0,0 +1,9 @@
1
+ # This file is used to designate compatibilty with different versions of Spree
2
+ # Please see http://spreecommerce.com/documentation/extensions.html#versionfile for details
3
+
4
+ # Examples
5
+ #
6
+ # "0.50.x" => { :branch => "master" }
7
+ # "0.40.x" => { :tag => "v1.0.0", :version => "1.0.0" }
8
+
9
+
@@ -0,0 +1,17 @@
1
+ development:
2
+ adapter: sqlite3
3
+ database: db/cucumber.sqlite3
4
+ pool: 5
5
+ timeout: 5000
6
+
7
+ test:
8
+ adapter: sqlite3
9
+ database: db/test.sqlite3
10
+ pool: 5
11
+ timeout: 5000
12
+
13
+ cucumber:
14
+ adapter: sqlite3
15
+ database: db/cucumber.sqlite3
16
+ pool: 5
17
+ timeout: 5000
@@ -0,0 +1,29 @@
1
+ development:
2
+ adapter: mysql2
3
+ encoding: utf8
4
+ reconnect: false
5
+ database: test_app_development
6
+ pool: 5
7
+ username: root
8
+ password: welcome
9
+ socket: /tmp/mysql.sock
10
+
11
+ test:
12
+ adapter: mysql2
13
+ encoding: utf8
14
+ reconnect: false
15
+ database: test_app_test
16
+ pool: 5
17
+ username: root
18
+ password: welcome
19
+ socket: /tmp/mysql.sock
20
+
21
+ cucumber:
22
+ adapter: mysql2
23
+ encoding: utf8
24
+ reconnect: false
25
+ database: test_app_cucumber
26
+ pool: 5
27
+ username: root
28
+ password: welcome
29
+ socket: /tmp/mysql.sock
@@ -0,0 +1,17 @@
1
+ development:
2
+ adapter: sqlite3
3
+ database: db/cucumber.sqlite3
4
+ pool: 5
5
+ timeout: 5000
6
+
7
+ test:
8
+ adapter: sqlite3
9
+ database: db/test.sqlite3
10
+ pool: 5
11
+ timeout: 5000
12
+
13
+ cucumber:
14
+ adapter: sqlite3
15
+ database: db/cucumber.sqlite3
16
+ pool: 5
17
+ timeout: 5000
@@ -0,0 +1,38 @@
1
+ TestApp::Application.configure do
2
+ # Settings specified here will take precedence over those in config/environment.rb
3
+
4
+ # The test environment is used exclusively to run your application's
5
+ # test suite. You never need to work with it otherwise. Remember that
6
+ # your test database is "scratch space" for the test suite and is wiped
7
+ # and recreated between test runs. Don't rely on the data there!
8
+ config.cache_classes = true
9
+
10
+ # Log error messages when you accidentally call methods on nil.
11
+ config.whiny_nils = true
12
+
13
+ # Show full error reports and disable caching
14
+ config.consider_all_requests_local = true
15
+ config.action_controller.perform_caching = false
16
+
17
+ # Raise exceptions instead of rendering exception templates
18
+ config.action_dispatch.show_exceptions = false
19
+
20
+ # Disable request forgery protection in test environment
21
+ config.action_controller.allow_forgery_protection = false
22
+
23
+ # Tell Action Mailer not to deliver emails to the real world.
24
+ # The :test delivery method accumulates sent emails in the
25
+ # ActionMailer::Base.deliveries array.
26
+ config.action_mailer.delivery_method = :test
27
+
28
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
29
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
30
+ # like if you have constraints or database-specific column types
31
+ # config.active_record.schema_format = :sql
32
+
33
+ # Print deprecation notices to the stderr
34
+ config.active_support.deprecation = :stderr
35
+
36
+ config.action_mailer.default_url_options = { :host => 'testapp.com' }
37
+
38
+ end
@@ -0,0 +1,20 @@
1
+ Gem::Specification.new do |s|
2
+ s.platform = Gem::Platform::RUBY
3
+ s.name = '<%= file_name %>'
4
+ s.version = '<%= Spree.version %>'
5
+ s.summary = 'Add gem summary here'
6
+ s.description = 'Add (optional) gem description here'
7
+ s.required_ruby_version = '>= 1.8.7'
8
+
9
+ # s.author = 'David Heinemeier Hansson'
10
+ # s.email = 'david@loudthinking.com'
11
+ # s.homepage = 'http://www.rubyonrails.org'
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('spree_core', '>= <%= Spree.version %>')
20
+ end
@@ -0,0 +1,17 @@
1
+ require 'spree_core'
2
+ require '<%=file_name%>_hooks'
3
+
4
+ module <%=class_name%>
5
+ class Engine < Rails::Engine
6
+
7
+ config.autoload_paths += %W(#{config.root}/lib)
8
+
9
+ def self.activate
10
+ Dir.glob(File.join(File.dirname(__FILE__), "../app/**/*_decorator*.rb")) do |c|
11
+ Rails.env.production? ? require(c) : load(c)
12
+ end
13
+ end
14
+
15
+ config.to_prepare &method(:activate).to_proc
16
+ end
17
+ end
@@ -0,0 +1,9 @@
1
+ \#*
2
+ *~
3
+ .#*
4
+ .DS_Store
5
+ .idea
6
+ .project
7
+ tmp
8
+ nbproject
9
+ *.swp
@@ -0,0 +1,3 @@
1
+ class <%=class_name%>Hooks < Spree::ThemeSupport::HookListener
2
+ # custom hooks go here
3
+ end
@@ -0,0 +1,25 @@
1
+ namespace :<%= file_name %> do
2
+ desc "Copies all migrations and assets (NOTE: This will be obsolete with Rails 3.1)"
3
+ task :install do
4
+ Rake::Task['<%= file_name %>:install:migrations'].invoke
5
+ Rake::Task['<%= file_name %>:install:assets'].invoke
6
+ end
7
+
8
+ namespace :install do
9
+ desc "Copies all migrations (NOTE: This will be obsolete with Rails 3.1)"
10
+ task :migrations do
11
+ source = File.join(File.dirname(__FILE__), '..', '..', 'db')
12
+ destination = File.join(Rails.root, 'db')
13
+ Spree::FileUtilz.mirror_files(source, destination)
14
+ end
15
+
16
+ desc "Copies all assets (NOTE: This will be obsolete with Rails 3.1)"
17
+ task :assets do
18
+ source = File.join(File.dirname(__FILE__), '..', '..', 'public')
19
+ destination = File.join(Rails.root, 'public')
20
+ puts "INFO: Mirroring assets from #{source} to #{destination}"
21
+ Spree::FileUtilz.mirror_files(source, destination)
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1 @@
1
+ # add custom rake tasks here
@@ -0,0 +1,3 @@
1
+ Rails.application.routes.draw do
2
+ # Add your extension routes here
3
+ end
@@ -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")
@@ -0,0 +1,12 @@
1
+ module SpreeSite
2
+ class Engine < Rails::Engine
3
+ def self.activate
4
+ # Add your custom site logic here
5
+ end
6
+
7
+ def load_tasks
8
+ end
9
+
10
+ config.to_prepare &method(:activate).to_proc
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ require 'My-Commerce_core'
2
+ require 'My-Commerce_auth'
3
+ require 'My-Commerce_api'
4
+ require 'My-Commerce_dash'
5
+ require 'My-Commerce_promo'
6
+ require 'My-Commerce_sample'
7
+
8
+ module Spree
9
+ class Engine < Rails::Engine
10
+ end
11
+ end
@@ -0,0 +1,29 @@
1
+ namespace :spree do
2
+ desc "Copies all migrations and assets (NOTE: This will be obsolete with Rails 3.1)"
3
+ task :install do
4
+ Rake::Task['spree:install:migrations'].invoke
5
+ Rake::Task['spree:install:assets'].invoke
6
+ end
7
+
8
+ namespace :install do
9
+
10
+ desc "Copies all migrations (NOTE: This will be obsolete with Rails 3.1)"
11
+ task :migrations do
12
+ Rake::Task['spree_core:install:migrations'].invoke
13
+ Rake::Task['spree_auth:install:migrations'].invoke
14
+ Rake::Task['spree_api:install:migrations'].invoke
15
+ Rake::Task['spree_dash:install:migrations'].invoke
16
+ Rake::Task['spree_promo:install:migrations'].invoke
17
+ end
18
+
19
+ desc "Copies all assets (NOTE: This will be obsolete with Rails 3.1)"
20
+ task :assets do
21
+ Rake::Task['spree_core:install:assets'].invoke
22
+ Rake::Task['spree_auth:install:assets'].invoke
23
+ Rake::Task['spree_api:install:assets'].invoke
24
+ Rake::Task['spree_dash:install:assets'].invoke
25
+ Rake::Task['spree_promo:install:assets'].invoke
26
+ end
27
+
28
+ end
29
+ end
metadata ADDED
@@ -0,0 +1,135 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: My-Commerce
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Santosh Mohanty
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-23 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: My-Commerce_core
16
+ requirement: &90081150 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - =
20
+ - !ruby/object:Gem::Version
21
+ version: 1.1.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *90081150
25
+ - !ruby/object:Gem::Dependency
26
+ name: My-Commerce_auth
27
+ requirement: &90080860 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - =
31
+ - !ruby/object:Gem::Version
32
+ version: 1.1.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *90080860
36
+ - !ruby/object:Gem::Dependency
37
+ name: My-Commerce_api
38
+ requirement: &90080560 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - =
42
+ - !ruby/object:Gem::Version
43
+ version: 1.1.0
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *90080560
47
+ - !ruby/object:Gem::Dependency
48
+ name: My-Commerce_dash
49
+ requirement: &90080250 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - =
53
+ - !ruby/object:Gem::Version
54
+ version: 1.1.0
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *90080250
58
+ - !ruby/object:Gem::Dependency
59
+ name: My-Commerce_sample
60
+ requirement: &90079940 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - =
64
+ - !ruby/object:Gem::Version
65
+ version: 1.1.0
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *90079940
69
+ - !ruby/object:Gem::Dependency
70
+ name: My-Commerce_promo
71
+ requirement: &90079620 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - =
75
+ - !ruby/object:Gem::Version
76
+ version: 1.1.0
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *90079620
80
+ description: MY-COMMERCE is an open source e-commerce framework for Ruby on Rails.
81
+ email: santa.jyp@gmail.com
82
+ executables: []
83
+ extensions: []
84
+ extra_rdoc_files: []
85
+ files:
86
+ - README.md
87
+ - lib/spree.rb
88
+ - lib/tasks/install.rake
89
+ - lib/generators/templates/LICENSE
90
+ - lib/generators/templates/gitignore.tt
91
+ - lib/generators/templates/spec_helper.rb
92
+ - lib/generators/templates/spree_site.rb
93
+ - lib/generators/templates/Versionfile.tt
94
+ - lib/generators/templates/extension/extension.rb.tt
95
+ - lib/generators/templates/Rakefile.tt
96
+ - lib/generators/templates/config/database.yml.sqlite3
97
+ - lib/generators/templates/config/database.yml.mysql
98
+ - lib/generators/templates/config/environments/cucumber.rb
99
+ - lib/generators/templates/config/database.yml
100
+ - lib/generators/templates/routes.rb
101
+ - lib/generators/templates/README.md
102
+ - lib/generators/templates/install.rake.tt
103
+ - lib/generators/templates/hooks.rb.tt
104
+ - lib/generators/templates/extension.gemspec.tt
105
+ - lib/generators/templates/Gemfile
106
+ - lib/generators/templates/lib/tasks/%file_name%.rake.tt
107
+ - lib/generators/spree/site_generator.rb
108
+ - lib/generators/spree/test_app_generator.rb
109
+ - lib/generators/spree/extension_generator.rb
110
+ homepage: http://ecommerce.com
111
+ licenses: []
112
+ post_install_message:
113
+ rdoc_options: []
114
+ require_paths:
115
+ - lib
116
+ required_ruby_version: !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: 1.8.7
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: 1.3.6
128
+ requirements:
129
+ - none
130
+ rubyforge_project: My-Commerce
131
+ rubygems_version: 1.8.17
132
+ signing_key:
133
+ specification_version: 3
134
+ summary: Full-stack e-commerce framework for Ruby on Rails.
135
+ test_files: []