From 15046398bdbf4dc1fdf2f0fea144b89066108138 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 27 Feb 2013 19:54:51 +0100 Subject: [PATCH] Start with the skeleton generated by the spree extension utilitiy --- Gemfile | 6 +++ LICENSE | 26 +++++++++++ README.md | 21 +++++++++ Rakefile | 15 ++++++ Versionfile | 11 +++++ .../javascripts/admin/spree_sysmocom_stock.js | 1 + .../javascripts/store/spree_sysmocom_stock.js | 1 + .../admin/spree_sysmocom_stock.css | 3 ++ .../store/spree_sysmocom_stock.css | 3 ++ config/locales/en.yml | 5 ++ config/routes.rb | 3 ++ .../install/install_generator.rb | 29 ++++++++++++ lib/spree_sysmocom_stock.rb | 2 + lib/spree_sysmocom_stock/engine.rb | 22 +++++++++ script/rails | 7 +++ spec/spec_helper.rb | 46 +++++++++++++++++++ spree_sysmocom_stock.gemspec | 26 +++++++++++ 17 files changed, 227 insertions(+) create mode 100644 Gemfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 Rakefile create mode 100644 Versionfile create mode 100644 app/assets/javascripts/admin/spree_sysmocom_stock.js create mode 100644 app/assets/javascripts/store/spree_sysmocom_stock.js create mode 100644 app/assets/stylesheets/admin/spree_sysmocom_stock.css create mode 100644 app/assets/stylesheets/store/spree_sysmocom_stock.css create mode 100644 config/locales/en.yml create mode 100644 config/routes.rb create mode 100644 lib/generators/spree_sysmocom_stock/install/install_generator.rb create mode 100644 lib/spree_sysmocom_stock.rb create mode 100644 lib/spree_sysmocom_stock/engine.rb create mode 100644 script/rails create mode 100644 spec/spec_helper.rb create mode 100644 spree_sysmocom_stock.gemspec diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..17dbc22 --- /dev/null +++ b/Gemfile @@ -0,0 +1,6 @@ +source 'http://rubygems.org' + +# Provides basic authentication functionality for testing parts of your engine +gem 'spree_auth_devise', :git => "git://github.com/spree/spree_auth_devise" + +gemspec diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9822124 --- /dev/null +++ b/LICENSE @@ -0,0 +1,26 @@ +Copyright (c) 2013 [name of plugin creator] +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name Spree nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..6467a89 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +SpreeSysmocomStock +================== + +Introduction goes here. + + +Example +======= + +Example goes here. + +Testing +------- + +Be sure to bundle your dependencies and then create a dummy test app for the specs to run against. + + $ bundle + $ bundle exec rake test_app + $ bundle exec rspec spec + +Copyright (c) 2013 [name of extension creator], released under the New BSD License diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..3a321bf --- /dev/null +++ b/Rakefile @@ -0,0 +1,15 @@ +require 'bundler' +Bundler::GemHelper.install_tasks + +require 'rspec/core/rake_task' +require 'spree/core/testing_support/common_rake' + +RSpec::Core::RakeTask.new + +task :default => [:spec] + +desc 'Generates a dummy app for testing' +task :test_app do + ENV['LIB_NAME'] = 'spree_sysmocom_stock' + Rake::Task['common:test_app'].invoke +end diff --git a/Versionfile b/Versionfile new file mode 100644 index 0000000..5db83aa --- /dev/null +++ b/Versionfile @@ -0,0 +1,11 @@ +# This file is used to designate compatibilty with different versions of Spree +# Please see http://spreecommerce.com/documentation/extensions.html#versionfile for details + +# Examples +# +# '1.2.x' => { :branch => 'master' } +# '1.1.x' => { :branch => '1-1-stable' } +# '1.0.x' => { :branch => '1-0-stable' } +# '0.70.x' => { :branch => '0-70-stable' } +# '0.40.x' => { :tag => 'v1.0.0', :version => '1.0.0' } + diff --git a/app/assets/javascripts/admin/spree_sysmocom_stock.js b/app/assets/javascripts/admin/spree_sysmocom_stock.js new file mode 100644 index 0000000..a3b2c53 --- /dev/null +++ b/app/assets/javascripts/admin/spree_sysmocom_stock.js @@ -0,0 +1 @@ +//= require admin/spree_core diff --git a/app/assets/javascripts/store/spree_sysmocom_stock.js b/app/assets/javascripts/store/spree_sysmocom_stock.js new file mode 100644 index 0000000..d5cb5c7 --- /dev/null +++ b/app/assets/javascripts/store/spree_sysmocom_stock.js @@ -0,0 +1 @@ +//= require store/spree_core diff --git a/app/assets/stylesheets/admin/spree_sysmocom_stock.css b/app/assets/stylesheets/admin/spree_sysmocom_stock.css new file mode 100644 index 0000000..21ef02a --- /dev/null +++ b/app/assets/stylesheets/admin/spree_sysmocom_stock.css @@ -0,0 +1,3 @@ +/* + *= require admin/spree_core +*/ diff --git a/app/assets/stylesheets/store/spree_sysmocom_stock.css b/app/assets/stylesheets/store/spree_sysmocom_stock.css new file mode 100644 index 0000000..94dbe33 --- /dev/null +++ b/app/assets/stylesheets/store/spree_sysmocom_stock.css @@ -0,0 +1,3 @@ +/* + *= require store/spree_core +*/ diff --git a/config/locales/en.yml b/config/locales/en.yml new file mode 100644 index 0000000..179c14c --- /dev/null +++ b/config/locales/en.yml @@ -0,0 +1,5 @@ +# Sample localization file for English. Add more files in this directory for other locales. +# See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. + +en: + hello: "Hello world" diff --git a/config/routes.rb b/config/routes.rb new file mode 100644 index 0000000..53e2eeb --- /dev/null +++ b/config/routes.rb @@ -0,0 +1,3 @@ +Spree::Core::Engine.routes.draw do + # Add your extension routes here +end diff --git a/lib/generators/spree_sysmocom_stock/install/install_generator.rb b/lib/generators/spree_sysmocom_stock/install/install_generator.rb new file mode 100644 index 0000000..4fcf31d --- /dev/null +++ b/lib/generators/spree_sysmocom_stock/install/install_generator.rb @@ -0,0 +1,29 @@ +module SpreeSysmocomStock + module Generators + class InstallGenerator < Rails::Generators::Base + + def add_javascripts + append_file 'app/assets/javascripts/store/all.js', "//= require store/spree_sysmocom_stock\n" + append_file 'app/assets/javascripts/admin/all.js', "//= require admin/spree_sysmocom_stock\n" + end + + def add_stylesheets + inject_into_file 'app/assets/stylesheets/store/all.css', " *= require store/spree_sysmocom_stock\n", :before => /\*\//, :verbose => true + inject_into_file 'app/assets/stylesheets/admin/all.css', " *= require admin/spree_sysmocom_stock\n", :before => /\*\//, :verbose => true + end + + def add_migrations + run 'bundle exec rake railties:install:migrations FROM=spree_sysmocom_stock' + end + + def run_migrations + res = ask 'Would you like to run the migrations now? [Y/n]' + if res == '' || res.downcase == 'y' + run 'bundle exec rake db:migrate' + else + puts 'Skipping rake db:migrate, don\'t forget to run it!' + end + end + end + end +end diff --git a/lib/spree_sysmocom_stock.rb b/lib/spree_sysmocom_stock.rb new file mode 100644 index 0000000..49a0268 --- /dev/null +++ b/lib/spree_sysmocom_stock.rb @@ -0,0 +1,2 @@ +require 'spree_core' +require 'spree_sysmocom_stock/engine' diff --git a/lib/spree_sysmocom_stock/engine.rb b/lib/spree_sysmocom_stock/engine.rb new file mode 100644 index 0000000..cd4bce7 --- /dev/null +++ b/lib/spree_sysmocom_stock/engine.rb @@ -0,0 +1,22 @@ +module SpreeSysmocomStock + class Engine < Rails::Engine + require 'spree/core' + isolate_namespace Spree + engine_name 'spree_sysmocom_stock' + + config.autoload_paths += %W(#{config.root}/lib) + + # use rspec for tests + config.generators do |g| + g.test_framework :rspec + end + + def self.activate + Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c| + Rails.configuration.cache_classes ? require(c) : load(c) + end + end + + config.to_prepare &method(:activate).to_proc + end +end diff --git a/script/rails b/script/rails new file mode 100644 index 0000000..7399ce6 --- /dev/null +++ b/script/rails @@ -0,0 +1,7 @@ +# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application. + +ENGINE_ROOT = File.expand_path('../..', __FILE__) +ENGINE_PATH = File.expand_path('../../lib/spree_sysmocom_stock/engine', __FILE__) + +require 'rails/all' +require 'rails/engine/commands' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb new file mode 100644 index 0000000..51c3956 --- /dev/null +++ b/spec/spec_helper.rb @@ -0,0 +1,46 @@ +# Configure Rails Environment +ENV['RAILS_ENV'] = 'test' + +require File.expand_path('../dummy/config/environment.rb', __FILE__) + +require 'rspec/rails' +require 'ffaker' + +# Requires supporting ruby files with custom matchers and macros, etc, +# in spec/support/ and its subdirectories. +Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f } + +# Requires factories defined in spree_core +require 'spree/core/testing_support/factories' +require 'spree/core/testing_support/controller_requests' +require 'spree/core/testing_support/authorization_helpers' +require 'spree/core/url_helpers' + +RSpec.configure do |config| + config.include FactoryGirl::Syntax::Methods + + # == URL Helpers + # + # Allows access to Spree's routes in specs: + # + # visit spree.admin_path + # current_path.should eql(spree.products_path) + config.include Spree::Core::UrlHelpers + + # == Mock Framework + # + # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: + # + # config.mock_with :mocha + # config.mock_with :flexmock + # config.mock_with :rr + config.mock_with :rspec + + # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures + config.fixture_path = "#{::Rails.root}/spec/fixtures" + + # If you're not using ActiveRecord, or you'd prefer not to run each of your + # examples within a transaction, remove the following line or assign false + # instead of true. + config.use_transactional_fixtures = true +end diff --git a/spree_sysmocom_stock.gemspec b/spree_sysmocom_stock.gemspec new file mode 100644 index 0000000..d184a9d --- /dev/null +++ b/spree_sysmocom_stock.gemspec @@ -0,0 +1,26 @@ +# encoding: UTF-8 +Gem::Specification.new do |s| + s.platform = Gem::Platform::RUBY + s.name = 'spree_sysmocom_stock' + s.version = '1.2.4.beta' + s.summary = 'TODO: Add gem summary here' + s.description = 'TODO: Add (optional) gem description here' + s.required_ruby_version = '>= 1.8.7' + + # s.author = 'You' + # s.email = 'you@example.com' + # s.homepage = 'http://www.spreecommerce.com' + + #s.files = `git ls-files`.split("\n") + #s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") + s.require_path = 'lib' + s.requirements << 'none' + + s.add_dependency 'spree_core', '~> 1.2.4.beta' + + s.add_development_dependency 'capybara', '1.0.1' + s.add_development_dependency 'factory_girl', '~> 2.6.4' + s.add_development_dependency 'ffaker' + s.add_development_dependency 'rspec-rails', '~> 2.9' + s.add_development_dependency 'sqlite3' +end