simple_analytics_rails 0.1.0 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 45d947955578941184edd6a5dca4a19419bd6fceba64e25da625b839eae9c2f3
4
- data.tar.gz: 79ccb523da4b6eb677696ae54b7a3fd5e94a86fdd409098740085cc62028ee13
3
+ metadata.gz: 24ecd59389ce5332d45f2595aaafd8d70680ad60df7462f6a9d8e8a55f2d825e
4
+ data.tar.gz: 2195b5ad58cfac26b7fc30afdfef271c85c412e2cb64f992af48f95a79a930d0
5
5
  SHA512:
6
- metadata.gz: e6e790d0cd2487228fddd15e1998dd049aff6d21774903cb7f0b04a86b2e5614f02c7a14da2ee1484031e61542e829274653183ed5ecf60227a62939d5dfacd2
7
- data.tar.gz: f59ef12bd7e12d7a8e0c3868a9c9b9d96bedb26899e70a9dee353527d4e913c8c86efa244e915280bdae281b8f7585bfa99186590a800c56448c0c3444b1da24
6
+ metadata.gz: cf583a3cd589a8b2aba05ad95c7ccdf932ecb2db0ff307e816fbd48cdd35572176372fbbd95517c03cb61832bb3753a27da292d6f19864a36421428f72d23bb3
7
+ data.tar.gz: 4ca87c7c9046b3fb86a66ee163dc307d7824c567ecfb9470e441bbf29df17d65eb539ba3b37e08e0feb3bace42f4a4574ae810450509ca0c173ab23c94143579
@@ -1,9 +1,8 @@
1
1
  name: Standard
2
2
 
3
3
  on:
4
+ pull_request:
4
5
  push:
5
- branches-ignore:
6
- - main
7
6
  jobs:
8
7
  standard:
9
8
  runs-on: ubuntu-latest
data/CHANGELOG.md CHANGED
@@ -4,8 +4,14 @@
4
4
 
