spree_events_tracker 3.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.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +73 -0
  3. data/Gemfile +7 -0
  4. data/LICENSE +26 -0
  5. data/README.md +45 -0
  6. data/Rakefile +21 -0
  7. data/app/assets/javascripts/spree/backend/spree_events_tracker.js +2 -0
  8. data/app/assets/javascripts/spree/frontend/spree_events_tracker.js +2 -0
  9. data/app/assets/stylesheets/spree/backend/spree_events_tracker.css +4 -0
  10. data/app/assets/stylesheets/spree/frontend/spree_events_tracker.css +4 -0
  11. data/app/controllers/concerns/spree/checkout_event_tracker.rb +28 -0
  12. data/app/controllers/concerns/spree/page_tracker.rb +55 -0
  13. data/app/controllers/spree/checkout_controller_decorator.rb +22 -0
  14. data/app/controllers/spree/home_controller_decorator.rb +4 -0
  15. data/app/controllers/spree/orders_controller_decorator.rb +32 -0
  16. data/app/controllers/spree/products_controller_decorator.rb +4 -0
  17. data/app/controllers/spree/taxons_controller_decorator.rb +4 -0
  18. data/app/models/concerns/spree/order_contents_decorator.rb +64 -0
  19. data/app/models/spree/cart_event.rb +25 -0
  20. data/app/models/spree/checkout_event.rb +13 -0
  21. data/app/models/spree/page_event.rb +17 -0
  22. data/app/trackers/spree/cart/event/tracker.rb +44 -0
  23. data/app/trackers/spree/checkout/event/tracker.rb +18 -0
  24. data/app/trackers/spree/event/tracker.rb +17 -0
  25. data/app/trackers/spree/page/event/tracker.rb +17 -0
  26. data/bin/rails +7 -0
  27. data/config/locales/en.yml +4 -0
  28. data/config/routes.rb +3 -0
  29. data/db/migrate/20160313145434_create_spree_cart_events.rb +15 -0
  30. data/db/migrate/20160314080710_create_spree_page_events.rb +14 -0
  31. data/db/migrate/20160314080822_create_spree_checkout_events.rb +14 -0
  32. data/lib/generators/spree_events_tracker/install/install_generator.rb +31 -0
  33. data/lib/spree_events_tracker.rb +2 -0
  34. data/lib/spree_events_tracker/engine.rb +20 -0
  35. data/lib/spree_events_tracker/factories.rb +6 -0
  36. data/spec/controllers/spree/checkout_controlller_decorator_spec.rb +131 -0
  37. data/spec/controllers/spree/orders_controller_decorator_spec.rb +136 -0
  38. data/spec/models/spree/cart_event_spec.rb +18 -0
  39. data/spec/models/spree/checkout_event_spec.rb +16 -0
  40. data/spec/models/spree/page_event_spec.rb +15 -0
  41. data/spec/spec_helper.rb +100 -0
  42. data/spec/trackers/spree/cart/event/tracker_spec.rb +67 -0
  43. data/spec/trackers/spree/checkout/event/tracker_spec.rb +33 -0
  44. data/spec/trackers/spree/event/tracker_spec.rb +29 -0
  45. data/spec/trackers/spree/page/event/tracker_spec.rb +32 -0
  46. data/spree_events_tracker.gemspec +37 -0
  47. metadata +303 -0
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::CartEvent do
4
+
5
+ describe 'associations' do
6
+ it { is_expected.to belong_to(:actor) }
7
+ it { is_expected.to belong_to(:target) }
8
+ end
9
+
10
+ describe 'validations' do
11
+ it { is_expected.to validate_presence_of(:quantity) }
12
+ it { is_expected.to validate_presence_of(:activity) }
13
+ it { is_expected.to validate_presence_of(:target) }
14
+ it { is_expected.to validate_presence_of(:actor) }
15
+ it { is_expected.to validate_presence_of(:total) }
16
+ end
17
+
18
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::CheckoutEvent do
4
+
5
+ describe 'associations' do
6
+ it { is_expected.to belong_to(:actor) }
7
+ it { is_expected.to belong_to(:target) }
8
+ end
9
+
10
+ describe 'validations' do
11
+ it { is_expected.to validate_presence_of(:session_id) }
12
+ it { is_expected.to validate_presence_of(:activity) }
13
+ it { is_expected.to validate_presence_of(:target) }
14
+ end
15
+
16
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::PageEvent do
4
+
5
+ describe 'associations' do
6
+ it { is_expected.to belong_to(:actor) }
7
+ it { is_expected.to belong_to(:target) }
8
+ end
9
+
10
+ describe 'validations' do
11
+ it { is_expected.to validate_presence_of(:session_id) }
12
+ it { is_expected.to validate_presence_of(:activity) }
13
+ end
14
+
15
+ end
@@ -0,0 +1,100 @@
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
+ require 'shoulda/matchers'
22
+ require 'rspec/active_model/mocks'
23
+
24
+ # Requires supporting ruby files with custom matchers and macros, etc,
25
+ # in spec/support/ and its subdirectories.
26
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
27
+
28
+ # Requires factories and other useful helpers defined in spree_core.
29
+ require 'spree/testing_support/authorization_helpers'
30
+ require 'spree/testing_support/capybara_ext'
31
+ require 'spree/testing_support/controller_requests'
32
+ require 'spree/testing_support/factories'
33
+ require 'spree/testing_support/url_helpers'
34
+
35
+ # Requires factories defined in lib/spree_events_tracker/factories.rb
36
+ require 'spree_events_tracker/factories'
37
+
38
+ RSpec.configure do |config|
39
+ config.include FactoryGirl::Syntax::Methods
40
+
41
+ # Infer an example group's spec type from the file location.
42
+ config.infer_spec_type_from_file_location!
43
+
44
+ # == URL Helpers
45
+ #
46
+ # Allows access to Spree's routes in specs:
47
+ #
48
+ # visit spree.admin_path
49
+ # current_path.should eql(spree.products_path)
50
+ config.include Spree::TestingSupport::UrlHelpers
51
+
52
+ # == Requests support
53
+ #
54
+ # Adds convenient methods to request Spree's controllers
55
+ # spree_get :index
56
+ config.include Spree::TestingSupport::ControllerRequests, type: :controller
57
+
58
+ # == Mock Framework
59
+ #
60
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
61
+ #
62
+ # config.mock_with :mocha
63
+ # config.mock_with :flexmock
64
+ # config.mock_with :rr
65
+ config.mock_with :rspec
66
+ config.color = true
67
+
68
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
69
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
70
+
71
+ # Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner
72
+ # to cleanup after each test instead. Without transactional fixtures set to false the records created
73
+ # to setup a test will be unavailable to the browser, which runs under a separate server instance.
74
+ config.use_transactional_fixtures = false
75
+
76
+ # Ensure Suite is set to use transactions for speed.
77
+ config.before :suite do
78
+ DatabaseCleaner.strategy = :transaction
79
+ DatabaseCleaner.clean_with :truncation
80
+ end
81
+
82
+ # Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
83
+ config.before :each do
84
+ DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction
85
+ DatabaseCleaner.start
86
+ end
87
+
88
+ # After each spec clean the database.
89
+ config.after :each do
90
+ DatabaseCleaner.clean
91
+ end
92
+
93
+ config.fail_fast = ENV['FAIL_FAST'] || false
94
+ config.order = "random"
95
+ config.include Spree::TestingSupport::ControllerRequests, type: :controller
96
+ config.infer_spec_type_from_file_location!
97
+
98
+ config.include(Shoulda::Matchers::ActiveModel, type: :model)
99
+ config.include(Shoulda::Matchers::ActiveRecord, type: :model)
100
+ end
@@ -0,0 +1,67 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Cart::Event::Tracker do
4
+ let(:actor) { create(:order) }
5
+ let(:target) { create(:line_item) }
6
+ let(:tracker) { Spree::Cart::Event::Tracker.new(
7
+ activity: 'test_activity',
8
+ actor: actor,
9
+ target: target,
10
+ session_id: 'test_session_id',
11
+ referrer: 'test_referrer',
12
+ quantity: 'test_quantity',
13
+ total: 'test_total'
14
+ )
15
+ }
16
+
17
+ describe '#initialize' do
18
+ it { expect(tracker.instance_variable_get(:@activity)).to eq('test_activity') }
19
+ it { expect(tracker.instance_variable_get(:@actor)).to eq(actor) }
20
+ it { expect(tracker.instance_variable_get(:@target)).to eq(target) }
21
+ it { expect(tracker.instance_variable_get(:@referrer)).to eq('test_referrer') }
22
+ it { expect(tracker.instance_variable_get(:@session_id)).to eq('test_session_id') }
23
+ it { expect(tracker.instance_variable_get(:@quantity)).to eq('test_quantity') }
24
+ it { expect(tracker.instance_variable_get(:@total)).to eq('test_total') }
25
+ end
26
+
27
+ describe '#track' do
28
+ it 'should create CartEvent object' do
29
+ expect(tracker.track).to be_instance_of(Spree::CartEvent)
30
+ end
31
+ end
32
+
33
+ describe '#changed_quantity' do
34
+ let(:previous_quantity_changes) { target.previous_changes[:quantity].map(&:to_i) }
35
+
36
+ before do
37
+ target.quantity = 8
38
+ target.save
39
+ end
40
+
41
+ it 'should return previous quantity changes' do
42
+ expect(tracker.send(:changed_quantity, previous_quantity_changes)).to be_instance_of(Fixnum)
43
+ end
44
+ end
45
+
46
+ describe '#activity' do
47
+ context 'when item is added' do
48
+ let(:changed_quantity) { target.quantity }
49
+ it { expect(tracker.send(:activity, changed_quantity, target)).to eq(:add) }
50
+ end
51
+
52
+ context 'when item is removed' do
53
+ let(:changed_quantity) { -1 }
54
+
55
+ before do
56
+ target.quantity = 0
57
+ target.save
58
+ end
59
+
60
+ it { expect(tracker.send(:activity, changed_quantity, target)).to eq(:remove) }
61
+ end
62
+
63
+ context 'when item is updated' do
64
+ it { expect(tracker.send(:activity, 7, target)).to eq(:update) }
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Checkout::Event::Tracker do
4
+
5
+ let(:actor) { create(:user) }
6
+ let(:target) { create(:order) }
7
+ let(:tracker) { Spree::Checkout::Event::Tracker.new(
8
+ activity: 'test_activity',
9
+ actor: actor,
10
+ target: target,
11
+ session_id: 'test_session_id',
12
+ referrer: 'test_referrer',
13
+ previous_state: 'test_previous_state',
14
+ next_state: 'test_next_state'
15
+ )
16
+ }
17
+
18
+ describe '#initialize' do
19
+ it { expect(tracker.instance_variable_get(:@activity)).to eq('test_activity') }
20
+ it { expect(tracker.instance_variable_get(:@actor)).to eq(actor) }
21
+ it { expect(tracker.instance_variable_get(:@target)).to eq(target) }
22
+ it { expect(tracker.instance_variable_get(:@referrer)).to eq('test_referrer') }
23
+ it { expect(tracker.instance_variable_get(:@session_id)).to eq('test_session_id') }
24
+ it { expect(tracker.instance_variable_get(:@previous_state)).to eq('test_previous_state') }
25
+ it { expect(tracker.instance_variable_get(:@next_state)).to eq('test_next_state') }
26
+ end
27
+
28
+ describe '#track' do
29
+ it 'should create CheckoutEvent instance' do
30
+ expect(tracker.track).to be_instance_of(Spree::CheckoutEvent)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Event::Tracker do
4
+
5
+ let(:actor) { create(:user) }
6
+ let(:target) { create(:order) }
7
+ let(:tracker) { Spree::Event::Tracker.new(
8
+ activity: 'test_activity',
9
+ actor: actor,
10
+ target: target,
11
+ session_id: 'test_session_id',
12
+ referrer: 'test_referrer'
13
+ )
14
+ }
15
+
16
+ describe '#initialize' do
17
+ it { expect(tracker.instance_variable_get(:@activity)).to eq('test_activity') }
18
+ it { expect(tracker.instance_variable_get(:@actor)).to eq(actor) }
19
+ it { expect(tracker.instance_variable_get(:@target)).to eq(target) }
20
+ it { expect(tracker.instance_variable_get(:@referrer)).to eq('test_referrer') }
21
+ it { expect(tracker.instance_variable_get(:@session_id)).to eq('test_session_id') }
22
+ end
23
+
24
+ describe '#track' do
25
+ it 'should raise exception' do
26
+ expect{ tracker.track }.to raise_error('#track should be implemented in a sub-class of Event::Tracker')
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Spree::Page::Event::Tracker do
4
+
5
+ let(:actor) { create(:user) }
6
+ let(:target) { create(:order) }
7
+ let(:tracker) { Spree::Page::Event::Tracker.new(
8
+ activity: 'test_activity',
9
+ actor: actor,
10
+ target: target,
11
+ session_id: 'test_session_id',
12
+ referrer: 'test_referrer',
13
+ search_keywords: 'test_search_keywords',
14
+ next_state: 'test_next_state'
15
+ )
16
+ }
17
+
18
+ describe '#initialize' do
19
+ it { expect(tracker.instance_variable_get(:@activity)).to eq('test_activity') }
20
+ it { expect(tracker.instance_variable_get(:@actor)).to eq(actor) }
21
+ it { expect(tracker.instance_variable_get(:@target)).to eq(target) }
22
+ it { expect(tracker.instance_variable_get(:@referrer)).to eq('test_referrer') }
23
+ it { expect(tracker.instance_variable_get(:@session_id)).to eq('test_session_id') }
24
+ it { expect(tracker.instance_variable_get(:@search_keywords)).to eq('test_search_keywords') }
25
+ end
26
+
27
+ describe '#track' do
28
+ it 'should create PageEvent object' do
29
+ expect(tracker.track).to be_instance_of(Spree::PageEvent)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,37 @@
1
+ # encoding: UTF-8
2
+ Gem::Specification.new do |s|
3
+ s.platform = Gem::Platform::RUBY
4
+ s.name = 'spree_events_tracker'
5
+ s.version = '3.2.1'
6
+ s.summary = 'Spree Events Tracker is a spree extension used to track various user activities'
7
+ s.description = 'Track keywords search, checkout events, add to cart, remove from cart and other events.'
8
+ s.required_ruby_version = '>= 2.1.0'
9
+
10
+ s.author = ['Nimish Gupta', 'Tanmay Sinha', 'Nimish Mehta', "+ Vinsol Team"]
11
+ s.email = 'info@vinsol.com'
12
+ s.homepage = 'http://vinsol.com'
13
+ s.license = 'BSD-3'
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.require_path = 'lib'
18
+ s.requirements << 'none'
19
+
20
+ spree_version = '~> 3.2.0'
21
+
22
+ s.add_dependency 'spree_core', spree_version
23
+ s.add_development_dependency 'capybara', '~> 2.6'
24
+ s.add_development_dependency 'coffee-rails', '~> 4.2'
25
+ s.add_development_dependency 'database_cleaner', '~> 1.5.0'
26
+ s.add_development_dependency 'factory_girl', '~> 4.5'
27
+ s.add_development_dependency 'ffaker', '~> 2.2.0'
28
+ s.add_development_dependency 'rspec-activemodel-mocks', '~> 1.0.3'
29
+ s.add_development_dependency 'rspec-rails', '~> 3.4'
30
+ s.add_development_dependency 'sass-rails', '~> 5.0.0'
31
+ s.add_development_dependency 'selenium-webdriver', '~> 2.53.0'
32
+ s.add_development_dependency 'shoulda-matchers', '~> 3.1.1'
33
+ s.add_development_dependency 'simplecov', '~> 0.13.0'
34
+ s.add_development_dependency 'sqlite3', '~> 1.3.0'
35
+ s.add_development_dependency 'spree_backend', spree_version
36
+ s.add_development_dependency 'spree_frontend', spree_version
37
+ end
metadata ADDED
@@ -0,0 +1,303 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spree_events_tracker
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.2.1
5
+ platform: ruby
6
+ authors:
7
+ - Nimish Gupta
8
+ - Tanmay Sinha
9
+ - Nimish Mehta
10
+ - "+ Vinsol Team"
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2017-05-18 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: spree_core
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: 3.2.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: capybara
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '2.6'
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '2.6'
44
+ - !ruby/object:Gem::Dependency
45
+ name: coffee-rails
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '4.2'
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '4.2'
58
+ - !ruby/object:Gem::Dependency
59
+ name: database_cleaner
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: 1.5.0
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: 1.5.0
72
+ - !ruby/object:Gem::Dependency
73
+ name: factory_girl
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - "~>"
77
+ - !ruby/object:Gem::Version
78
+ version: '4.5'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '4.5'
86
+ - !ruby/object:Gem::Dependency
87
+ name: ffaker
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: 2.2.0
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: 2.2.0
100
+ - !ruby/object:Gem::Dependency
101
+ name: rspec-activemodel-mocks
102
+ requirement: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - "~>"
105
+ - !ruby/object:Gem::Version
106
+ version: 1.0.3
107
+ type: :development
108
+ prerelease: false
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: 1.0.3
114
+ - !ruby/object:Gem::Dependency
115
+ name: rspec-rails
116
+ requirement: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: '3.4'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '3.4'
128
+ - !ruby/object:Gem::Dependency
129
+ name: sass-rails
130
+ requirement: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: 5.0.0
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 5.0.0
142
+ - !ruby/object:Gem::Dependency
143
+ name: selenium-webdriver
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: 2.53.0
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: 2.53.0
156
+ - !ruby/object:Gem::Dependency
157
+ name: shoulda-matchers
158
+ requirement: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: 3.1.1
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: 3.1.1
170
+ - !ruby/object:Gem::Dependency
171
+ name: simplecov
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - "~>"
175
+ - !ruby/object:Gem::Version
176
+ version: 0.13.0
177
+ type: :development
178
+ prerelease: false
179
+ version_requirements: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: 0.13.0
184
+ - !ruby/object:Gem::Dependency
185
+ name: sqlite3
186
+ requirement: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - "~>"
189
+ - !ruby/object:Gem::Version
190
+ version: 1.3.0
191
+ type: :development
192
+ prerelease: false
193
+ version_requirements: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - "~>"
196
+ - !ruby/object:Gem::Version
197
+ version: 1.3.0
198
+ - !ruby/object:Gem::Dependency
199
+ name: spree_backend
200
+ requirement: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - "~>"
203
+ - !ruby/object:Gem::Version
204
+ version: 3.2.0
205
+ type: :development
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - "~>"
210
+ - !ruby/object:Gem::Version
211
+ version: 3.2.0
212
+ - !ruby/object:Gem::Dependency
213
+ name: spree_frontend
214
+ requirement: !ruby/object:Gem::Requirement
215
+ requirements:
216
+ - - "~>"
217
+ - !ruby/object:Gem::Version
218
+ version: 3.2.0
219
+ type: :development
220
+ prerelease: false
221
+ version_requirements: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - "~>"
224
+ - !ruby/object:Gem::Version
225
+ version: 3.2.0
226
+ description: Track keywords search, checkout events, add to cart, remove from cart
227
+ and other events.
228
+ email: info@vinsol.com
229
+ executables: []
230
+ extensions: []
231
+ extra_rdoc_files: []
232
+ files:
233
+ - ".gitignore"
234
+ - Gemfile
235
+ - LICENSE
236
+ - README.md
237
+ - Rakefile
238
+ - app/assets/javascripts/spree/backend/spree_events_tracker.js
239
+ - app/assets/javascripts/spree/frontend/spree_events_tracker.js
240
+ - app/assets/stylesheets/spree/backend/spree_events_tracker.css
241
+ - app/assets/stylesheets/spree/frontend/spree_events_tracker.css
242
+ - app/controllers/concerns/spree/checkout_event_tracker.rb
243
+ - app/controllers/concerns/spree/page_tracker.rb
244
+ - app/controllers/spree/checkout_controller_decorator.rb
245
+ - app/controllers/spree/home_controller_decorator.rb
246
+ - app/controllers/spree/orders_controller_decorator.rb
247
+ - app/controllers/spree/products_controller_decorator.rb
248
+ - app/controllers/spree/taxons_controller_decorator.rb
249
+ - app/models/concerns/spree/order_contents_decorator.rb
250
+ - app/models/spree/cart_event.rb
251
+ - app/models/spree/checkout_event.rb
252
+ - app/models/spree/page_event.rb
253
+ - app/trackers/spree/cart/event/tracker.rb
254
+ - app/trackers/spree/checkout/event/tracker.rb
255
+ - app/trackers/spree/event/tracker.rb
256
+ - app/trackers/spree/page/event/tracker.rb
257
+ - bin/rails
258
+ - config/locales/en.yml
259
+ - config/routes.rb
260
+ - db/migrate/20160313145434_create_spree_cart_events.rb
261
+ - db/migrate/20160314080710_create_spree_page_events.rb
262
+ - db/migrate/20160314080822_create_spree_checkout_events.rb
263
+ - lib/generators/spree_events_tracker/install/install_generator.rb
264
+ - lib/spree_events_tracker.rb
265
+ - lib/spree_events_tracker/engine.rb
266
+ - lib/spree_events_tracker/factories.rb
267
+ - spec/controllers/spree/checkout_controlller_decorator_spec.rb
268
+ - spec/controllers/spree/orders_controller_decorator_spec.rb
269
+ - spec/models/spree/cart_event_spec.rb
270
+ - spec/models/spree/checkout_event_spec.rb
271
+ - spec/models/spree/page_event_spec.rb
272
+ - spec/spec_helper.rb
273
+ - spec/trackers/spree/cart/event/tracker_spec.rb
274
+ - spec/trackers/spree/checkout/event/tracker_spec.rb
275
+ - spec/trackers/spree/event/tracker_spec.rb
276
+ - spec/trackers/spree/page/event/tracker_spec.rb
277
+ - spree_events_tracker.gemspec
278
+ homepage: http://vinsol.com
279
+ licenses:
280
+ - BSD-3
281
+ metadata: {}
282
+ post_install_message:
283
+ rdoc_options: []
284
+ require_paths:
285
+ - lib
286
+ required_ruby_version: !ruby/object:Gem::Requirement
287
+ requirements:
288
+ - - ">="
289
+ - !ruby/object:Gem::Version
290
+ version: 2.1.0
291
+ required_rubygems_version: !ruby/object:Gem::Requirement
292
+ requirements:
293
+ - - ">="
294
+ - !ruby/object:Gem::Version
295
+ version: '0'
296
+ requirements:
297
+ - none
298
+ rubyforge_project:
299
+ rubygems_version: 2.4.5.1
300
+ signing_key:
301
+ specification_version: 4
302
+ summary: Spree Events Tracker is a spree extension used to track various user activities
303
+ test_files: []