solidus_trackers 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +40 -0
  3. data/Rakefile +30 -0
  4. data/app/assets/javascripts/spree/backend/solidus_trackers.js +2 -0
  5. data/app/assets/javascripts/spree/frontend/solidus_trackers.js +2 -0
  6. data/app/assets/stylesheets/spree/backend/solidus_trackers.css +4 -0
  7. data/app/assets/stylesheets/spree/frontend/solidus_trackers.css +4 -0
  8. data/app/controllers/spree/admin/trackers_controller.rb +2 -0
  9. data/app/models/spree/permission_sets/tracker_display.rb +9 -0
  10. data/app/models/spree/permission_sets/tracker_management.rb +9 -0
  11. data/app/models/spree/tracker.rb +19 -0
  12. data/app/overrides/decorate_admin_configurations_index.rb +7 -0
  13. data/app/overrides/decorate_spree_application.rb +7 -0
  14. data/app/views/spree/admin/trackers/_form.html.erb +32 -0
  15. data/app/views/spree/admin/trackers/edit.html.erb +19 -0
  16. data/app/views/spree/admin/trackers/index.html.erb +56 -0
  17. data/app/views/spree/admin/trackers/new.html.erb +18 -0
  18. data/app/views/spree/shared/_google_analytics.html.erb +36 -0
  19. data/app/views/spree/shared/_tracker_sidebar_entry.html.erb +3 -0
  20. data/config/locales/en.yml +5 -0
  21. data/config/routes.rb +5 -0
  22. data/db/migrate/20160906231452_create_trackers.rb +13 -0
  23. data/db/migrate/20160920231000_add_store_to_tracker.rb +17 -0
  24. data/lib/generators/solidus_trackers/install/install_generator.rb +30 -0
  25. data/lib/solidus_trackers.rb +2 -0
  26. data/lib/solidus_trackers/engine.rb +20 -0
  27. data/lib/solidus_trackers/factories.rb +6 -0
  28. data/lib/solidus_trackers/version.rb +3 -0
  29. metadata +244 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5b7a0f480c282d319eb7dc00f41e4e84ac53cae7
