class SimpleAnalyticsRails::JavascriptScript

This outputs the HTML script with the configuration option added to the <script> tag.

Public Instance Methods

body_html() click to toggle source
# File lib/simple_analytics_rails/javascript_script.rb, line 11
def body_html
  '<noscript><img src="https://' + configuration.noscript_domain + '/noscript.gif" alt="" referrerpolicy="no-referrer-when-downgrade" /></noscript>'
end
head_html() click to toggle source
# File lib/simple_analytics_rails/javascript_script.rb, line 4
def head_html
  [
    sa_event_script,
    script_tag
  ].join
end

Private Instance Methods

configuration() click to toggle source
# File lib/simple_analytics_rails/javascript_script.rb, line 48
def configuration
  @configuration ||= SimpleAnalyticsRails.configuration
end
configuration_to_html_attributes() click to toggle source
# File lib/simple_analytics_rails/javascript_script.rb, line 42
def configuration_to_html_attributes
  configuration.to_h.collect do |key, value|
    "data-#{key.to_s.tr("_", "-")}=\"#{CGI.escapeHTML(value)}\""
  end.join(" ")
end
onload_callback() click to toggle source
# File lib/simple_analytics_rails/javascript_script.rb, line 36
def onload_callback
  if configuration.onload_callback?
    "onload=\"#{configuration.onload_callback}\""
  end
end
sa_event_script() click to toggle source
# File lib/simple_analytics_rails/javascript_script.rb, line 17
def sa_event_script
  [
    "<script>",
    "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]};",
    "</script>"
  ].join
end
script_tag() click to toggle source
# File lib/simple_analytics_rails/javascript_script.rb, line 25
def script_tag
  [
    "<script",
    configuration_to_html_attributes,
    onload_callback,
    'async defer src="https://' + configuration.script_domain + '/latest.js"></script>'
  ].compact
    .reject(&:blank?)
    .join(" ")
end