spree_analytics_trackers 1.0.1 → 2.1.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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/.bundle/config +2 -0
  3. data/.rubocop.yml +2 -0
  4. data/.travis.yml +30 -15
  5. data/Appraisals +3 -9
  6. data/LICENSE +1 -1
  7. data/README.md +7 -3
  8. data/app/assets/javascripts/spree/frontend/add_to_cart_analytics.js +50 -0
  9. data/app/assets/javascripts/spree/frontend/remove_from_cart_analytics.js +34 -0
  10. data/app/controllers/spree/admin/trackers_controller.rb +8 -0
  11. data/app/controllers/spree_analytics_trackers/checkout_controller_decorator.rb +11 -0
  12. data/app/controllers/spree_analytics_trackers/store_controller_decorator.rb +13 -0
  13. data/app/controllers/spree_analytics_trackers/user_confirmations_controller_decorator.rb +11 -0
  14. data/app/controllers/spree_analytics_trackers/user_passwords_controller_decorator.rb +11 -0
  15. data/app/controllers/spree_analytics_trackers/user_registrations_controller_decorator.rb +11 -0
  16. data/app/controllers/spree_analytics_trackers/user_sessions_controller_decorator.rb +11 -0
  17. data/app/helpers/spree/trackers_helper.rb +79 -16
  18. data/app/models/spree/tracker.rb +11 -5
  19. data/app/models/spree_analytics_trackers/user_decorator.rb +9 -0
  20. data/app/overrides/add_analytics_to_admin_sidebar.rb +2 -3
  21. data/app/overrides/add_cart_viewed_to_orders_edit.rb +1 -1
  22. data/app/overrides/add_checkout_step_viewed_to_checkout_edit.rb +11 -3
  23. data/app/overrides/add_google_analytics_page_view_to_spree_application.rb +10 -0
  24. data/app/overrides/add_google_analytics_to_spree_application.rb +4 -4
  25. data/app/overrides/add_google_purchase_to_orders_show.rb +1 -1
  26. data/app/overrides/add_product_list_filtered_to_taxons_show.rb +1 -1
  27. data/app/overrides/add_product_list_viewed_to_products_list.rb +1 -1
  28. data/app/overrides/add_product_viewed_to_products_show.rb +2 -2
  29. data/app/overrides/add_products_searched_to_products_list.rb +2 -2
  30. data/app/overrides/add_segment_initializer_to_layout.rb +3 -3
  31. data/app/overrides/add_segment_page_viewed_to_layout.rb +10 -0
  32. data/app/presenters/spree_analytics_trackers/base_presenter.rb +14 -0
  33. data/app/presenters/spree_analytics_trackers/segment/order_presenter.rb +32 -0
  34. data/app/presenters/spree_analytics_trackers/segment/product_presenter.rb +40 -0
  35. data/app/views/spree/admin/shared/_analytics_sidebar_menu.html.erb +3 -5
  36. data/app/views/spree/admin/trackers/_form.html.erb +13 -7
  37. data/app/views/spree/admin/trackers/index.html.erb +6 -8
  38. data/app/views/spree/shared/trackers/google_analytics/_checkout_step_viewed.js.erb +19 -0
  39. data/app/views/spree/shared/trackers/google_analytics/_initializer.js.erb +25 -0
  40. data/app/views/spree/shared/trackers/google_analytics/_page_viewed.js.erb +13 -0
  41. data/app/views/spree/shared/trackers/google_analytics/_purchase.js.erb +22 -0
  42. data/app/views/spree/shared/trackers/segment/_cart_viewed.js.erb +24 -19
  43. data/app/views/spree/shared/trackers/segment/_checkout_step_viewed.js.erb +20 -11
  44. data/app/views/spree/shared/trackers/segment/_initializer.js.erb +2 -3
  45. data/app/views/spree/shared/trackers/segment/_order_complete.js.erb +8 -45
  46. data/app/views/spree/shared/trackers/segment/_page_viewed.js.erb +7 -0
  47. data/app/views/spree/shared/trackers/segment/_product_list_filtered.js.erb +19 -28
  48. data/app/views/spree/shared/trackers/segment/_product_list_viewed.js.erb +17 -20
  49. data/app/views/spree/shared/trackers/segment/_product_viewed.js.erb +12 -6
  50. data/app/views/spree/shared/trackers/segment/_products_searched.js.erb +7 -9
  51. data/config/locales/en.yml +0 -2
  52. data/config/locales/zh-TW.yml +19 -0
  53. data/db/migrate/20200721163729_add_store_id_to_spree_trackers.rb +14 -0
  54. data/gemfiles/{spree_3_5.gemfile → spree_4_1.gemfile} +2 -2
  55. data/gemfiles/spree_master.gemfile +0 -1
  56. data/lib/generators/spree_analytics_trackers/install/install_generator.rb +8 -0
  57. data/lib/spree_analytics_trackers.rb +1 -0
  58. data/lib/spree_analytics_trackers/factories.rb +1 -0
  59. data/lib/spree_analytics_trackers/version.rb +3 -9
  60. data/spec/features/admin/configuration/analytics_tracker_spec.rb +18 -7
  61. data/spec/features/checkout_spec.rb +15 -0
  62. data/spec/features/products_spec.rb +315 -0
  63. data/spec/features/user_login_spec.rb +7 -0
  64. data/spec/features/user_password_recovery_spec.rb +7 -0
  65. data/spec/features/user_registration_spec.rb +7 -0
  66. data/spec/fixtures/thinking-cat.jpg +0 -0
  67. data/spec/models/spree/tracker_spec.rb +15 -0
  68. data/spec/presenters/spree_analytics_trackers/segment/order_presenter_spec.rb +34 -0
  69. data/spec/spec_helper.rb +7 -82
  70. data/spec/support/custom_products.rb +26 -0
  71. data/spree_analytics_trackers.gemspec +4 -17
  72. metadata +56 -212
  73. data/app/controllers/spree/store_controller_decorator.rb +0 -5
  74. data/app/models/spree/line_item_decorator.rb +0 -6
  75. data/app/models/spree/order_decorator.rb +0 -7
  76. data/app/models/spree/product_decorator.rb +0 -11
  77. data/app/models/spree/user_decorator.rb +0 -5
  78. data/app/overrides/add_google_checkout_to_checkout_edit.rb +0 -9
  79. data/app/overrides/add_product_added_to_orders_edit.rb +0 -10
  80. data/app/views/spree/shared/_google_add_items.html.erb +0 -13
  81. data/app/views/spree/shared/_google_analytics.html.erb +0 -18
  82. data/app/views/spree/shared/_google_checkout.html.erb +0 -14
  83. data/app/views/spree/shared/_google_purchase.html.erb +0 -19
  84. data/app/views/spree/shared/trackers/segment/_product_added.js.erb +0 -9
  85. data/gemfiles/spree_3_7.gemfile +0 -9
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Visiting Login page', type: :feature, js: true do
4
+ it 'is available' do
5
+ expect { visit spree.login_path }.not_to raise_error
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Visiting Registation page', type: :feature, js: true do
4
+ it 'is available' do
5
+ expect { visit spree.recover_password_path }.not_to raise_error
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Visiting Registation page', type: :feature, js: true do
4
+ it 'is available' do
5
+ expect { visit spree.signup_path }.not_to raise_error
6
+ end
7
+ end
Binary file
@@ -13,5 +13,20 @@ describe Spree::Tracker, type: :model do
13
13
  tracker.clear_cache
