New start for a sysmocom_dhl extension...
This commit is contained in:
commit
86b76a198e
|
@ -0,0 +1,9 @@
|
||||||
|
\#*
|
||||||
|
*~
|
||||||
|
.#*
|
||||||
|
.DS_Store
|
||||||
|
.idea
|
||||||
|
.project
|
||||||
|
tmp
|
||||||
|
nbproject
|
||||||
|
*.swp
|
|
@ -0,0 +1,23 @@
|
||||||
|
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 of the Rails Dog LLC 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.
|
|
@ -0,0 +1,15 @@
|
||||||
|
SysmocomDhl
|
||||||
|
===========
|
||||||
|
|
||||||
|
Deal with German DHL and German Post. Try to automate the process of calculating
|
||||||
|
shipping costs, creating labels and hopefully tracking.
|
||||||
|
Introduction goes here.
|
||||||
|
|
||||||
|
|
||||||
|
Example
|
||||||
|
=======
|
||||||
|
|
||||||
|
Example goes here.
|
||||||
|
|
||||||
|
|
||||||
|
Copyright (c) 2012 Holger Freyther, released under the New BSD License
|
|
@ -0,0 +1,75 @@
|
||||||
|
require 'rubygems'
|
||||||
|
require 'rake'
|
||||||
|
require 'rake/testtask'
|
||||||
|
require 'rake/packagetask'
|
||||||
|
require 'rake/gempackagetask'
|
||||||
|
|
||||||
|
gemfile = File.expand_path('../spec/test_app/Gemfile', __FILE__)
|
||||||
|
if File.exists?(gemfile) && (%w(spec cucumber).include?(ARGV.first.to_s) || ARGV.size == 0)
|
||||||
|
require 'bundler'
|
||||||
|
ENV['BUNDLE_GEMFILE'] = gemfile
|
||||||
|
Bundler.setup
|
||||||
|
|
||||||
|
require 'rspec'
|
||||||
|
require 'rspec/core/rake_task'
|
||||||
|
RSpec::Core::RakeTask.new
|
||||||
|
|
||||||
|
require 'cucumber/rake/task'
|
||||||
|
Cucumber::Rake::Task.new do |t|
|
||||||
|
t.cucumber_opts = %w{--format progress}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
desc "Default Task"
|
||||||
|
task :default => [:spec, :cucumber ]
|
||||||
|
|
||||||
|
spec = eval(File.read('sysmocom_dhl.gemspec'))
|
||||||
|
|
||||||
|
Rake::GemPackageTask.new(spec) do |p|
|
||||||
|
p.gem_spec = spec
|
||||||
|
end
|
||||||
|
|
||||||
|
desc "Release to gemcutter"
|
||||||
|
task :release => :package do
|
||||||
|
require 'rake/gemcutter'
|
||||||
|
Rake::Gemcutter::Tasks.new(spec).define
|
||||||
|
Rake::Task['gem:push'].invoke
|
||||||
|
end
|
||||||
|
|
||||||
|
desc "Default Task"
|
||||||
|
task :default => [ :spec ]
|
||||||
|
|
||||||
|
desc "Regenerates a rails 3 app for testing"
|
||||||
|
task :test_app do
|
||||||
|
require '../spree/lib/generators/spree/test_app_generator'
|
||||||
|
class SysmocomDhlTestAppGenerator < Spree::Generators::TestAppGenerator
|
||||||
|
|
||||||
|
def install_gems
|
||||||
|
inside "test_app" do
|
||||||
|
run 'bundle exec rake spree_core:install'
|
||||||
|
run 'bundle exec rake sysmocom_dhl:install'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def migrate_db
|
||||||
|
run_migrations
|
||||||
|
end
|
||||||
|
|
||||||
|
protected
|
||||||
|
def full_path_for_local_gems
|
||||||
|
<<-gems
|
||||||
|
gem 'spree_core', :path => \'#{File.join(File.dirname(__FILE__), "../spree/", "core")}\'
|
||||||
|
gem 'sysmocom_dhl', :path => \'#{File.dirname(__FILE__)}\'
|
||||||
|
gems
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
SysmocomDhlTestAppGenerator.start
|
||||||
|
end
|
||||||
|
|
||||||
|
namespace :test_app do
|
||||||
|
desc 'Rebuild test and cucumber databases'
|
||||||
|
task :rebuild_dbs do
|
||||||
|
system("cd spec/test_app && bundle exec rake db:drop db:migrate RAILS_ENV=test && rake db:drop db:migrate RAILS_ENV=cucumber")
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,9 @@
|
||||||
|
# This file is used to designate compatibilty with different versions of Spree
|
||||||
|
# Please see http://spreecommerce.com/documentation/extensions.html#versionfile for details
|
||||||
|
|
||||||
|
# Examples
|
||||||
|
#
|
||||||
|
# "0.50.x" => { :branch => "master" }
|
||||||
|
# "0.40.x" => { :tag => "v1.0.0", :version => "1.0.0" }
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
Rails.application.routes.draw do
|
||||||
|
# Add your extension routes here
|
||||||
|
end
|
|
@ -0,0 +1,14 @@
|
||||||
|
class AddDhlCouponTable < ActiveRecord::Migration
|
||||||
|
def self.up
|
||||||
|
create_table :sysmocom_dhl_coupons do |t|
|
||||||
|
t.timestamps
|
||||||
|
t.references :order
|
||||||
|
t.string :type
|
||||||
|
t.string :code
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.down
|
||||||
|
drop_table :sysmocom_dhl_coupons
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,17 @@
|
||||||
|
require 'spree_core'
|
||||||
|
require 'sysmocom_dhl_hooks'
|
||||||
|
|
||||||
|
module SysmocomDhl
|
||||||
|
class Engine < Rails::Engine
|
||||||
|
|
||||||
|
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
|
||||||
|
end
|
||||||
|
|
||||||
|
config.to_prepare &method(:activate).to_proc
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,3 @@
|
||||||
|
class SysmocomDhlHooks < Spree::ThemeSupport::HookListener
|
||||||
|
# custom hooks go here
|
||||||
|
end
|
|
@ -0,0 +1,25 @@
|
||||||
|
namespace :sysmocom_dhl do
|
||||||
|
desc "Copies all migrations and assets (NOTE: This will be obsolete with Rails 3.1)"
|
||||||
|
task :install do
|
||||||
|
Rake::Task['sysmocom_dhl:install:migrations'].invoke
|
||||||
|
Rake::Task['sysmocom_dhl:install:assets'].invoke
|
||||||
|
end
|
||||||
|
|
||||||
|
namespace :install do
|
||||||
|
desc "Copies all migrations (NOTE: This will be obsolete with Rails 3.1)"
|
||||||
|
task :migrations do
|
||||||
|
source = File.join(File.dirname(__FILE__), '..', '..', 'db')
|
||||||
|
destination = File.join(Rails.root, 'db')
|
||||||
|
Spree::FileUtilz.mirror_files(source, destination)
|
||||||
|
end
|
||||||
|
|
||||||
|
desc "Copies all assets (NOTE: This will be obsolete with Rails 3.1)"
|
||||||
|
task :assets do
|
||||||
|
source = File.join(File.dirname(__FILE__), '..', '..', 'public')
|
||||||
|
destination = File.join(Rails.root, 'public')
|
||||||
|
puts "INFO: Mirroring assets from #{source} to #{destination}"
|
||||||
|
Spree::FileUtilz.mirror_files(source, destination)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1 @@
|
||||||
|
# add custom rake tasks here
|
|
@ -0,0 +1,30 @@
|
||||||
|
# This file is copied to ~/spec when you run 'ruby script/generate rspec'
|
||||||
|
# from the project root directory.
|
||||||
|
ENV["RAILS_ENV"] ||= 'test'
|
||||||
|
require File.expand_path("../test_app/config/environment", __FILE__)
|
||||||
|
require 'rspec/rails'
|
||||||
|
|
||||||
|
# Requires supporting files with custom matchers and macros, etc,
|
||||||
|
# in ./support/ and its subdirectories.
|
||||||
|
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
||||||
|
|
||||||
|
RSpec.configure do |config|
|
||||||
|
# == 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
|
||||||
|
|
||||||
|
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
||||||
|
|
||||||
|
#config.include Devise::TestHelpers, :type => :controller
|
||||||
|
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
||||||
|
# examples within a transaction, comment the following line or assign false
|
||||||
|
# instead of true.
|
||||||
|
config.use_transactional_fixtures = true
|
||||||
|
end
|
||||||
|
|
||||||
|
@configuration ||= AppConfiguration.find_or_create_by_name("Default configuration")
|
|
@ -0,0 +1,20 @@
|
||||||
|
Gem::Specification.new do |s|
|
||||||
|
s.platform = Gem::Platform::RUBY
|
||||||
|
s.name = 'sysmocom_dhl'
|
||||||
|
s.version = '0.60.1'
|
||||||
|
s.summary = 'sysmocom_dhl shipping helper'
|
||||||
|
s.description = 'Deal with shipping cost, zones, insurance'
|
||||||
|
s.required_ruby_version = '>= 1.8.7'
|
||||||
|
|
||||||
|
# s.author = 'David Heinemeier Hansson'
|
||||||
|
# s.email = 'david@loudthinking.com'
|
||||||
|
# s.homepage = 'http://www.rubyonrails.org'
|
||||||
|
# s.rubyforge_project = 'actionmailer'
|
||||||
|
|
||||||
|
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', '>= 0.60.1')
|
||||||
|
end
|
Loading…
Reference in New Issue