aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/utils
diff options
context:
space:
mode:
authorMike McQuaid2016-05-03 14:21:08 +0100
committerMike McQuaid2016-05-03 14:21:08 +0100
commit0ef21ddf8707289fdf4ef0ad19223f0ba4862f52 (patch)
treef531668a133bea9b3ca32aa5681a4cf79166ddc9 /Library/Homebrew/utils
parent798c342f4e3c27ea57072712ef7056be60f041c3 (diff)
downloadbrew-0ef21ddf8707289fdf4ef0ad19223f0ba4862f52.tar.bz2
analytics: move to a class.
Global namespaces are good to avoid when possible.
Diffstat (limited to 'Library/Homebrew/utils')
-rw-r--r--Library/Homebrew/utils/analytics.rb124
1 files changed, 65 insertions, 59 deletions
diff --git a/Library/Homebrew/utils/analytics.rb b/Library/Homebrew/utils/analytics.rb
index 32ea22f89..10cf2affa 100644
--- a/Library/Homebrew/utils/analytics.rb
+++ b/Library/Homebrew/utils/analytics.rb
@@ -1,67 +1,73 @@
-def analytics_label
- @analytics_anonymous_prefix_and_os ||= begin
- os = OS_VERSION
- prefix = ", non-/usr/local" if HOMEBREW_PREFIX.to_s != "/usr/local"
- ci = ", CI" if ENV["CI"]
- "#{os}#{prefix}#{ci}"
- end
-end
+module Utils
+ module Analytics
+ class << self
+ def os_prefix_ci
+ @anonymous_os_prefix_ci ||= begin
+ os = OS_VERSION
+ prefix = ", non-/usr/local" if HOMEBREW_PREFIX.to_s != "/usr/local"
+ ci = ", CI" if ENV["CI"]
+ "#{os}#{prefix}#{ci}"
+ end
+ end
-def report_analytics(type, metadata = {})
- return if ENV["HOMEBREW_NO_ANALYTICS"] || ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"]
+ def report(type, metadata = {})
+ return if ENV["HOMEBREW_NO_ANALYTICS"] || ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"]
- args = %W[
- --max-time 3
- --user-agent #{HOMEBREW_USER_AGENT_CURL}
- -d v=1
- -d tid=#{ENV["HOMEBREW_ANALYTICS_ID"]}
- -d cid=#{ENV["HOMEBREW_ANALYTICS_USER_UUID"]}
- -d aip=1
- -d an=#{HOMEBREW_PRODUCT}
- -d av=#{HOMEBREW_VERSION}
- -d t=#{type}
- ]
- metadata.each { |k, v| args << "-d" << "#{k}=#{v}" if k && v }
+ args = %W[
+ --max-time 3
+ --user-agent #{HOMEBREW_USER_AGENT_CURL}
+ -d v=1
+ -d tid=#{ENV["HOMEBREW_ANALYTICS_ID"]}
+ -d cid=#{ENV["HOMEBREW_ANALYTICS_USER_UUID"]}
+ -d aip=1
+ -d an=#{HOMEBREW_PRODUCT}
+ -d av=#{HOMEBREW_VERSION}
+ -d t=#{type}
+ ]
+ metadata.each { |k, v| args << "-d" << "#{k}=#{v}" if k && v }
- # Send analytics. Don't send or store any personally identifiable information.
- # https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Analytics.md
- # https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide
- # https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters
- if ENV["HOMEBREW_ANALYTICS_DEBUG"]
- puts Utils.popen_read ENV["HOMEBREW_CURL"],
- "https://www.google-analytics.com/debug/collect",
- *args
- else
- pid = fork do
- exec ENV["HOMEBREW_CURL"],
- "https://www.google-analytics.com/collect",
- "--silent", "--output", "/dev/null",
- *args
- end
- Process.detach pid
- end
-end
+ # Send analytics. Don't send or store any personally identifiable information.
+ # https://github.com/Homebrew/brew/blob/master/share/doc/homebrew/Analytics.md
+ # https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide
+ # https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters
+ if ENV["HOMEBREW_ANALYTICS_DEBUG"]
+ puts Utils.popen_read ENV["HOMEBREW_CURL"],
+ "https://www.google-analytics.com/debug/collect",
+ *args
+ else
+ pid = fork do
+ exec ENV["HOMEBREW_CURL"],
+ "https://www.google-analytics.com/collect",
+ "--silent", "--output", "/dev/null",
+ *args
+ end
+ Process.detach pid
+ end
+ end
-def report_analytics_event(category, action, label = analytics_label, value = nil)
- report_analytics(:event,
- :ec => category,
- :ea => action,
- :el => label,
- :ev => value)
-end
+ def report_event(category, action, label = os_prefix_ci, value = nil)
+ report(:event,
+ :ec => category,
+ :ea => action,
+ :el => label,
+ :ev => value)
+ end
-def report_analytics_exception(exception, options = {})
- if exception.is_a?(BuildError) &&
- exception.formula.tap && !exception.formula.tap.private?
- report_analytics_event("BuildError", exception.formula.full_name)
- end
+ def report_exception(exception, options = {})
+ if exception.is_a?(BuildError) &&
+ exception.formula.tap && !exception.formula.tap.private?
+ report_event("BuildError", exception.formula.full_name)
+ end
- fatal = options.fetch(:fatal, true) ? "1" : "0"
- report_analytics(:exception,
- :exd => exception.class.name,
- :exf => fatal)
-end
+ fatal = options.fetch(:fatal, true) ? "1" : "0"
+ report(:exception,
+ :exd => exception.class.name,
+ :exf => fatal)
+ end
-def report_analytics_screenview(screen_name)
- report_analytics(:screenview, :cd => screen_name)
+ def report_screenview(screen_name)
+ report(:screenview, :cd => screen_name)
+ end
+ end
+ end
end