14
14
  expect(Spree::Tracker.current).to be_nil
15
15
  end
16
+
17
+ context 'multi-store' do
18
+ let(:default_store) { Spree::Store.default }
19
+ let(:euro_store) { create(:store, code: :eu, name: 'eurozone') }
20
+ let!(:default_tracker) { create(:tracker, store: default_store, engine: :google_analytics) }
21
+ let!(:euro_tracker) { create(:tracker, store: euro_store, engine: :google_analytics) }
22
+
23
+ it 'returns default tracker from default store' do
24
+ expect(Spree::Tracker.current).to eq(default_tracker)
25
+ end
26
+
27
+ it 'returns tracker from a specified store' do
28
+ expect(Spree::Tracker.current(:google_analytics, euro_store)).to eq(euro_tracker)
29
+ end
30
+ end
16
31
  end
17
32
  end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe SpreeAnalyticsTrackers::Segment::OrderPresenter, type: :presenter do
4
+ let(:order) { create(:order_with_line_items) }
5
+
6
+ subject { described_class.new(order) }
7
+
8
+ describe '#to_json' do
9
+ let(:result) do
10
+ {
11
+ order_id: order.number.to_s,
12
+ total: order.total&.to_f,
13
+ shipping: order.shipment_total&.to_f,
14
+ tax: order.additional_tax_total&.to_f,
15
+ discount: order.promo_total&.to_f,
16
+ coupon: order.promo_code,
17
+ currency: order.currency,
18
+ products: order.line_items.map{ |line_item|
19
+ {
20
+ product_id: line_item.product_id&.to_s,
21
+ sku: line_item.sku&.to_s,
22
+ name: line_item.name,
23
+ price: line_item.price&.to_f,
24
+ quantity: line_item.quantity
25
+ }
26
+ }
27
+ }.to_json
28
+ end
29
+
30
+ it 'returns serialized object' do
31
+ expect(subject.to_json).to eq(result)
32
+ end
33
+ end
34
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,93 +1,18 @@
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
1
  # Configure Rails Environment