5
5
  [Full Changelog](https://github.com/simpleanalytics/rubyonrails-plugin/compare/v0.1.0...HEAD)
6
6
 
7
+ **Implemented enhancements:**
8
+
9
+ - Add more settings [\#10](https://github.com/simpleanalytics/rubyonrails-plugin/issues/10)
10
+
7
11
  **Merged pull requests:**
8
12
 
13
+ - Adding new settings missed in 0.1.0 [\#11](https://github.com/simpleanalytics/rubyonrails-plugin/pull/11) ([MikeRogers0](https://github.com/MikeRogers0))
14
+ - Linking to Rubygems.org in Readme [\#9](https://github.com/simpleanalytics/rubyonrails-plugin/pull/9) ([MikeRogers0](https://github.com/MikeRogers0))
9
15
  - Changing name of ENV used for RubyGems API key [\#8](https://github.com/simpleanalytics/rubyonrails-plugin/pull/8) ([MikeRogers0](https://github.com/MikeRogers0))
10
16
 
11
17
  ## [v0.1.0](https://github.com/simpleanalytics/rubyonrails-plugin/tree/v0.1.0) (2021-04-21)
data/README.md CHANGED
@@ -7,7 +7,9 @@
7
7
  <p align="center">
8
8
  <h1 align="center">Simple Analytics Rails</h1>
9
9
  <p align="center">
10
- <img src="https://img.shields.io/gem/v/simple_analytics_rails.svg?color=red" />
10
+ <a target="_blank" rel="noopener noreferrer" href="https://rubygems.org/gems/simple_analytics_rails">
11
+ <img src="https://img.shields.io/gem/v/simple_analytics_rails.svg?color=red" />
12
+ </a>
11
13
  <a href="https://github.com/simpleanalytics/rubyonrails-plugin/blob/main/LICENSE">
12
14
  <img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-brightgreen.svg" target="_blank" />
13
15
  </a>
@@ -25,7 +27,7 @@
25
27
 
26
28
  [Simple Analytics](https://simpleanalytics.com/) is a privacy friendly analytics. No consent required from your visitors!
27
29
 
28
- This gem adds the [JavaScript Tracking Script](https://docs.simpleanalytics.com/script) to the `<head>` tag of your Ruby on Rails applications.
30
+ This gem adds the [JavaScript Tracking Script](https://docs.simpleanalytics.com/script) to the `<head>` & `<body>` tag of your Ruby on Rails applications.
29
31
 
30
32
  ## 🚀 Installation
31
33
 
@@ -80,6 +82,30 @@ SimpleAnalyticsRails.configure do |configuration|
80
82
  # Default is ""
81
83
  configuration.ignore_pages = "/search/*,/account/*,/vouchers"
82
84
 
85
+ # ==> Override variable used for JavaScript Events
86
+ # https://docs.simpleanalytics.com/events#the-variable-sa_event-is-already-used
87
+ #
88
+ # Default is "sa_event"
89
+ configuration.sa_global = "sa_event"
90
+
91
+ # ==> Trigger custom page views
92
+ # https://docs.simpleanalytics.com/trigger-custom-page-views#use-custom-collection-anyway
93
+ #
94
+ # Default is true
95
+ configuration.auto_collect = true
96
+
97
+ # ==> Onload Callback
98
+ # https://docs.simpleanalytics.com/trigger-custom-page-views#use-custom-collection-anyway
99
+ #
100
+ # Default is ""
101
+ configuration.onload_callback = "onloadCallback()"
102
+
103
+ # ==> Custom Domain
104
+ # https://docs.simpleanalytics.com/bypass-ad-blockers
105
+ #
106
+ # Default is ""
107
+ configuration.custom_domain = "custom.domain.com"
108
+
83
109
  # ==> Inject JavaScript To Head
84
110
  # You can disable the automatic JavaScript injection if you'd like.
85
111
  #
@@ -14,6 +14,10 @@ require_relative "simple_analytics_rails/railtie" if defined?(Rails)
14
14
  # configuration.mode = "hash"
15
15
  # configuration.collect_dnt = false
16
16
  # configuration.ignore_pages = "/search/*,/account/*,/vouchers"
17
+ # configuration.sa_global = "sa_event"
18
+ # configuration.auto_collect = true
19
+ # configuration.onload_callback = "onloadCallback()"
20
+ # configuration.custom_domain = "custom.domain.com"
17
21
  # configuration.enabled = Rails.env.production?
18
22
  # end
19
23
  #
@@ -6,11 +6,21 @@ module SimpleAnalyticsRails
6
6
  @ignore_pages = ""
7
7
  @collect_dnt = false
8
8
  @enabled = true
9
+ @custom_domain = ""
10
+ @auto_collect = true
11
+ @sa_global = "sa_event"
12
+ @onload_callback = ""
9
13
  end
10
14
 
11
15
  attr_accessor :ignore_pages
12
16
  attr_accessor :hostname
13
17
  attr_accessor :mode
18
+ attr_accessor :sa_global
19
+
20
+ def custom_sa_global?
21
+ @sa_global != "sa_event"
22
+ end
23
+
14
24
  attr_writer :collect_dnt
15
25
  def collect_dnt?
16
26
  @collect_dnt
@@ -21,8 +31,29 @@ module SimpleAnalyticsRails
21
31
  @enabled
22
32
  end
23
33
 
34
+ attr_writer :custom_domain
35
+ def script_domain
36
+ @custom_domain.present? ? @custom_domain : "scripts.simpleanalyticscdn.com"
37
+ end
38
+
39
+ def noscript_domain
40
+ @custom_domain.present? ? @custom_domain : "queue.simpleanalyticscdn.com"
41
+ end
42
+
43
+ attr_writer :auto_collect
44
+ def auto_collect?
45
+ @auto_collect
46
+ end
47
+
48
+ attr_accessor :onload_callback
49
+ def onload_callback?
50
+ @onload_callback.present?
51
+ end
52
+
24
53
  def to_h
25
54
  {
55
+ sa_global: custom_sa_global? ? sa_global : nil,
56
+ auto_collect: auto_collect? ? nil : "false",
26
57
  hostname: @hostname,
27
58
  mode: @mode,
28
59
  collect_dnt: collect_dnt? ? "true" : nil,
@@ -9,7 +9,7 @@ module SimpleAnalyticsRails
9
9
  end
10
10
 
11
11
  def body_html
12
- '<noscript><img src="https://queue.simpleanalyticscdn.com/noscript.gif" alt="" referrerpolicy="no-referrer-when-downgrade" /></noscript>'
12
+ '<noscript><img src="https://' + configuration.noscript_domain + '/noscript.gif" alt="" referrerpolicy="no-referrer-when-downgrade" /></noscript>'
13
13
  end
14
14
 
15
15
  private
@@ -17,7 +17,7 @@ module SimpleAnalyticsRails
17
17
  def sa_event_script
18
18
  [
19
19
  "<script>",
20
- "window.sa_event=window.sa_event||function(){a=[].slice.call(arguments);sa_event.q?sa_event.q.push(a):sa_event.q=[a]};",
20
+ "window.#{configuration.sa_global}=window.#{configuration.sa_global}||function(){a=[].slice.call(arguments);#{configuration.sa_global}.q?#{configuration.sa_global}.q.push(a):#{configuration.sa_global}.q=[a]};",
21
21
  "</script>"
22
22
  ].join
23
23
  end
@@ -26,16 +26,27 @@ module SimpleAnalyticsRails
26
26
  [
27
27
  "<script",
28
28
  configuration_to_html_attributes,
29
- 'async defer src="https://scripts.simpleanalyticscdn.com/latest.js"></script>'
29
+ onload_callback,
30
+ 'async defer src="https://' + configuration.script_domain + '/latest.js"></script>'
30
31
  ].compact
31
32
  .reject(&:blank?)
32
33
  .join(" ")
33
34
  end
34
35
 
36
+ def onload_callback
37
+ if configuration.onload_callback?
38
+ "onload=\"#{configuration.onload_callback}\""
39
+ end
40
+ end
41
+
35
42
  def configuration_to_html_attributes
36
- SimpleAnalyticsRails.configuration.to_h.collect do |key, value|
43
+ configuration.to_h.collect do |key, value|
37
44
  "data-#{key.to_s.tr("_", "-")}=\"#{CGI.escapeHTML(value)}\""
38
45
  end.join(" ")
39
46
  end
47
+
48
+ def configuration
49
+ @configuration ||= SimpleAnalyticsRails.configuration
50
+ end
40
51
  end
41
52
  end
@@ -1,3 +1,3 @@
1
1
  module SimpleAnalyticsRails
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_analytics_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Rogers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-22 00:00:00.000000000 Z
11
+ date: 2021-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: appraisal