spree_my_favourites 2.2.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: bf076b39fb36075a87aeebe46b86c7265eb5aff2
4
+ data.tar.gz: ddd2896e8a7161de3c610ba822ad7b70e20c276f
5
+ SHA512:
6
+ metadata.gz: 20f2aaed6488a94baffec1ae751229db9bed96c6a000cd275573d1b44d970d7709ccb35b4d8ec64c10c677a6c222f0672f12683475167fcd7fa46beb5f84d23f
7
+ data.tar.gz: bd1a2d95c15d8821ee3eb03ba9d60b4b8924dd82d7ebe3d0adca19631c1809d055572a48b23f8d54987fc986ca7e5b271ae0b3d4fd47a0ccf99858cc94a6d1a2
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ \#*
2
+ *~
3
+ .#*
4
+ .DS_Store
5
+ .idea
6
+ .project
7
+ .sass-cache
8
+ coverage
9
+ Gemfile.lock
10
+ tmp
11
+ nbproject
12
+ pkg
13
+ *.swp
14
+ spec/dummy
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Provides basic authentication functionality for testing parts of your engine
4
+ gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '2-2-stable'
5
+ gem 'haml'
6
+ gem 'debugger'
7
+
8
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2014 [name of plugin creator]
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
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.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,21 @@
1
+ SpreeMyFavourites
2
+ =================
3
+
4
+ Adds a My Favourites page to the My Account section of spree frontend. At the moment, the favourites list is
5
+ just all the items a customer has ordered, sorted by the number of times they have been ordered.
6
+
7
+ Installation
8
+ ------------
9
+
10
+ Add spree_my_favourites to your Gemfile:
11
+
12
+ ```ruby
13
+ gem 'spree_my_favourites'
14
+ ```
15
+
16
+ Bundle your dependencies and run the installation generator:
17
+
18
+ ```shell
19
+ bundle
20
+ bundle exec rails g spree_my_favourites:install
21
+ ```
data/Rakefile ADDED
@@ -0,0 +1,15 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ require 'spree/testing_support/extension_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_my_favourites'
14
+ Rake::Task['extension:test_app'].invoke
15
+ end
@@ -0,0 +1 @@
1
+ //= require admin/spree_backend
@@ -0,0 +1 @@
1
+ //= require store/spree_frontend
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require admin/spree_backend
3
+ */
@@ -0,0 +1,39 @@
1
+ #my-account {
2
+
3
+ #account-nav {
4
+ margin: 0;
5
+ }
6
+
7
+ nav ul {
8
+ list-style: none;
9
+ margin-bottom: 0;
10
+
11
+ li {
12
+ background: #f0f0f0;
13
+ margin: 0;
14
+ padding: 10px 15px;
15
+ display: inline-block;
16
+ }
17
+
18
+ li.selected {
19
+ background: #d9d9db;
20
+ }
21
+ }
22
+
23
+ .account-my-favourites {
24
+
25
+ table {
26
+
27
+ width: 100%;
28
+
29
+ th.favourite-description, td.favourite-description {
30
+ width: 70%;
31
+ }
32
+
33
+ th.favourite-number-orders, td.favourite-number-orders {
34
+ width: 30%;
35
+ text-align: center;
36
+ }
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,5 @@
1
+ /*
2
+ *= require spree/frontend
3
+ *= require_self
4
+ *= require_tree
5
+ */
@@ -0,0 +1,27 @@
1
+ module Spree
2
+ module Account
3
+ class FavouritesController < Spree::StoreController
4
+
5
+ def index
6
+ @user = try_spree_current_user
7
+ if @user
8
+ line_items = Spree::LineItem.includes(:variant, order: [:user]).where(['spree_orders.user_id = ?', @user.id]).all
9
+ ordered_items = line_items.inject({}) do |result, line_item|
10
+ if result[line_item.variant.sku]
11
+ result[line_item.variant.sku][:number_of_orders] = result[line_item.variant.sku][:number_of_orders] + 1
12
+ else
13
+ result[line_item.variant.sku] = {variant: line_item.variant, number_of_orders: 1}
14
+ end
15
+ result
16
+ end
17
+
18
+ @favourites = ordered_items.values
19
+ @favourites = @favourites.sort_by{|favourite| favourite[:number_of_orders]}.reverse
20
+ else
21
+ unauthorized
22
+ end
23
+ end
24
+
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,20 @@
1
+ module Spree
2
+ module Account
3
+ class OrdersController < Spree::StoreController
4
+
5
+ def index
6
+ if try_spree_current_user
7
+ @user = try_spree_current_user
8
+ @orders = @user.orders.complete.order('completed_at desc')
9
+ else
10
+ unauthorized
11
+ end
12
+ end
13
+
14
+ def accurate_title
15
+ Spree.t(:my_account)
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ #my-account
2
+ = render partial: 'spree/shared/account_header', locals: {selected: :favourites}
3
+
4
+ .account-my-favourites(data-hook="account_my_favourites")
5
+ - if @favourites.present?
6
+ %table.favourites-summary
7
+ %thead
8
+ %tr
9
+ %th.favourite-description= Spree.t(:name)
10
+ %th.favourite-number-orders= Spree.t(:number_of_orders)
11
+ %tbody
12
+ - @favourites.each do |favourite|
13
+ %tr
14
+ %td.favourite-description= favourite[:variant].name
15
+ %td.favourite-number-orders= favourite[:number_of_orders]
16
+ - else
17
+ %p= Spree.t(:you_have_no_orders_yet)
@@ -0,0 +1,3 @@
1
+ #my-account
2
+ = render partial: 'spree/shared/account_header', locals: {selected: :orders}
3
+ = render partial: 'spree/shared/user_orders'
@@ -0,0 +1,21 @@
1
+ %h1= accurate_title
2
+
3
+ .account-summary(data-hook="account_summary")
4
+ %dl#user-info
5
+ %dt= Spree.t(:email)
6
+ %dd
7
+ = @user.email
8
+ (
9
+ = link_to Spree.t(:edit), spree.edit_account_path
10
+ )
11
+
12
+ .row#account-nav
13
+ .columns.six.alpha.omega
14
+ %nav
15
+ %ul
16
+ %li{class: "#{selected == :orders ? 'selected' : ''}"}
17
+ %h3
18
+ = link_to Spree.t(:my_orders), account_orders_path
19
+ %li{class: "#{selected == :favourites ? 'selected' : ''}"}
20
+ %h3
21
+ = link_to Spree.t(:my_favourites), account_favourites_path
@@ -0,0 +1,22 @@
1
+ .account-my-orders(data-hook="account_my_orders")
2
+ - if @orders.present?
3
+ %table.order-summary
4
+ %thead
5
+ %tr
6
+ %th.order-number= I18n.t(:number, :scope => 'activerecord.attributes.spree/order')
7
+ %th.order-date= Spree.t(:date)
8
+ %th.order-status= Spree.t(:status)
9
+ %th.order-payment-state= Spree.t(:payment_state)
10
+ %th.order-shipment-state= Spree.t(:shipment_state)
11
+ %th.order-total= Spree.t(:total)
12
+ %tbody
13
+ - @orders.each do |order|
14
+ %tr
15
+ %td.order-number= link_to order.number, order_url(order)
16
+ %td.order-date= l order.completed_at.to_date
17
+ %td.order-status= Spree.t("order_state.#{order.state}").titleize
18
+ %td.order-payment-state= Spree.t("payment_states.#{order.payment_state}").titleize if order.payment_state
19
+ %td.order-shipment-state= Spree.t("shipment_states.#{order.shipment_state}").titleize if order.shipment_state
20
+ %td.order-total= order.display_total
21
+ - else
22
+ %p= Spree.t(:you_have_no_orders_yet)
@@ -0,0 +1,3 @@
1
+ #my-account
2
+ = render partial: 'spree/shared/account_header', locals: {selected: :orders}
3
+ = render partial: 'spree/shared/user_orders'
data/bin/rails ADDED
@@ -0,0 +1,7 @@
1
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
2
+
3
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
4
+ ENGINE_PATH = File.expand_path('../../lib/spree_my_favourites/engine', __FILE__)
5
+
6
+ require 'rails/all'
7
+ require 'rails/engine/commands'
@@ -0,0 +1,5 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ en:
5
+ hello: "Hello world"
data/config/routes.rb ADDED
@@ -0,0 +1,8 @@
1
+ Spree::Core::Engine.routes.draw do
2
+ # Add your extension routes here
3
+ namespace :account do
4
+ resources :orders, only: [:index]
5
+ resources :favourites, only: [:index]
6
+ end
7
+
8
+ end
@@ -0,0 +1,29 @@
1
+ module SpreeMyFavourites
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+
5
+ class_option :auto_run_migrations, :type => :boolean, :default => false
6
+
7
+ def add_javascripts
8
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/spree_my_favourites\n"
9
+ end
10
+
11
+ def add_stylesheets
12
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/spree_my_favourites\n", :before => /\*\//, :verbose => true
13
+ end
14
+
15
+ def add_migrations
16
+ run 'bundle exec rake railties:install:migrations FROM=spree_my_favourites'
17
+ end
18
+
19
+ def run_migrations
20
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask 'Would you like to run the migrations now? [Y/n]')
21
+ if run_migrations
22
+ run 'bundle exec rake db:migrate'
23
+ else
24
+ puts 'Skipping rake db:migrate, don\'t forget to run it!'
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,22 @@
1
+ module SpreeMyFavourites
2
+ class Engine < Rails::Engine
3
+ require 'spree/core'
4
+ isolate_namespace Spree
5
+ engine_name 'spree_my_favourites'
6
+
7
+ config.autoload_paths += %W(#{config.root}/lib)
8
+
9
+ # use rspec for tests
10
+ config.generators do |g|
11
+ g.test_framework :rspec
12
+ end
13
+
14
+ def self.activate
15
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
16
+ Rails.configuration.cache_classes ? require(c) : load(c)
17
+ end
18
+ end
19
+
20
+ config.to_prepare &method(:activate).to_proc
21
+ end
22
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
3
+ #
4
+ # Example adding this to your spec_helper will load these Factories for use:
5
+ # require 'spree_my_favourites/factories'
6
+ end
@@ -0,0 +1,2 @@
1
+ require 'spree_core'
2
+ require 'spree_my_favourites/engine'
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Account::FavouritesController do
4
+
5
+ describe "index" do
6
+
7
+ let(:complete_orders) { double(Array) }
8
+ let(:user_orders) { double(Array, complete: complete_orders) }
9
+ let(:user) { mock_model Spree::User, :last_incomplete_spree_order => nil, :has_spree_role? => true, :spree_api_key => 'fake', :orders => user_orders }
10
+
11
+ before :each do
12
+ controller.stub :spree_current_user => user
13
+ controller.stub :check_authorization
14
+ end
15
+
16
+ it 'should redirect to login if user is not logged in' do
17
+ controller.stub(:spree_current_user).and_return nil
18
+ spree_get :index
19
+ response.status.should == 401
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Account::OrdersController do
4
+
5
+ describe "index" do
6
+
7
+ let(:sorted_orders) { double(Array) }
8
+ let(:complete_orders) { double(Array, order: sorted_orders) }
9
+ let(:user_orders) { double(Array, complete: complete_orders) }
10
+ let(:user) { mock_model Spree::User, :last_incomplete_spree_order => nil, :has_spree_role? => true, :spree_api_key => 'fake', :orders => user_orders }
11
+
12
+ before :each do
13
+ controller.stub :spree_current_user => user
14
+ controller.stub :check_authorization
15
+ end
16
+
17
+ it 'should render current users orders' do
18
+ spree_get :index
19
+ assigns(:user).should == user
20
+ assigns(:orders).should == sorted_orders
21
+ end
22
+
23
+ it 'should redirect to login if user is not logged in' do
24
+ controller.stub(:spree_current_user).and_return nil
25
+ spree_get :index
26
+ response.status.should == 401
27
+ end
28
+
29
+ end
30
+
31
+ end
@@ -0,0 +1,83 @@
1
+ # Run Coverage report
2
+ require 'simplecov'
3
+ SimpleCov.start do
4
+ add_filter 'spec/dummy'
5
+ add_group 'Controllers', 'app/controllers'
6
+ add_group 'Helpers', 'app/helpers'
7
+ add_group 'Mailers', 'app/mailers'
8
+ add_group 'Models', 'app/models'
9
+ add_group 'Views', 'app/views'
10
+ add_group 'Libraries', 'lib'
11
+ end
12
+
13
+ # Configure Rails Environment
14
+ ENV['RAILS_ENV'] = 'test'
15
+
16
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
17
+
18
+ require 'rspec/rails'
19
+ require 'database_cleaner'
20
+ require 'ffaker'
21
+
22
+ # Requires supporting ruby files with custom matchers and macros, etc,
23
+ # in spec/support/ and its subdirectories.
24
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
25
+
26
+ # Requires factories defined in spree_core
27
+ require 'spree/testing_support/factories'
28
+ require 'spree/testing_support/controller_requests'
29
+ require 'spree/testing_support/authorization_helpers'
30
+ require 'spree/testing_support/url_helpers'
31
+
32
+ # Requires factories defined in lib/spree_my_favourites/factories.rb
33
+ require 'spree_my_favourites/factories'
34
+
35
+ RSpec.configure do |config|
36
+ config.include FactoryGirl::Syntax::Methods
37
+
38
+ # == URL Helpers
39
+ #
40
+ # Allows access to Spree's routes in specs:
41
+ #
42
+ # visit spree.admin_path
43
+ # current_path.should eql(spree.products_path)
44
+ config.include Spree::TestingSupport::UrlHelpers
45
+ config.include Spree::TestingSupport::ControllerRequests
46
+
47
+ # == Mock Framework
48
+ #
49
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
50
+ #
51
+ # config.mock_with :mocha
52
+ # config.mock_with :flexmock
53
+ # config.mock_with :rr
54
+ config.mock_with :rspec
55
+ config.color = true
56
+
57
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
58
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
59
+
60
+ # Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner
61
+ # to cleanup after each test instead. Without transactional fixtures set to false the records created
62
+ # to setup a test will be unavailable to the browser, which runs under a seperate server instance.
63
+ config.use_transactional_fixtures = false
64
+
65
+ # Ensure Suite is set to use transactions for speed.
66
+ config.before :suite do
67
+ DatabaseCleaner.strategy = :transaction
68
+ DatabaseCleaner.clean_with :truncation
69
+ end
70
+
71
+ # Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
72
+ config.before :each do
73
+ DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction
74
+ DatabaseCleaner.start
75
+ end
76
+
77
+ # After each spec clean the database.
78
+ config.after :each do
79
+ DatabaseCleaner.clean
80
+ end
81
+
82
+ config.fail_fast = ENV['FAIL_FAST'] || false
83
+ end
@@ -0,0 +1,34 @@
1
+ # encoding: UTF-8
2
+ Gem::Specification.new do |s|
3
+ s.platform = Gem::Platform::RUBY
4
+ s.name = 'spree_my_favourites'
5
+ s.version = '2.2.1'
6
+ s.summary = 'Adds My Favourites tab to My Account section of the website'
7
+ s.required_ruby_version = '>= 2.0.0'
8
+
9
+ s.author = 'Francisco Trindade'
10
+ s.email = 'frank.trindade@gmail.com'
11
+ s.homepage = 'http://blog.franktrindade.com'
12
+
13
+ s.files = `git ls-files`.split("\n")
14
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ s.require_path = 'lib'
16
+ s.requirements << 'none'
17
+
18
+ s.add_dependency 'spree_core', '~> 2.2.1'
19
+ s.add_dependency 'spree_frontend', '~> 2.2.1'
20
+
21
+ s.add_development_dependency 'nokogiri', '=1.6.1'
22
+ s.add_development_dependency 'capybara', '~> 2.1'
23
+ s.add_development_dependency 'coffee-rails'
24
+ s.add_development_dependency 'database_cleaner'
25
+ s.add_development_dependency 'factory_girl', '~> 4.2'
26
+ s.add_development_dependency 'ffaker'
27
+ s.add_development_dependency 'rspec-rails', '~> 2.13'
28
+ s.add_development_dependency 'sass-rails'
29
+ s.add_development_dependency 'selenium-webdriver'
30
+ s.add_development_dependency 'simplecov'
31
+ s.add_development_dependency 'sqlite3'
32
+ s.add_development_dependency 'haml'
33
+ s.add_development_dependency 'debugger'
34
+ end
metadata ADDED
@@ -0,0 +1,285 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_my_favourites
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.2.1
5
+ platform: ruby
6
+ authors:
7
+ - Francisco Trindade
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-05-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: spree_core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 2.2.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 2.2.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: spree_frontend
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 2.2.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 2.2.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.6.1
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.6.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: capybara
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '2.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '2.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: coffee-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: database_cleaner
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: factory_girl
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '4.2'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '4.2'
111
+ - !ruby/object:Gem::Dependency
112
+ name: ffaker
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: '2.13'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: '2.13'
139
+ - !ruby/object:Gem::Dependency
140
+ name: sass-rails
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: selenium-webdriver
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: simplecov
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: sqlite3
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: haml
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - '>='
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: debugger
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ description:
224
+ email: frank.trindade@gmail.com
225
+ executables: []
226
+ extensions: []
227
+ extra_rdoc_files: []
228
+ files:
229
+ - .gitignore
230
+ - .rspec
231
+ - Gemfile
232
+ - LICENSE
233
+ - README.md
234
+ - Rakefile
235
+ - app/assets/javascripts/spree/backend/spree_my_favourites.js
236
+ - app/assets/javascripts/spree/frontend/spree_my_favourites.js
237
+ - app/assets/stylesheets/spree/backend/spree_my_favourites.css
238
+ - app/assets/stylesheets/spree/frontend/my_account.scss
239
+ - app/assets/stylesheets/spree/frontend/spree_my_favourites.css
240
+ - app/controllers/spree/account/favourites_controller.rb
241
+ - app/controllers/spree/account/orders_controller.rb
242
+ - app/views/spree/account/favourites/index.haml
243
+ - app/views/spree/account/orders/index.haml
244
+ - app/views/spree/shared/_account_header.haml
245
+ - app/views/spree/shared/_user_orders.haml
246
+ - app/views/spree/users/show.haml
247
+ - bin/rails
248
+ - config/locales/en.yml
249
+ - config/routes.rb
250
+ - lib/generators/spree_my_favourites/install/install_generator.rb
251
+ - lib/spree_my_favourites.rb
252
+ - lib/spree_my_favourites/engine.rb
253
+ - lib/spree_my_favourites/factories.rb
254
+ - spec/controllers/spree/account/favourites_controller_spec.rb
255
+ - spec/controllers/spree/account/orders_controller_spec.rb
256
+ - spec/spec_helper.rb
257
+ - spree_my_favourites.gemspec
258
+ homepage: http://blog.franktrindade.com
259
+ licenses: []
260
+ metadata: {}
261
+ post_install_message:
262
+ rdoc_options: []
263
+ require_paths:
264
+ - lib
265
+ required_ruby_version: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - '>='
268
+ - !ruby/object:Gem::Version
269
+ version: 2.0.0
270
+ required_rubygems_version: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - '>='
273
+ - !ruby/object:Gem::Version
274
+ version: '0'
275
+ requirements:
276
+ - none
277
+ rubyforge_project:
278
+ rubygems_version: 2.1.11
279
+ signing_key:
280
+ specification_version: 4
281
+ summary: Adds My Favourites tab to My Account section of the website
282
+ test_files:
283
+ - spec/controllers/spree/account/favourites_controller_spec.rb
284
+ - spec/controllers/spree/account/orders_controller_spec.rb
285
+ - spec/spec_helper.rb