14
2
  ENV['RAILS_ENV'] = 'test'
15
3
 
16
- require File.expand_path('../dummy/config/environment.rb', __FILE__)
4
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
17
5
 
18
- require 'rspec/rails'
19
- require 'database_cleaner'
20
- require 'ffaker'
6
+ require 'spree_dev_tools/rspec/spec_helper'
21
7
 
22
8
  # Requires supporting ruby files with custom matchers and macros, etc,
23
9
  # in spec/support/ and its subdirectories.
24
- Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
25
-
26
- # Requires factories and other useful helpers defined in spree_core.
27
- require 'spree/testing_support/authorization_helpers'
28
- require 'spree/testing_support/capybara_ext'
29
- require 'spree/testing_support/controller_requests'
30
- require 'spree/testing_support/factories'
31
- require 'spree/testing_support/url_helpers'
10
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].sort.each { |f| require f }
32
11
 
33
- # Requires factories defined in lib/spree_analytics_trackers/factories.rb
34
12
  require 'spree_analytics_trackers/factories'
35
13
 
36
- RSpec.configure do |config|
37
- config.include FactoryBot::Syntax::Methods
38
-
39
- # Infer an example group's spec type from the file location.
40
- config.infer_spec_type_from_file_location!
41
-
42
- # == URL Helpers
43
- #
44
- # Allows access to Spree's routes in specs:
45
- #
46
- # visit spree.admin_path
47
- # current_path.should eql(spree.products_path)
48
- config.include Spree::TestingSupport::UrlHelpers
49
-
50
- # == Requests support
51
- #
52
- # Adds convenient methods to request Spree's controllers
53
- # spree_get :index
54
- config.include Spree::TestingSupport::ControllerRequests, type: :controller
55
-
56
- # == Mock Framework
57
- #
58
- # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
59
- #
60
- # config.mock_with :mocha
61
- # config.mock_with :flexmock
62
- # config.mock_with :rr
63
- config.mock_with :rspec
64
- config.color = true
14
+ require 'spree/testing_support/image_helpers'
65
15
 
