analytic 0.1.0 → 0.3.0

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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +43 -13
  3. data/Rakefile +12 -2
  4. data/app/assets/builds/analytic/application.css +810 -0
  5. data/app/assets/builds/analytic/application.js +5779 -0
  6. data/app/assets/builds/analytic/application.js.map +7 -0
  7. data/app/assets/config/analytic_manifest.js +0 -0
  8. data/app/controllers/analytic/application_controller.rb +6 -0
  9. data/app/controllers/analytic/dashboard_controller.rb +13 -0
  10. data/app/controllers/concerns/analytic/trackable.rb +79 -0
  11. data/app/helpers/analytic/application_helper.rb +6 -0
  12. data/app/jobs/analytic/application_job.rb +6 -0
  13. data/app/jobs/analytic/track_job.rb +25 -0
  14. data/app/mailers/analytic/application_mailer.rb +7 -0
  15. data/app/models/analytic/application_record.rb +7 -0
  16. data/app/models/analytic/dashboard.rb +65 -0
  17. data/app/models/analytic/view.rb +24 -0
  18. data/app/packs/analytic/application/index.ts +1 -0
  19. data/app/packs/analytic/application/initializers/fontawesome.ts +23 -0
  20. data/app/packs/analytic/application/initializers/index.ts +1 -0
  21. data/app/packs/analytic/entrypoints/application.tailwind.css +65 -0
  22. data/app/packs/analytic/entrypoints/application.ts +1 -0
  23. data/app/views/analytic/dashboard/show.html.erb +84 -0
  24. data/app/views/layouts/analytic/application.html.erb +42 -0
  25. data/bin/dev +3 -0
  26. data/bin/rails +13 -0
  27. data/config/routes.rb +7 -0
  28. data/db/migrate/20240805210911_create_analytic_views.rb +24 -0
  29. data/lib/analytic/config.rb +30 -0
  30. data/lib/analytic/engine.rb +11 -0
  31. data/lib/analytic/version.rb +3 -1
  32. data/lib/analytic.rb +15 -3
  33. metadata +36 -13
  34. data/lib/analytic/railtie.rb +0 -4
  35. data/lib/tasks/analytic_tasks.rake +0 -4
  36. /data/{MIT-LICENSE → LICENSE} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7f82cc36d3c55179402d2d047fe8cc8a1fd42307a6c9d4b73192f474ad37fd75
4
- data.tar.gz: 66c0e7ee85886d4bc48fa0784dc5d73a7edc48763a8b9c57aa5ae6b86b5b8046
3
+ metadata.gz: dc45200aa3d02b6b5b0762abc37f93924ea4d025c25ddd671933512b35a2a795
4
+ data.tar.gz: 925779556b411685139ff5d8c167bee45b4aed9ec793c523f90a26fcc95685df
5
5
  SHA512:
6
- metadata.gz: 37f89e7abb0cf9130bd7bac4ad1dc352eccd7f1aa88027185e31150fb04b6486c4636516cf320205c81f58884867e32dbb4273ed476e06013f0bba7ecdb2dbb8
7
- data.tar.gz: c1dc5dec42746d70d519c3da69c2ae7af5e5d364c951ad88506857ab5cc6fe5220ba9be25dffa0e1973571a8eb4bfadd051eb61a28876be3111381e5aadb76e7
6
+ metadata.gz: 5e1b269cd08c02ae021f491b3b5dd6076e7be3fe049b1bf50ea4b4ef09ac50ce32dd50c73f16cdd549ed416a1f59b602b8ed4b9994ed6690623559ab14aca8a9
7
+ data.tar.gz: 34eea881684f27d927c48c7b3c76240a946cca6551747342017c5f5e9f53c558f391c5c66592ceb8f701af86c0639742fb6d592270a55680a87b6b6684084e22
data/README.md CHANGED
@@ -1,28 +1,58 @@
1
+ [![CircleCI](https://circleci.com/gh/ksylvest/analytic.svg?style=svg)](https://circleci.com/gh/ksylvest/analytic)
2
+ [![CodeClimate Maintainability](https://api.codeclimate.com/v1/badges/005074b4a948038893a9/maintainability)](https://codeclimate.com/github/ksylvest/analytic/maintainability)
3
+ [![CodeClimate Test Coverage](https://api.codeclimate.com/v1/badges/005074b4a948038893a9/test_coverage)](https://codeclimate.com/github/ksylvest/analytic/test_coverage)
4
+
1
5
  # Analytic
2
- Short description and motivation.
3
6
 
4
- ## Usage
5
- How to use my plugin.
7
+ Analytic provides visitor / session / view tracking without the need for any third-party service.
6
8
 
7
9
  ## Installation
8
- Add this line to your application's Gemfile:
10
+
11
+ ```bash
12
+ $ bundle add analytic
13
+ $ bin/rails analytic:install:migrations
14
+ $ bin/rails db:migrate
15
+ ```
9
16
 
10
17
  ```ruby
11
- gem "analytic"
18
+ # config/routes.rb
19
+ Rails.application.routes.draw do
20
+ mount Analytic::Engine, at: '/analytic'
21
+ end
12
22
  ```
13
23
 
14
- And then execute:
15
- ```bash
16
- $ bundle
24
+ ```ruby
25
+ # config/initializer/analytic.rb
26
+ Analytic.configure do |config|
27
+ config.timezone = Time.find_zone('Canada/Pacific') # default is `Time.zone`
28
+ config.ip_v4_mask = 24 # '255.255.255.255' becomes '255.255.255.0'
29
+ config.ip_v6_mask = 48 # 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff' becomes 'ffff:ffff:ffff:0000:0000:0000:0000:0000'
30
+ end
17
31
  ```
18
32
 
19
- Or install it yourself as:
20
- ```bash
21
- $ gem install analytic
33
+ ## Usage
34
+
35
+ Default inline tracking is configured with:
36
+
37
+ ```ruby
38
+ class ApplicationController
39
+ include Analytic::Trackable
40
+
41
+ before_action { analytic_track! }
42
+ end
22
43
  ```
23
44
 
24
- ## Contributing
25
- Contribution directions go here.
45
+ Alternative job tracking is configured with:
46
+
47
+ ```ruby
48
+ class ApplicationController
49
+ include Analytic::Trackable
50
+
51
+ before_action { analytic_enqueue_track_job! }
52
+ ```
53
+
54
+ _note: a queue such as sidekiq, rescue, etc must be running to see tracking_
26
55
 
27
56
  ## License
57
+
28
58
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile CHANGED
@@ -1,3 +1,13 @@
1
- require "bundler/setup"
1
+ # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
3
+ require 'bundler/setup'
4
+
5
+ require 'bundler/gem_tasks'
6
+ require 'rspec/core/rake_task'
7
+ require 'rubocop/rake_task'
8
+
9
+ RSpec::Core::RakeTask.new(:spec)
10
+
11
+ RuboCop::RakeTask.new
12
+
13
+ task default: %i[spec rubocop]