spree-last-address 1.0.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6cd710be6ac325810be49c2bed3cd6b3a25a5820
4
- data.tar.gz: e56c61ca01ada3ee8ba85e1eaa0ddf275300de21
3
+ metadata.gz: 56b3322ff09885e5c6a532be4579bde3168db6be
4
+ data.tar.gz: f5183b21aa0c33f2b54cbc9716806b950de55a20
5
5
  SHA512:
6
- metadata.gz: d891f0373749514ff53fa144205710dc123559a7caad93218e34d109f66e61ea49c3d1aa88e33cbbae32a2e0974ee9963696b36aa2f85caa18c7546114cd949b
7
- data.tar.gz: e27157ca2835b82f41e68582120647790515a242cb8a4e668ec45f8a6ac276b060d61bad89c567ff89d3a87686a22fff49691d3292ea16af39d4b9aca5db6832
6
+ metadata.gz: d9a476a3484b3a46fdf7c7f03ed0f84fa8ec250739eb632b351ec4599f5c3c0e34930e758575aab4d0c44aab2fe6a202c10f8979d86cc6117cff8215341169a3
7
+ data.tar.gz: ad55423b740f2a0ef735dee25bb11d15ec24ac940c639b1a82c4dad80eb71f339bb469155d95e56571aa45679a70758f0bb6e71c47128df2c96bb3877aef7f9f
data/.gitignore CHANGED
@@ -1,5 +1,10 @@
1
- *.gem
2
- .bundle
1
+ \#*
2
+ *~
3
+ .#*
4
+ .DS_Store
5
+ coverage
3
6
  Gemfile.lock