66
- # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
67
- config.fixture_path = "#{::Rails.root}/spec/fixtures"
68
-
69
- # Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner
70
- # to cleanup after each test instead. Without transactional fixtures set to false the records created
71
- # to setup a test will be unavailable to the browser, which runs under a separate server instance.
72
- config.use_transactional_fixtures = false
73
-
74
- # Ensure Suite is set to use transactions for speed.
75
- config.before :suite do
76
- DatabaseCleaner.strategy = :transaction
77
- DatabaseCleaner.clean_with :truncation
78
- end
79
-
80
- # Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
81
- config.before :each do
82
- DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction
83
- DatabaseCleaner.start
84
- end
85
-
86
- # After each spec clean the database.
87
- config.after :each do
88
- DatabaseCleaner.clean
89
- end
90
-
91
- config.fail_fast = ENV['FAIL_FAST'] || false
92
- config.order = "random"
93
- end
16
+ RSpec.configure do |config|
17
+ config.include Spree::TestingSupport::ImageHelpers
18
+ end
@@ -0,0 +1,26 @@
1
+ shared_context 'custom products' do
2
+ before do
3
+ taxonomy = FactoryBot.create(:taxonomy, name: 'Categories')
4
+ root = taxonomy.root
5
+ clothing_taxon = FactoryBot.create(:taxon, name: 'Clothing', parent_id: root.id)
6
+ trending_taxon = FactoryBot.create(:taxon, name: 'Trending')
7
+ bags_taxon = FactoryBot.create(:taxon, name: 'Bags', parent_id: root.id)
8
+ mugs_taxon = FactoryBot.create(:taxon, name: 'Mugs', parent_id: root.id)
9
+
10
+ taxonomy = FactoryBot.create(:taxonomy, name: 'Brands')
11
+ root = taxonomy.root
12
+ apache_taxon = FactoryBot.create(:taxon, name: 'Apache', parent_id: root.id)
13
+ rails_taxon = FactoryBot.create(:taxon, name: 'Ruby on Rails', parent_id: root.id)
14
+ ruby_taxon = FactoryBot.create(:taxon, name: 'Ruby', parent_id: root.id)
15
+
16
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Ringer T-Shirt', price: '159.99', taxons: [rails_taxon, clothing_taxon])
17
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Mug', price: '55.99', taxons: [rails_taxon, mugs_taxon, trending_taxon])
18
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Tote', price: '55.99', taxons: [rails_taxon, bags_taxon, trending_taxon])
19
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Bag', price: '102.99', taxons: [rails_taxon, bags_taxon])
20
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Baseball Jersey', price: '190.99', taxons: [rails_taxon, clothing_taxon])
21
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Stein', price: '156.99', taxons: [rails_taxon, mugs_taxon])
22
+ FactoryBot.create(:custom_product, name: 'Ruby on Rails Jr. Spaghetti', price: '190.99', taxons: [rails_taxon, clothing_taxon])
23
+ FactoryBot.create(:custom_product, name: 'Ruby Baseball Jersey', price: '250.99', taxons: [ruby_taxon, clothing_taxon])
24
+ FactoryBot.create(:custom_product, name: 'Apache Baseball Jersey', price: '250.99', taxons: [apache_taxon, clothing_taxon])
25
+ end
26
+ end
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.version = SpreeAnalyticsTrackers.version
10
10
  s.summary = 'Adds analytics trackers functionality to Spree'
11
11
  s.description = 'Supports Google Analytics '
12
- s.required_ruby_version = '>= 2.2.7'
12
+ s.required_ruby_version = '>= 2.5.0'
13
13
 
14
14
  s.author = 'Spark Solutions'
15
15
  s.email = 'we@sparksolutions.co'
@@ -21,24 +21,11 @@ Gem::Specification.new do |s|
21
21
  s.require_path = 'lib'
22
22
  s.requirements << 'none'
23
23
 
24
- spree_version = '>= 3.1.0', '< 5.0'
24
+ spree_version = '>= 4.1.0', '< 5.0'
25
25
  s.add_dependency 'spree_core', spree_version
26
26
  s.add_dependency 'spree_backend', spree_version
27
27
  s.add_dependency 'spree_extension'