4
+ data.tar.gz: d53c602fd20d8d44e5cd9db25d022a5bfc3ef751
5
+ SHA512:
6
+ metadata.gz: d2ccf4f6e55ca4d55007556ce88b4ba50d224f8ea9e6247d39f172534131b3400b9e11d18652149e20c3d6bce44c4c1a15a4ac2da7d7a53fc0b06b43b4f75871
7
+ data.tar.gz: 6f10cdee4452ae915956ab7bb2d47d7d0cda954cd5bff8811c4483a6192f165da8770e214db5cef5a1f11aac293f9c3e2b09b1a1c8b6acba0020c7739c75c717
@@ -0,0 +1,40 @@
1
+ Solidus Trackers
2
+ ==============
3
+
4
+ [![Build Status](https://travis-ci.org/solidusio-contrib/solidus_trackers.svg?branch=master)](https://travis-ci.org/solidusio-contrib/solidus_trackers)
5
+
6
+ Tracker implementation for Solidus.
7
+ - Allows creation of trackers from the admin configuration panel
8
+
9
+ Installation
10
+ ------------
11
+
12
+ Add solidus_trackers to your Gemfile:
13
+
14
+ ```ruby
15
+ gem 'solidus_trackers'
16
+ ```
17
+
18
+ Bundle your dependencies and run the installation generator:
19
+
20
+ ```shell
21
+ bundle
22
+ bundle exec rails g solidus_trackers:install
23
+ ```
24
+
25
+ Testing
26
+ -------
27
+
28
+ First bundle your dependencies, then run `rake`. `rake` will default to building the dummy app if it does not exist, then it will run specs, and [Rubocop](https://github.com/bbatsov/rubocop) static code analysis. The dummy app can be regenerated by using `rake test_app`.
29
+
30
+ ```shell
31
+ bundle
32
+ bundle exec rake
33
+ ```
34
+
35
+ When testing your applications integration with this extension you may use it's factories.
36
+ Simply add this require statement to your spec_helper:
37
+
38
+ ```ruby
39
+ require 'solidus_trackers/factories'
40
+ ```
@@ -0,0 +1,30 @@
1
+ require 'bundler'
2
+
3
+ Bundler::GemHelper.install_tasks
4
+
5
+ begin
6
+ require 'spree/testing_support/extension_rake'
7
+ require 'rubocop/rake_task'
8
+ require 'rspec/core/rake_task'
9
+
10
+ RSpec::Core::RakeTask.new(:spec)
11
+
12
+ RuboCop::RakeTask.new
13
+
14
+ task default: %i(first_run rubocop spec)
15
+ rescue LoadError
16
+ # no rspec available
17
+ end
18
+
19
+ task :first_run do
20
+ if Dir['spec/dummy'].empty?
21
+ Rake::Task[:test_app].invoke
22
+ Dir.chdir('../../')
23
+ end
24
+ end
25
+
26
+ desc 'Generates a dummy app for testing'
27
+ task :test_app do
28
+ ENV['LIB_NAME'] = 'solidus_trackers'
29
+ Rake::Task['extension:test_app'].invoke
30
+ end
@@ -0,0 +1,2 @@
1
+ // Placeholder manifest file.
2
+ // the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/backend/all.js'
@@ -0,0 +1,2 @@
1
+ // Placeholder manifest file.
2
+ // the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/frontend/all.js'
@@ -0,0 +1,4 @@
1
+ /*
2
+ Placeholder manifest file.
3
+ the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/backend/all.css'
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Placeholder manifest file.
3
+ the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/frontend/all.css'
4
+ */
@@ -0,0 +1,2 @@
1
+ class Spree::Admin::TrackersController < Spree::Admin::ResourceController
2
+ end
@@ -0,0 +1,9 @@
1
+ module Spree
2
+ module PermissionSets
3
+ class TrackerDisplay < PermissionSets::Base
4
+ def activate!
5
+ can [:display, :admin], Spree::Tracker
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Spree
2
+ module PermissionSets
3
+ class TrackerManagement < PermissionSets::Base
4
+ def activate!
5
+ can :manage, Spree::Tracker
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ class Spree::Tracker < ActiveRecord::Base
2
+ belongs_to :store
3
+
4
+ def self.current(store)
5
+ if store.is_a?(Spree::Store)
6
+ Spree::Tracker.where(active: true, store_id: store).first
7
+ else
8
+ # TODO: Remove in 2.0
9
+ ActiveSupport::Deprecation.warn <<-EOS.squish, caller
10
+ Calling Spree::Tracker.current with a string is DEPRECATED. Instead
11
+ pass it an instance of Spree::Store.
12
+ EOS
13
+ Spree::Tracker.where(active: true).joins(:store).where(
14
+ "spree_stores.code = ? OR spree_stores.url LIKE ?",
15
+ store, "%#{store}%"
16
+ ).first
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,7 @@
1
+ Deface::Override.new(
2
+ virtual_path: "spree/admin/shared/_configuration_menu",
3
+ name: "tracker_admin_configurations_menu",
4
+ insert_bottom: "[data-hook='admin_configurations_sidebar_menu']",
5
+ disabled: false,
6
+ partial: "spree/shared/tracker_sidebar_entry"
7
+ )
@@ -0,0 +1,7 @@
1
+ Deface::Override.new(
2
+ virtual_path: "spree/layouts/spree_application",
3
+ name: "google_analytics_partial",
4
+ insert_bottom: "[data-hook='body']",
5
+ disabled: false,
6
+ partial: "spree/shared/google_analytics"
7
+ )
@@ -0,0 +1,32 @@
1
+ <div class="container">
2
+ <div data-hook="admin_tracker_form_fields" class="row">
3
+ <div class="col-md-3">
4
+ <div data-hook="analytics_id" class="field">
5
+ <%= f.label :analytics_id %>
6
+ <%= f.text_field :analytics_id, :class => 'fullwidth' %>
7
+ </div>
8
+ </div>
9
+ <div class="col-md-3">
10
+ <div data-hook="active" class="field">
11
+ <%= f.label :active %>
12
+ <ul>
13
+ <li>
14
+ <%= radio_button(:tracker, :active, true) %>
15
+ <%= label_tag :tracker_active_true, Spree.t(:say_yes) %>
16
+ </li>
17
+ <li>
18
+ <%= radio_button(:tracker, :active, false) %>
19
+ <%= label_tag :tracker_active_false, Spree.t(:say_no) %>
20
+ </li>
21
+ </ul>
22
+ </div>
23
+ </div>
24
+ <div class="col-md-3">
25
+ <div data-hook="store_select" class="field">
26
+ <%= f.label :store %>
27
+ <div class="clear"></div>
28
+ <%= collection_select(:tracker, :store_id, Spree::Store.all, :id, :name, {}) %>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </div>
@@ -0,0 +1,19 @@
1
+ <%= render 'spree/admin/shared/general_tabs' %>
2
+
3
+ <% admin_breadcrumb(Spree.t(:settings)) %>
4
+ <% admin_breadcrumb(Spree.t(:general_settings)) %>
5
+ <% admin_breadcrumb(link_to plural_resource_name(Spree::Tracker), spree.admin_trackers_path) %>
6
+ <% admin_breadcrumb(@tracker.analytics_id) %>
7
+
8
+
9
+ <% content_for :page_actions do %>
10
+ <% end %>
11
+
12
+ <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @tracker } %>
13
+
14
+ <%= form_for [:admin, @tracker] do |f| %>
15
+ <fieldset class="no-border-top">
16
+ <%= render :partial => 'form', :locals => { :f => f } %>
17
+ <%= render :partial => 'spree/admin/shared/edit_resource_links' %>
18
+ </fieldset>
19
+ <% end %>
@@ -0,0 +1,56 @@
1
+ <%= render 'spree/admin/shared/general_tabs' %>
2
+
3
+ <% admin_breadcrumb(Spree.t(:settings)) %>
4
+ <% admin_breadcrumb(Spree.t(:general_settings)) %>
5
+ <% admin_breadcrumb(plural_resource_name(Spree::Tracker)) %>
6
+
7
+ <% content_for :page_actions do %>
8
+ <% if can?(:create, Spree::Tracker) %>
9
+ <li>
10
+ <%= button_link_to Spree.t(:new_tracker), new_object_url, :id => 'admin_new_tracker_link' %>
11
+ </li>
12
+ <% end %>
13
+ <% end %>
14
+
15
+ <% if @trackers.any? %>
16
+ <table class="index">
17
+ <colgroup>
18
+ <col style="width: 30%">
19
+ <col style="width: 40%">
20
+ <col style="width: 15%">
21
+ <col style="width: 15%">
22
+ </colgroup>
23
+ <thead>
24
+ <tr data-hook="admin_trackers_index_headers">
25
+ <th><%= Spree::Tracker.human_attribute_name(:analytics_id) %></th>
26
+ <th><%= Spree::Tracker.human_attribute_name(:active) %></th>
27
+ <th><%= Spree.t(:store) %></th>
28
+ <th class="actions"></th>
29
+ </tr>
30
+ </thead>
31
+ <tbody>
32
+ <% @trackers.each do |tracker|%>
33
+ <tr id="<%= spree_dom_id tracker %>" data-hook="admin_trackers_index_rows" class="<%= cycle('odd', 'even')%>">
34
+ <td class="align-center"><%= tracker.analytics_id %></td>
35
+ <td class="align-center"><%= tracker.active ? Spree.t(:say_yes) : Spree.t(:say_no) %></td>
36
+ <td><%= tracker.store.name %></td>
37
+ <td class="actions">
38
+ <% if can?(:update, tracker) %>
39
+ <%= link_to_edit tracker, :no_text => true %>
40
+ <% end %>
41
+
42
+ <% if can?(:destroy, tracker) %>
43
+ <%= link_to_delete tracker, :no_text => true %>
44
+ <% end %>
45
+ </td>
46
+ </tr>
47
+ <% end %>
48
+ </tbody>
49
+ </table>
50
+ <% else %>
51
+ <div class="no-objects-found">
52
+ <%= render 'spree/admin/shared/no_objects_found',
53
+ resource: Spree::Tracker,
54
+ new_resource_url: new_object_url %>
55
+ </div>
56
+ <% end %>
@@ -0,0 +1,18 @@
1
+ <%= render 'spree/admin/shared/general_tabs' %>
2
+
3
+ <% admin_breadcrumb(Spree.t(:settings)) %>
4
+ <% admin_breadcrumb(Spree.t(:general_settings)) %>
5
+ <% admin_breadcrumb(link_to plural_resource_name(Spree::Tracker), spree.admin_trackers_path) %>
6
+ <% admin_breadcrumb(Spree.t(:new_tracker)) %>
7
+
8
+ <% content_for :page_actions do %>
9
+ <% end %>
10
+
11
+ <%= render :partial => 'spree/shared/error_messages', :locals => { :target => @tracker } %>
12
+
13
+ <%= form_for [:admin, @tracker] do |f| %>
14
+ <fieldset class="no-border-top">
15
+ <%= render :partial => 'form', :locals => { :f => f } %>
16
+ <%= render :partial => 'spree/admin/shared/new_resource_links' %>
17
+ </fieldset>
18
+ <% end %>
@@ -0,0 +1,36 @@
1
+ <% if tracker = Spree::Tracker.current %>
2
+ <script>
3
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
4
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
5
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
6
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
7
+
8
+ ga('create', '<%= tracker.analytics_id %>', 'auto');
9
+ ga('require', 'displayfeatures');
10
+ ga('send', 'pageview');
11
+
12
+ <% if @order && order_just_completed?(@order) %>
13
+ <%# more info: https://developers.google.com/analytics/devguides/collection/analyticsjs/ecommerce %>
14
+ ga('require', 'ecommerce', 'ecommerce.js');
15
+ ga('ecommerce:addTransaction', {
16
+ 'id': '<%= j @order.number %>', // Transaction ID. Required.
17
+ 'affiliation': '<%= current_store.name %>', // Affiliation or store name.
18
+ 'revenue': '<%= @order.total %>', // Grand Total.
19
+ 'shipping': '<%= @order.ship_total %>', // Shipping.
20
+ 'tax': '<%= @order.tax_total %>', // Tax.
21
+ 'currency': '<%= @order.currency %>' // local currency code.
22
+ });
23
+ <% @order.line_items.each do |line_item| %>
24
+ ga('ecommerce:addItem', {
25
+ 'id': '<%= j @order.number %>', // Transaction ID. Required.
26
+ 'name': '<%= j line_item.variant.product.name %>', // Product name. Required.
27
+ 'sku': '<%= j (line_item.variant.sku || line_item.variant_id) %>', // SKU/code.
28
+ 'category': '', // Category or variation.
29
+ 'price': '<%= line_item.price %>', // Unit price.
30
+ 'quantity': '<%= line_item.quantity %>' // Quantity.
31
+ });
32
+ <% end %>
33
+ ga('ecommerce:send');
34
+ <% end %>
35
+ </script>
36
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <% if can?(:display, Spree::Tracker) %>
2
+ <%= settings_tab_item plural_resource_name(Spree::Tracker), admin_trackers_path %>
3
+ <% end %>
@@ -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
@@ -0,0 +1,5 @@
1
+ Spree::Core::Engine.routes.draw do
2
+ namespace :admin do
3
+ resources :trackers
4
+ end
5
+ end
@@ -0,0 +1,13 @@
1
+ class CreateTrackers < ActiveRecord::Migration[5.0]
2
+ def up
3
+ unless data_source_exists?("spree_trackers")
4
+ create_table :spree_trackers do |t|
5
+ t.string :environment
6
+ t.string :analytics_id
7
+ t.boolean :active, default: true
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ class AddStoreToTracker < ActiveRecord::Migration
2
+ def self.up
3
+ if data_source_exists?('spree_trackers')
4
+ change_table :spree_trackers do |t|
5
+ t.references :store
6
+ end
7
+ end
8
+ end
9
+
10
+ def self.down
11
+ if data_source_exists?('spree_trackers')
12
+ change_table :spree_trackers do |t|
13
+ t.remove :store_id
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,30 @@
1
+ module SolidusTrackers
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 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/solidus_trackers\n"
8
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/solidus_trackers\n"
9
+ end
10
+
11
+ def add_stylesheets
12
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/solidus_trackers\n", before: /\*\//, verbose: true
13
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/solidus_trackers\n", before: /\*\//, verbose: true
14
+ end
15
+
16
+ def add_migrations
17
+ run 'bundle exec rake railties:install:migrations FROM=solidus_trackers'
18
+ end
19
+
20
+ def run_migrations
21
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]'))
22
+ if run_migrations
23
+ run 'bundle exec rake db:migrate'
24
+ else
25
+ puts 'Skipping rake db:migrate, don\'t forget to run it!'
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,2 @@
1
+ require 'solidus_core'
2
+ require 'solidus_trackers/engine'
@@ -0,0 +1,20 @@
1
+ module SolidusTracker
2
+ class Engine < Rails::Engine
3
+ require 'spree/core'
4
+ isolate_namespace Spree
5
+ engine_name 'solidus_trackers'
6
+
7
+ # use rspec for tests
8
+ config.generators do |g|
9
+ g.test_framework :rspec
10
+ end
11
+
12
+ def self.activate
13
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
14
+ Rails.configuration.cache_classes ? require(c) : load(c)
15
+ end
16
+ end
17
+
18
+ config.to_prepare(&method(:activate).to_proc)
19
+ end
20
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :tracker, class: Spree::Tracker do
3
+ analytics_id 'A100'
4
+ active true
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module SolidusTracker
2
+ VERSION = '1.0.0'
3
+ end
metadata ADDED
@@ -0,0 +1,244 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: solidus_trackers
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Mike Conlin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-09-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: solidus_core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.1.0.alpha
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 2.1.0.alpha
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3'
33
+ - !ruby/object:Gem::Dependency
34
+ name: capybara
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: poltergeist
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: coffee-rails
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: sass-rails
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: database_cleaner
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: factory_girl
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: rspec-rails
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: rubocop
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - '='
136
+ - !ruby/object:Gem::Version
137
+ version: 0.43.0
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - '='
143
+ - !ruby/object:Gem::Version
144
+ version: 0.43.0
145
+ - !ruby/object:Gem::Dependency
146
+ name: rubocop-rspec
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - '='
150
+ - !ruby/object:Gem::Version
151
+ version: 1.4.0
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - '='
157
+ - !ruby/object:Gem::Version
158
+ version: 1.4.0
159
+ - !ruby/object:Gem::Dependency
160
+ name: simplecov
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: sqlite3
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ description: Breaking out trackers from solidus core
188
+ email: mike@stembolt.com
189
+ executables: []
190
+ extensions: []
191
+ extra_rdoc_files: []
192
+ files:
193
+ - README.md
194
+ - Rakefile
195
+ - app/assets/javascripts/spree/backend/solidus_trackers.js
196
+ - app/assets/javascripts/spree/frontend/solidus_trackers.js
197
+ - app/assets/stylesheets/spree/backend/solidus_trackers.css
198
+ - app/assets/stylesheets/spree/frontend/solidus_trackers.css
199
+ - app/controllers/spree/admin/trackers_controller.rb
200
+ - app/models/spree/permission_sets/tracker_display.rb
201
+ - app/models/spree/permission_sets/tracker_management.rb
202
+ - app/models/spree/tracker.rb
203
+ - app/overrides/decorate_admin_configurations_index.rb
204
+ - app/overrides/decorate_spree_application.rb
205
+ - app/views/spree/admin/trackers/_form.html.erb
206
+ - app/views/spree/admin/trackers/edit.html.erb
207
+ - app/views/spree/admin/trackers/index.html.erb
208
+ - app/views/spree/admin/trackers/new.html.erb
209
+ - app/views/spree/shared/_google_analytics.html.erb
210
+ - app/views/spree/shared/_tracker_sidebar_entry.html.erb
211
+ - config/locales/en.yml
212
+ - config/routes.rb
213
+ - db/migrate/20160906231452_create_trackers.rb
214
+ - db/migrate/20160920231000_add_store_to_tracker.rb
215
+ - lib/generators/solidus_trackers/install/install_generator.rb
216
+ - lib/solidus_trackers.rb
217
+ - lib/solidus_trackers/engine.rb
218
+ - lib/solidus_trackers/factories.rb
219
+ - lib/solidus_trackers/version.rb
220
+ homepage: https://github.com/swively
221
+ licenses:
222
+ - BSD-3-Clause
223
+ metadata: {}
224
+ post_install_message:
225
+ rdoc_options: []
226
+ require_paths:
227
+ - lib
228
+ required_ruby_version: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ required_rubygems_version: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ requirements: []
239
+ rubyforge_project:
240
+ rubygems_version: 2.5.1
241
+ signing_key:
242
+ specification_version: 4
243
+ summary: Provides analytic trackers for solidus
244
+ test_files: []