4
- pkg/*
7
+ tmp
8
+ pkg
9
+ spec/dummy
5
10
  .rvmrc
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+ before_script:
3
+ - sh -e /etc/init.d/xvfb start
4
+ - export DISPLAY=:99.0
5
+ - bundle exec rake test_app
6
+ script:
7
+ - bundle exec rspec spec
8
+ rvm:
9
+ - 1.9.3
10
+ - 2.0.0
11
+ - 2.1.0
12
+ branches:
13
+ except:
14
+ - 1-0-stable
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,28 @@
1
+ # Contributing
2
+
3
+ In the spirit of [free software][1], **everyone** is encouraged to help improve this project.
4
+
5
+ Here are some ways *you* can contribute:
6
+
7
+ * by using prerelease versions
8
+ * by reporting [bugs][2]
9
+ * by suggesting new features
10
+ * by writing or editing documentation
11
+ * by writing specifications
12
+ * by writing code (*no patch is too small*: fix typos, add comments, clean up inconsistent whitespace)
13
+ * by refactoring code
14
+ * by resolving [issues][2]
15
+ * by reviewing patches
16
+
17
+ Starting point:
18
+
19
+ * Fork the repo
20
+ * Clone your repo
21
+ * Run `bundle install`
22
+ * Run `bundle exec rake test_app` to create the test application in `spec/test_app`
23
+ * Make your changes
24
+ * Ensure specs pass by running `bundle exec rspec spec`
25
+ * Submit your pull request
26
+
27
+ [1]: http://www.fsf.org/licensing/essays/free-sw.html
28
+ [2]: https://github.com/futhr/spree-last-address/issues
data/Gemfile CHANGED
@@ -1,3 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'spree', github: 'spree/spree', branch: '2-0-stable'
4
+ gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '2-0-stable'
5
+
3
6
  gemspec
data/Guardfile ADDED
@@ -0,0 +1,6 @@
1
+ guard 'rspec', cmd: 'bundle exec rspec' do
2
+ watch('spec/spec_helper.rb') { 'spec' }
3
+ watch(%r{^spec/(.+)_spec\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
4
+ watch(%r{^(app|lib)/(.+)(\.rb|\.erb)$}) { |m| "spec/#{m[2]}_spec.rb" }
5
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb" }
6
+ end
@@ -1,3 +1,6 @@
1
+ Copyright (c) 2010-2014 Tobias Bohwalli, Torsten Rüger, and other contributors.
2
+ All rights reserved.
3
+
1
4
  Redistribution and use in source and binary forms, with or without modification,
2
5
  are permitted provided that the following conditions are met:
3
6
 
@@ -6,9 +9,9 @@ are permitted provided that the following conditions are met:
6
9
  * Redistributions in binary form must reproduce the above copyright notice,
7
10
  this list of conditions and the following disclaimer in the documentation
8
11
  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
+ * Neither the name Spree nor the names of its contributors may be used to
13
+ endorse or promote products derived from this software without specific
14
+ prior written permission.
12
15
 
13
16
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
14
17
  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
@@ -20,4 +23,4 @@ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20
23
  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
21
24
  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
22
25
  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
23
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md CHANGED
@@ -1,31 +1,47 @@
1
- Last Address extension for Spree
2
- ================================
1
+ # Spree Last Address
3
2
 
4
- During checkout, causes the address to be prefilled with the address from their most recent order or
5
- the user’s saved address (if available).
3
+ [![Build Status](https://api.travis-ci.org/futhr/spree-last-address.png?branch=2-0-stable)](http://travis-ci.org/futhr/spree-last-address)
4
+ [![Code Climate](https://codeclimate.com/github/futhr/spree-last-address.png)](https://codeclimate.com/github/futhr/spree-last-address)
5
+ [![Coverage Status](https://coveralls.io/repos/futhr/spree-last-address/badge.png?branch=2-0-stable)](https://coveralls.io/r/futhr/spree-last-address)
6
+ [![Gem Version](https://badge.fury.io/rb/spree-last-address.png)](http://badge.fury.io/rb/spree-last-address)
6
7
 
7
- This relieves the customer of having to type in his address again on a second order. (The
8
- unnecessary typing make them more likely to bounce instead of completing the order.)
8
+ During checkout, causes the address to be prefilled with the address from their most recent order or the user’s saved address (if available).
9
9
 
10
- If your app allows a user to set and edit their "preferred" or "default" address (as reflected by
11
- `user.bill_address`/`user.ship_address`), and the user has set a preferred address for their
12
- account, that address will take priority and be used instead of the address from their most recent
13
- order. (Similar to [spree-default-addresses](https://github.com/swistak/spree-default-addresses).)
10
+ This relieves the customer of having to type in his address again on a second order. (The unnecessary typing make them more likely to bounce instead of completing the order.)
14
11
 
15
- As of Spree 1.2, the `belongs_to :bill_address` and `belongs_to :ship_address` associations are
16
- provided for the `Spree::User` model by the spree_auth_devise gem . If those associations are not
17
- available or if the user doesn't have a saved address (which will be the case unless you've provided
18
- a way in your app to set an address), then it will just use the address from user's most recent
19
- order.
12
+ If your app allows a user to set and edit their "preferred" or "default" address (as reflected by `user.bill_address`/`user.ship_address`), and the user has set a preferred address for their account, that address will take priority and be used instead of the address from their most recent order. (Similar to [spree-default-addresses][1].)
20
13
 
21
- Installation
22
- ============
14
+ As of Spree 1.2, the `belongs_to :bill_address` and `belongs_to :ship_address` associations are provided for the `Spree::User` model by the [spree_auth_devise][2] gem. If those associations are not available or if the user doesn't have a saved address (which will be the case unless you've provided a way in your app to set an address), then it will just use the address from user's most recent order.
23
15
 
24
- Just put this in your `Gemfile`:
16
+ ---
25
17
 
26
- gem 'spree_last_address', '~> 1.0.0'
18
+ ## Installing
27
19
 
28
- License
29
- =======
20
+ Add to your `Gemfile`
21
+ ```ruby
22
+ gem 'spree_last_address', '~> 2.0.0'
23
+ ```
30
24
 
31
- Copyright (c) 2010 Torsten Rüger, released under the New BSD License
25
+ Run
26
+
27
+ bundle install
28
+
29
+ ---
30
+
31
+ ## Contributing
32
+
33
+ See corresponding [contribution guidelines][3].
34
+
35
+ ---
36
+
37
+ ## License
38
+
39
+ Copyright (c) 2010-2014 [Tobias Bohwalli][4], [Torsten Rüger][5], and other [contributors][6], released under the [New BSD License][7]
40
+
41
+ [1]: https://github.com/swistak/spree-default-addresses
42
+ [2]: https://github.com/spree/spree_auth_devise
43
+ [3]: https://github.com/futhr/spree-last-address/blob/master/CONTRIBUTING.md
44
+ [4]: https://github.com/futhr
45
+ [5]: https://github.com/dancinglightning
46
+ [6]: https://github.com/futhr/spree-last-address/graphs/contributors
47
+ [7]: https://github.com/futhr/spree-last-address/blob/master/LICENSE.md
data/Rakefile CHANGED
@@ -1 +1,15 @@
1
- require 'bundler/gem_tasks'
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ require 'spree/testing_support/common_rake'
6
+
7
+ RSpec::Core::RakeTask.new
8
+
9
+ task default: [:spec]
10
+
11
+ desc 'Generates a dummy app for testing'
12
+ task :test_app do
13
+ ENV['LIB_NAME'] = 'spree_last_address'
14
+ Rake::Task['common:test_app'].invoke
15
+ end
@@ -0,0 +1 @@
1
+ //= require store/spree_frontend
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require store/spree_frontend
3
+ */
@@ -1,15 +1,28 @@
1
1
  module Spree