28
+ s.add_dependency 'deface', '~> 1.0'
28
29
 
29
- s.add_development_dependency 'appraisal'
30
- s.add_development_dependency 'capybara'
31
- s.add_development_dependency 'capybara-screenshot'
32
- s.add_development_dependency 'chromedriver-helper'
33
- s.add_development_dependency 'coffee-rails'
34
- s.add_development_dependency 'database_cleaner'
35
- s.add_development_dependency 'factory_bot', '~> 4.7'
36
- s.add_development_dependency 'ffaker'
37
- s.add_development_dependency 'mysql2'
38
- s.add_development_dependency 'pg'
39
- s.add_development_dependency 'rspec-rails'
40
- s.add_development_dependency 'sass-rails'
41
- s.add_development_dependency 'selenium-webdriver'
42
- s.add_development_dependency 'simplecov'
43
- s.add_development_dependency 'sqlite3', '~> 1.3.6'
30
+ s.add_development_dependency 'spree_dev_tools'
44
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_analytics_trackers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Spark Solutions
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-02 00:00:00.000000000 Z
11
+ date: 2021-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.1.0
19
+ version: 4.1.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '5.0'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 3.1.0
29
+ version: 4.1.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '5.0'
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 3.1.0
39
+ version: 4.1.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '5.0'
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 3.1.0
49
+ version: 4.1.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '5.0'
@@ -65,105 +65,21 @@ dependencies:
65
65
  - !ruby/object:Gem::Version
66
66
  version: '0'
67
67
  - !ruby/object:Gem::Dependency
68
- name: appraisal
69
- requirement: !ruby/object:Gem::Requirement
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- version: '0'
74
- type: :development
75
- prerelease: false
76
- version_requirements: !ruby/object:Gem::Requirement
77
- requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: '0'
81
- - !ruby/object:Gem::Dependency
82
- name: capybara
83
- requirement: !ruby/object:Gem::Requirement
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- version: '0'
88
- type: :development
89
- prerelease: false
90
- version_requirements: !ruby/object:Gem::Requirement
91
- requirements:
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: '0'
95
- - !ruby/object:Gem::Dependency
96
- name: capybara-screenshot
97
- requirement: !ruby/object:Gem::Requirement
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: '0'
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- requirements:
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- version: '0'
109
- - !ruby/object:Gem::Dependency
110
- name: chromedriver-helper
111
- requirement: !ruby/object:Gem::Requirement
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: '0'
116
- type: :development
117
- prerelease: false
118
- version_requirements: !ruby/object:Gem::Requirement
119
- requirements:
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- version: '0'
123
- - !ruby/object:Gem::Dependency
124
- name: coffee-rails
125
- requirement: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: '0'
130
- type: :development
131
- prerelease: false
132
- version_requirements: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- version: '0'
137
- - !ruby/object:Gem::Dependency
138
- name: database_cleaner
139
- requirement: !ruby/object:Gem::Requirement
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- version: '0'
144
- type: :development
145
- prerelease: false
146
- version_requirements: !ruby/object:Gem::Requirement
147
- requirements:
148
- - - ">="
149
- - !ruby/object:Gem::Version
150
- version: '0'
151
- - !ruby/object:Gem::Dependency
152
- name: factory_bot
68
+ name: deface
153
69
  requirement: !ruby/object:Gem::Requirement
154
70
  requirements:
155
71
  - - "~>"
156
72
  - !ruby/object:Gem::Version
157
- version: '4.7'
158
- type: :development
73
+ version: '1.0'
74
+ type: :runtime
159
75
  prerelease: false
160
76
  version_requirements: !ruby/object:Gem::Requirement
161
77
  requirements:
162
78
  - - "~>"
163
79
  - !ruby/object:Gem::Version
164
- version: '4.7'
80
+ version: '1.0'
165
81
  - !ruby/object:Gem::Dependency
166
- name: ffaker
82
+ name: spree_dev_tools
167
83
  requirement: !ruby/object:Gem::Requirement