2
2
  CheckoutController.class_eval do
3
3
 
4
- private
4
+ private
5
5
 
6
6
  def before_address
7
7
  return if @order.bill_address or @order.ship_address
8
- last_used_bill_address, last_used_ship_address = SpreeLastAddress.find_last_used_addresses(@order.email)
9
- preferred_bill_address, preferred_ship_address = current_user.bill_address, current_user.ship_address if current_user.respond_to?(:bill_address) && current_user.respond_to?(:ship_address)
8
+
9
+ last_used_bill_address, last_used_ship_address = find_last_used_addresses(@order.email)
10
+
11
+ if spree_current_user.respond_to?(:bill_address) && spree_current_user.respond_to?(:ship_address)
12
+ preferred_bill_address, preferred_ship_address = spree_current_user.bill_address, spree_current_user.ship_address
13
+ end
14
+
10
15
  @order.bill_address ||= preferred_bill_address || last_used_bill_address || Address.default
11
16
  @order.ship_address ||= preferred_ship_address || last_used_ship_address || Address.default
12
17
  end
13
18
 
19
+ def find_last_used_addresses(email)
20
+ past = Spree::Order.order('id desc').where(email: email).where('state != "cart"').limit(8)
21
+ if order = past.detect(&:bill_address)
22
+ bill_address = order.bill_address.clone if order.bill_address
23
+ ship_address = order.ship_address.clone if order.ship_address
24
+ end
25
+ return bill_address, ship_address
26
+ end
14
27
  end
15
- end
28
+ end
@@ -0,0 +1,15 @@
1
+ module SpreeLastAddress
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ class_option :auto_run_migrations, type: :boolean, default: false
5
+
6
+ def add_javascripts
7
+ append_file 'app/assets/javascripts/store/all.js', "//= require store/spree_last_address\n"
8
+ end
9
+
10
+ def add_stylesheets
11
+ inject_into_file 'app/assets/stylesheets/store/all.css', " *= require store/spree_last_address\n", before: /\*\//, verbose: true
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ module SpreeLastAddress
2
+ class Engine < Rails::Engine
3
+ require 'spree/core'
4
+ isolate_namespace Spree
5
+ engine_name 'spree_last_address'
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.configuration.cache_classes ? require(c) : load(c)
12
+ end
13
+ end
14
+
15
+ config.to_prepare &method(:activate).to_proc
16
+ end
17
+ end
@@ -1,5 +1,16 @@
1
1
  module SpreeLastAddress
2
+
3
+ # Returns the version of the currently loaded SpreeLastAddress as a <tt>Gem::Version</tt>
2
4
  def self.version
3
- '1.0.1'
5
+ Gem::Version.new VERSION::STRING
6
+ end
7
+
8
+ module VERSION
9
+ MAJOR = 2
10
+ MINOR = 0
11
+ TINY = 0
12
+ PRE = nil
13
+
14
+ STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
4
15
  end
5
16
  end
@@ -1,27 +1,4 @@
1
+ require 'spree_core'
1
2
  require 'spree_last_address/version'
2
-
3
- module SpreeLastAddress
4
- class Engine < Rails::Engine
5
-
6
- config.autoload_paths += %W(#{config.root}/lib)
7
-
8
- def self.activate
9
- Dir.glob(File.join(File.dirname(__FILE__), '../app/**/*_decorator*.rb')) do |c|
10
- Rails.env.production? ? require(c) : load(c)
11
- end
12
- end
13
-
14
- config.to_prepare &method(:activate).to_proc
15
- end
16
-
17
- class << self
18
- def find_last_used_addresses(email)
19
- past = Spree::Order.order("id desc").where(:email => email).where("state != 'cart'").limit(8)
20
- if order = past.detect(&:bill_address)
21
- bill_address = order.bill_address.clone if order.bill_address
22
- ship_address = order.ship_address.clone if order.ship_address
23
- end
24
- return bill_address, ship_address
25
- end
26
- end
27
- end
3
+ require 'spree_last_address/engine'
4
+ require 'coffee_script'
data/script/rails ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
4
+ ENGINE_PATH = File.expand_path('../../lib/spree_last_address/engine', __FILE__)
5
+
6
+ require 'rails/all'
7
+ require 'rails/engine/commands'
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::CheckoutController do
4
+ stub_authorization!
5
+
6
+ let(:token) { 'some_token' }
7
+ let(:user) { create(:user, email: 'ryan@example.com') }
8
+ let(:order) { create(:order_with_totals) }
9
+
10
+ let(:address_params) do
11
+ address = build(:address)
12
+ address.attributes.except('created_at', 'updated_at')
13
+ end
14
+
15
+ before do
16
+ controller.stub spree_current_user: user
17
+ controller.stub current_order: order
18
+ end
19
+
20
+ context '#before_address' do
21
+ it 'return nil if order.bill_address is not nil' do
22
+ order.bill_address = create(:address)
23
+ spree_get :edit, state: 'address'
24
+ expect(controller.instance_eval{ @before_address }).to be_nil
25
+ end
26
+
27
+ it 'return nil if order.ship_address is not nil' do
28
+ order.ship_address = create(:address)
29
+ spree_get :edit, state: 'address'
30
+ expect(controller.instance_eval{ @before_address }).to be_nil
31
+ end
32
+
33
+ it 'return last saved bill_address and ship_address of order' do
34
+ # save the last address when you visit checkout/delivery
35
+ spree_post :update, {
36
+ state: 'address',
37
+ order: {
38
+ bill_address_attributes: address_params,
39
+ use_billing: true
40
+ }
41
+ }
42
+
43
+ # if you visit checkout/address, then last address will be appeared
44
+ order.bill_address = nil
45
+ order.ship_address = nil
46
+ spree_get :edit, state: 'address'
47
+ controller.instance_eval{ @before_address }
48
+ expect(order.bill_address).not_to be_nil
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,72 @@
1
+ require 'spec_helper'
2
+
3
+ feature 'Last Address', :js do
4
+ stub_authorization!
5
+
6
+ given!(:user) { create(:user) }
7
+ given!(:product) { create(:product) }
8
+ given(:address) { build(:address) }
9
+
10
+ background do
11
+ add_product_to_cart
12
+ click_button 'Checkout'
13
+
14
+ sign_in_as! user
15
+
16
+ Spree::Order.last.update_column(:email, user.email)
17
+
18
+ fill_in_address 'bill'
19
+ uncheck 'order_use_billing'
20
+ fill_in_address 'ship'
21
+
22
+ click_button 'Save and Continue'
23
+ end
24
+
25
+ context 'visit address again,' do
26
+ scenario 'shows the last saved address info' do
27
+ add_product_to_cart
28
+ click_button 'Checkout'
29
+
30
+ check_address_info 'bill'
31
+ uncheck 'order_use_billing'
32
+ check_address_info 'ship'
33
+ end
34
+ end
35
+
36
+ def fill_in_address(kind)
37
+ addr = "order_#{kind}_address_attributes_"
38
+ fill_in "#{addr}lastname", with: address.firstname
39
+ fill_in "#{addr}firstname", with: address.lastname
40
+ fill_in "#{addr}address1", with: address.address1
41
+ fill_in "#{addr}address2", with: address.address2
42
+ fill_in "#{addr}city", with: address.city
43
+ fill_in "#{addr}zipcode", with: address.zipcode
44
+ fill_in "#{addr}phone", with: address.phone
45
+ select 'United States of America', from: "#{addr}country_id"
46
+ select 'Alabama', from: "#{addr}state_id", match: :first
47
+ end
48
+
49
+ def check_address_info(kind)
50
+ addr = "order_#{kind}_address_attributes_"
51
+ find("##{addr}lastname")['value'].should eq address.firstname
52
+ find("##{addr}firstname")['value'].should eq address.lastname
53
+ find("##{addr}address1")['value'].should eq address.address1
54
+ find("##{addr}address2")['value'].should eq address.address2
55
+ find("##{addr}city")['value'].should eq address.city
56
+ find("##{addr}zipcode")['value'].should eq address.zipcode
57
+ find("##{addr}phone")['value'].should eq address.phone
58
+ find_field("#{addr}country_id").value.should eq '1'
59
+ end
60
+
61
+ def add_product_to_cart
62
+ visit spree.root_path
63
+ click_link product.name
64
+ click_button 'add-to-cart-button'
65
+ end
66
+
67
+ def sign_in_as!(user)
68
+ fill_in 'spree_user_email', with: user.email
69
+ fill_in 'spree_user_password', with: 'secret'
70
+ click_button 'Login'
71
+ end
72
+ end
@@ -0,0 +1,26 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
4
+ SimpleCov::Formatter::HTMLFormatter,
5
+ Coveralls::SimpleCov::Formatter
6
+ ]
7
+ SimpleCov.start do
8
+ add_filter '/spec/'
9
+ add_group 'Controllers', 'app/controllers'
10
+ add_group 'Libraries', 'lib'
11
+ end
12
+
13
+ ENV['RAILS_ENV'] = 'test'
14
+
15
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
16
+
17
+ require 'rspec/rails'
18
+ require 'ffaker'
19
+
20
+ RSpec.configure do |config|
21
+ config.mock_with :rspec
22
+ config.use_transactional_fixtures = false
23
+ config.treat_symbols_as_metadata_keys_with_true_values = true
24
+ end
25
+
26
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
@@ -0,0 +1,7 @@
1
+ require 'capybara/rspec'
2
+ require 'capybara/rails'
3
+ require 'capybara/poltergeist'
4
+
5
+ RSpec.configure do |config|
6
+ Capybara.javascript_driver = :poltergeist
7
+ end
@@ -0,0 +1,18 @@
1
+ require 'database_cleaner'
2
+
3
+ RSpec.configure do |config|
4
+
5
+ config.before :suite do
6
+ DatabaseCleaner.strategy = :transaction
7
+ DatabaseCleaner.clean_with :truncation
8
+ end
9
+
10
+ config.before do
11
+ DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction
12
+ DatabaseCleaner.start
13
+ end
14
+
15
+ config.after do
16
+ DatabaseCleaner.clean
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ require 'factory_girl'
2
+
3
+ RSpec.configure do |config|
4
+ config.include FactoryGirl::Syntax::Methods
5
+ end
@@ -0,0 +1,10 @@
1
+ require 'spree/testing_support/factories'
2
+ require 'spree/testing_support/controller_requests'
3
+ require 'spree/testing_support/authorization_helpers'
4
+ require 'spree/testing_support/url_helpers'
5
+ require 'spree/testing_support/capybara_ext'
6
+
7
+ RSpec.configure do |config|
8
+ config.include Spree::TestingSupport::ControllerRequests
9
+ config.include Spree::TestingSupport::UrlHelpers
10
+ end
@@ -1,19 +1,42 @@
1
- # encoding: utf-8
2
- $:.push File.expand_path('../lib', __FILE__)
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib/', __FILE__)
3
+ $:.unshift lib unless $:.include?(lib)
4
+
3
5
  require 'spree_last_address/version'