168
84
  requirements:
169
85
  - - ">="
@@ -176,164 +92,76 @@ dependencies:
176
92
  - - ">="
177
93
  - !ruby/object:Gem::Version
178
94
  version: '0'
179
- - !ruby/object:Gem::Dependency
180
- name: mysql2
181
- requirement: !ruby/object:Gem::Requirement
182
- requirements:
183
- - - ">="
184
- - !ruby/object:Gem::Version
185
- version: '0'
186
- type: :development
187
- prerelease: false
188
- version_requirements: !ruby/object:Gem::Requirement
189
- requirements:
190
- - - ">="
191
- - !ruby/object:Gem::Version
192
- version: '0'
193
- - !ruby/object:Gem::Dependency
194
- name: pg
195
- requirement: !ruby/object:Gem::Requirement
196
- requirements:
197
- - - ">="
198
- - !ruby/object:Gem::Version
199
- version: '0'
200
- type: :development
201
- prerelease: false
202
- version_requirements: !ruby/object:Gem::Requirement
203
- requirements:
204
- - - ">="
205
- - !ruby/object:Gem::Version
206
- version: '0'
207
- - !ruby/object:Gem::Dependency
208
- name: rspec-rails
209
- requirement: !ruby/object:Gem::Requirement
210
- requirements:
211
- - - ">="
212
- - !ruby/object:Gem::Version
213
- version: '0'
214
- type: :development
215
- prerelease: false
216
- version_requirements: !ruby/object:Gem::Requirement
217
- requirements:
218
- - - ">="
219
- - !ruby/object:Gem::Version
220
- version: '0'
221
- - !ruby/object:Gem::Dependency
222
- name: sass-rails
223
- requirement: !ruby/object:Gem::Requirement
224
- requirements:
225
- - - ">="
226
- - !ruby/object:Gem::Version
227
- version: '0'
228
- type: :development
229
- prerelease: false
230
- version_requirements: !ruby/object:Gem::Requirement
231
- requirements:
232
- - - ">="
233
- - !ruby/object:Gem::Version
234
- version: '0'
235
- - !ruby/object:Gem::Dependency
236
- name: selenium-webdriver
237
- requirement: !ruby/object:Gem::Requirement
238
- requirements:
239
- - - ">="
240
- - !ruby/object:Gem::Version
241
- version: '0'
242
- type: :development
243
- prerelease: false
244
- version_requirements: !ruby/object:Gem::Requirement
245
- requirements:
246
- - - ">="
247
- - !ruby/object:Gem::Version
248
- version: '0'
249
- - !ruby/object:Gem::Dependency
250
- name: simplecov
251
- requirement: !ruby/object:Gem::Requirement
252
- requirements:
253
- - - ">="
254
- - !ruby/object:Gem::Version
255
- version: '0'
256
- type: :development
257
- prerelease: false
258
- version_requirements: !ruby/object:Gem::Requirement
259
- requirements:
260
- - - ">="
261
- - !ruby/object:Gem::Version
262
- version: '0'
263
- - !ruby/object:Gem::Dependency
264
- name: sqlite3
265
- requirement: !ruby/object:Gem::Requirement
266
- requirements:
267
- - - "~>"
268
- - !ruby/object:Gem::Version
269
- version: 1.3.6
270
- type: :development
271
- prerelease: false
272
- version_requirements: !ruby/object:Gem::Requirement
273
- requirements:
274
- - - "~>"
275
- - !ruby/object:Gem::Version
276
- version: 1.3.6
277
95
  description: 'Supports Google Analytics '
278
96
  email: we@sparksolutions.co
279
97
  executables: []
280
98
  extensions: []
281
99
  extra_rdoc_files: []
282
100
  files:
101
+ - ".bundle/config"
283
102
  - ".gitignore"
284
103
  - ".rspec"
104
+ - ".rubocop.yml"
285
105
  - ".travis.yml"
286
106
  - Appraisals