4
6
 
5
7
  Gem::Specification.new do |s|
6
8
  s.platform = Gem::Platform::RUBY
7
9
  s.name = 'spree-last-address'
8
10
  s.version = SpreeLastAddress.version
9
- s.summary = "Prefill address with last-used address"
10
- s.description = "During checkout, causes the address to be prefilled with the address from their most recent order or the user's saved address."
11
+ s.summary = 'Prefill address with last-used address'
12
+ s.description = %q{During checkout, causes the address to be prefilled with the address from their most recent order or the user's saved address.}
13
+ s.required_ruby_version = '>= 1.9.3'
11
14
 
12
- s.author = 'Torsten Rüger'
13
- s.email = 'torsten@villataika.fi'
15
+ s.authors = ['Tobias Bohwalli', 'Torsten Rüger']
16
+ s.email = 'hi@futhr.io'
17
+ s.homepage = 'http://github.com/futhr/spree_last_address'
18
+ s.license = %q{BSD-3}
14
19
 
15
20
  s.files = `git ls-files`.split("\n")
21
+ s.test_files = `git ls-files -- spec/*`.split("\n")
16
22
  s.require_path = 'lib'
23
+ s.requirements << 'none'
24
+
25
+ s.add_runtime_dependency 'spree_core', '~> 2.0.0'
17
26
 
18
- s.add_dependency 'spree_core', '~> 1.0'
27
+ s.add_development_dependency 'capybara', '~> 2.2.1'
28
+ s.add_development_dependency 'poltergeist', '1.5.0'
29
+ s.add_development_dependency 'selenium-webdriver'
30
+ s.add_development_dependency 'factory_girl', '~> 4.4'
31
+ s.add_development_dependency 'ffaker'
32
+ s.add_development_dependency 'rspec-rails', '~> 2.14'
33
+ s.add_development_dependency 'sqlite3', '~> 1.3.9'
34
+ s.add_development_dependency 'simplecov', '~> 0.7.1'
35
+ s.add_development_dependency 'database_cleaner', '~> 1.2.0'
36
+ s.add_development_dependency 'coffee-rails', '~> 3.2.2'
37
+ s.add_development_dependency 'sass-rails', '~> 3.2.6'
38
+ s.add_development_dependency 'pry-rails'
39
+ s.add_development_dependency 'guard-rspec'
40
+ s.add_development_dependency 'launchy'
41
+ s.add_development_dependency 'coveralls'
19
42
  end
metadata CHANGED
@@ -1,9 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree-last-address
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Tobias Bohwalli
7
8
  - Torsten Rüger
8
9
  autorequire:
9
10
  bindir: bin
@@ -16,33 +17,259 @@ dependencies:
16
17
  requirements:
17
18
  - - ~>
18
19
  - !ruby/object:Gem::Version
19
- version: '1.0'
20
+ version: 2.0.0
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - ~>
25
26
  - !ruby/object:Gem::Version
26
- version: '1.0'
27
+ version: 2.0.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: capybara
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: 2.2.1
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ~>
40
+ - !ruby/object:Gem::Version
41
+ version: 2.2.1
42
+ - !ruby/object:Gem::Dependency
43
+ name: poltergeist
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '='
47
+ - !ruby/object:Gem::Version
48
+ version: 1.5.0
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '='
54
+ - !ruby/object:Gem::Version
55
+ version: 1.5.0
56
+ - !ruby/object:Gem::Dependency
57
+ name: selenium-webdriver
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: factory_girl
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: '4.4'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ~>
82
+ - !ruby/object:Gem::Version
83
+ version: '4.4'
84
+ - !ruby/object:Gem::Dependency
85
+ name: ffaker
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rspec-rails
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ~>
103
+ - !ruby/object:Gem::Version
104
+ version: '2.14'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: '2.14'
112
+ - !ruby/object:Gem::Dependency
113
+ name: sqlite3
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ version: 1.3.9
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 1.3.9
126
+ - !ruby/object:Gem::Dependency
127
+ name: simplecov
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ~>
131
+ - !ruby/object:Gem::Version
132
+ version: 0.7.1
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ~>
138
+ - !ruby/object:Gem::Version
139
+ version: 0.7.1
140
+ - !ruby/object:Gem::Dependency
141
+ name: database_cleaner
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ~>
145
+ - !ruby/object:Gem::Version
146
+ version: 1.2.0
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ~>
152
+ - !ruby/object:Gem::Version
153
+ version: 1.2.0
154
+ - !ruby/object:Gem::Dependency
155
+ name: coffee-rails
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ~>
159
+ - !ruby/object:Gem::Version
160
+ version: 3.2.2
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ~>
166
+ - !ruby/object:Gem::Version
167
+ version: 3.2.2
168
+ - !ruby/object:Gem::Dependency
169
+ name: sass-rails
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ~>
173
+ - !ruby/object:Gem::Version
174
+ version: 3.2.6
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ~>
180
+ - !ruby/object:Gem::Version
181
+ version: 3.2.6
182
+ - !ruby/object:Gem::Dependency
183
+ name: pry-rails
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - '>='
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - '>='
194
+ - !ruby/object:Gem::Version
195
+ version: '0'
196
+ - !ruby/object:Gem::Dependency
197
+ name: guard-rspec
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - '>='
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - '>='
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ - !ruby/object:Gem::Dependency
211
+ name: launchy
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - '>='
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - '>='
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
224
+ - !ruby/object:Gem::Dependency
225
+ name: coveralls
226
+ requirement: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - '>='
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - '>='
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
27
238
  description: During checkout, causes the address to be prefilled with the address
28
239
  from their most recent order or the user's saved address.
29
- email: torsten@villataika.fi
240
+ email: hi@futhr.io
30
241
  executables: []
31
242
  extensions: []
32
243
  extra_rdoc_files: []
33
244
  files:
34
245
  - .gitignore
246
+ - .rspec
247
+ - .travis.yml
248
+ - CONTRIBUTING.md
35
249
  - Gemfile
36
- - LICENSE
250
+ - Guardfile
251
+ - LICENSE.md
37
252
  - README.md
38
253
  - Rakefile
254
+ - app/assets/javascripts/store/spree_last_address.js
255
+ - app/assets/stylesheets/store/spree_last_address.css
39
256
  - app/controllers/spree/checkout_controller_decorator.rb
257
+ - lib/generators/spree_last_address/install/install_generator.rb
40
258
  - lib/spree_last_address.rb
259
+ - lib/spree_last_address/engine.rb
41
260
  - lib/spree_last_address/version.rb
42
- - lib/tasks/install.rake
261
+ - script/rails
262
+ - spec/controllers/spree/checkout_controller_spec.rb
263
+ - spec/features/last_address_spec.rb
264
+ - spec/spec_helper.rb
265
+ - spec/support/capybara.rb
266
+ - spec/support/database_cleaner.rb
267
+ - spec/support/factory_girl.rb
268
+ - spec/support/spree.rb
43
269
  - spree_last_address.gemspec
44
- homepage:
45
- licenses: []
270
+ homepage: http://github.com/futhr/spree_last_address
271
+ licenses:
272
+ - BSD-3
46
273
  metadata: {}
47
274
  post_install_message:
48
275
  rdoc_options: []
@@ -52,16 +279,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
52
279
  requirements:
53
280
  - - '>='
54
281
  - !ruby/object:Gem::Version
55
- version: '0'
282
+ version: 1.9.3
56
283
  required_rubygems_version: !ruby/object:Gem::Requirement
57
284
  requirements:
58
285
  - - '>='
59
286
  - !ruby/object:Gem::Version
60
287
  version: '0'
61
- requirements: []
288
+ requirements:
289
+ - none
62
290
  rubyforge_project:
63
291
  rubygems_version: 2.1.10
64
292
  signing_key:
65
293
  specification_version: 4
66
294
  summary: Prefill address with last-used address
67
- test_files: []
295
+ test_files:
296
+ - spec/controllers/spree/checkout_controller_spec.rb
297
+ - spec/features/last_address_spec.rb
298
+ - spec/spec_helper.rb
299
+ - spec/support/capybara.rb
300
+ - spec/support/database_cleaner.rb
301
+ - spec/support/factory_girl.rb
302
+ - spec/support/spree.rb
@@ -1,24 +0,0 @@
1
- namespace :spree_last_address 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_last_address:install:migrations'].invoke
5
- Rake::Task['spree_last_address: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
- end