287
107
  - Gemfile
288
108
  - LICENSE
289
109
  - README.md
290
110
  - Rakefile
111
+ - app/assets/javascripts/spree/frontend/add_to_cart_analytics.js
112
+ - app/assets/javascripts/spree/frontend/remove_from_cart_analytics.js
291
113
  - app/controllers/spree/admin/trackers_controller.rb
292
- - app/controllers/spree/store_controller_decorator.rb
114
+ - app/controllers/spree_analytics_trackers/checkout_controller_decorator.rb
115
+ - app/controllers/spree_analytics_trackers/store_controller_decorator.rb
116
+ - app/controllers/spree_analytics_trackers/user_confirmations_controller_decorator.rb
117
+ - app/controllers/spree_analytics_trackers/user_passwords_controller_decorator.rb
118
+ - app/controllers/spree_analytics_trackers/user_registrations_controller_decorator.rb
119
+ - app/controllers/spree_analytics_trackers/user_sessions_controller_decorator.rb
293
120
  - app/helpers/spree/trackers_helper.rb
294
- - app/models/spree/line_item_decorator.rb
295
- - app/models/spree/order_decorator.rb
296
- - app/models/spree/product_decorator.rb
297
121
  - app/models/spree/tracker.rb
298
- - app/models/spree/user_decorator.rb
122
+ - app/models/spree_analytics_trackers/user_decorator.rb
299
123
  - app/overrides/add_analytics_to_admin_sidebar.rb
300
124
  - app/overrides/add_cart_viewed_to_orders_edit.rb
301
125
  - app/overrides/add_checkout_step_viewed_to_checkout_edit.rb
126
+ - app/overrides/add_google_analytics_page_view_to_spree_application.rb
302
127
  - app/overrides/add_google_analytics_to_spree_application.rb
303
- - app/overrides/add_google_checkout_to_checkout_edit.rb
304
128
  - app/overrides/add_google_purchase_to_orders_show.rb
305
129
  - app/overrides/add_order_complete_to_orders_show.rb
306
- - app/overrides/add_product_added_to_orders_edit.rb
307
130
  - app/overrides/add_product_list_filtered_to_taxons_show.rb
308
131
  - app/overrides/add_product_list_viewed_to_products_list.rb
309
132
  - app/overrides/add_product_viewed_to_products_show.rb
310
133
  - app/overrides/add_products_searched_to_products_list.rb
311
134
  - app/overrides/add_segment_initializer_to_layout.rb
135
+ - app/overrides/add_segment_page_viewed_to_layout.rb
136
+ - app/presenters/spree_analytics_trackers/base_presenter.rb
137
+ - app/presenters/spree_analytics_trackers/segment/order_presenter.rb
138
+ - app/presenters/spree_analytics_trackers/segment/product_presenter.rb
312
139
  - app/views/spree/admin/shared/_analytics_sidebar_menu.html.erb
313
140
  - app/views/spree/admin/trackers/_form.html.erb
314
141
  - app/views/spree/admin/trackers/edit.html.erb
315
142
  - app/views/spree/admin/trackers/index.html.erb
316
143
  - app/views/spree/admin/trackers/new.html.erb
317
- - app/views/spree/shared/_google_add_items.html.erb
318
- - app/views/spree/shared/_google_analytics.html.erb
319
- - app/views/spree/shared/_google_checkout.html.erb
320
- - app/views/spree/shared/_google_purchase.html.erb
144
+ - app/views/spree/shared/trackers/google_analytics/_checkout_step_viewed.js.erb
145
+ - app/views/spree/shared/trackers/google_analytics/_initializer.js.erb
146
+ - app/views/spree/shared/trackers/google_analytics/_page_viewed.js.erb
147
+ - app/views/spree/shared/trackers/google_analytics/_purchase.js.erb
321
148
  - app/views/spree/shared/trackers/segment/_cart_viewed.js.erb
322
149
  - app/views/spree/shared/trackers/segment/_checkout_step_viewed.js.erb
323
150
  - app/views/spree/shared/trackers/segment/_initializer.js.erb
324
151
  - app/views/spree/shared/trackers/segment/_order_complete.js.erb
325
- - app/views/spree/shared/trackers/segment/_product_added.js.erb
152
+ - app/views/spree/shared/trackers/segment/_page_viewed.js.erb
326
153
  - app/views/spree/shared/trackers/segment/_product_list_filtered.js.erb
327
154
  - app/views/spree/shared/trackers/segment/_product_list_viewed.js.erb
328
155
  - app/views/spree/shared/trackers/segment/_product_viewed.js.erb
329
156
  - app/views/spree/shared/trackers/segment/_products_searched.js.erb
330
157
  - bin/rails
331
158
  - config/locales/en.yml
159
+ - config/locales/zh-TW.yml
332
160
  - config/routes.rb
333
161
  - db/migrate/20171013160337_create_spree_trackers.rb
162
+ - db/migrate/20200721163729_add_store_id_to_spree_trackers.rb
334
163
  - gemfiles/.bundle/config
335
- - gemfiles/spree_3_5.gemfile
336
- - gemfiles/spree_3_7.gemfile
164
+ - gemfiles/spree_4_1.gemfile
337
165
  - gemfiles/spree_master.gemfile
338
166
  - lib/generators/spree_analytics_trackers/install/install_generator.rb
339
167
  - lib/spree_analytics_trackers.rb
@@ -341,14 +169,22 @@ files:
341
169
  - lib/spree_analytics_trackers/factories.rb
342
170
  - lib/spree_analytics_trackers/version.rb
343
171
  - spec/features/admin/configuration/analytics_tracker_spec.rb
172
+ - spec/features/checkout_spec.rb
173
+ - spec/features/products_spec.rb
174
+ - spec/features/user_login_spec.rb
175
+ - spec/features/user_password_recovery_spec.rb
176
+ - spec/features/user_registration_spec.rb
177
+ - spec/fixtures/thinking-cat.jpg
344
178
  - spec/models/spree/tracker_spec.rb
179
+ - spec/presenters/spree_analytics_trackers/segment/order_presenter_spec.rb
345
180
  - spec/spec_helper.rb
181
+ - spec/support/custom_products.rb
346
182
  - spree_analytics_trackers.gemspec
347
183
  homepage: https://github.com/spree-contrib/spree_analytics_trackers
348
184
  licenses:
349
185
  - BSD-3-Clause
350
186
  metadata: {}
351
- post_install_message:
187
+ post_install_message:
352
188
  rdoc_options: []
353
189
  require_paths:
354
190
  - lib
@@ -356,7 +192,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
356
192
  requirements:
357
193
  - - ">="
358
194
  - !ruby/object:Gem::Version
359
- version: 2.2.7
195
+ version: 2.5.0
360
196
  required_rubygems_version: !ruby/object:Gem::Requirement
361
197
  requirements:
362
198
  - - ">="
@@ -364,11 +200,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
364
200
  version: '0'
365
201
  requirements:
366
202
  - none
367
- rubygems_version: 3.0.2
368
- signing_key:
203
+ rubygems_version: 3.1.4
204
+ signing_key:
369
205
  specification_version: 4
370
206
  summary: Adds analytics trackers functionality to Spree
371
207
  test_files:
372
208
  - spec/features/admin/configuration/analytics_tracker_spec.rb
209
+ - spec/features/checkout_spec.rb
210
+ - spec/features/products_spec.rb
211
+ - spec/features/user_login_spec.rb
212
+ - spec/features/user_password_recovery_spec.rb
213
+ - spec/features/user_registration_spec.rb
214
+ - spec/fixtures/thinking-cat.jpg
373
215
  - spec/models/spree/tracker_spec.rb
216
+ - spec/presenters/spree_analytics_trackers/segment/order_presenter_spec.rb
374
217
  - spec/spec_helper.rb
218
+ - spec/support/custom_products.rb