class Calabash::Android::UsageTracker
Constants
- CALABASH_ANDROID
@!visibility private
- CALABASH_IOS
@!visibility private
- DATA_VERSION
@!visibility private
- OSX
@!visibility private
- ROUTE
@!visibility private
- WINDOWS
@!visibility private
Public Class Methods
disable_usage_tracking()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 16 def self.disable_usage_tracking @@track_usage = false end
enable_usage_tracking()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 11 def self.enable_usage_tracking @@track_usage = true end
Private Class Methods
track_usage?()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 74 def self.track_usage? @@track_usage && !self.xtc? end
xtc?()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 79 def self.xtc? ENV["XAMARIN_TEST_CLOUD"] == "1" end
Public Instance Methods
post_usage()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 21 def post_usage if Calabash::Android::UsageTracker.track_usage? && info_we_are_allowed_to_track != "none" begin HTTPClient.post(ROUTE, info) rescue => e message = %Q{ERROR: Could not post usage tracking information:#{$-0}#{e}} Calabash::Android::Logging.log_to_file(message) end end end
post_usage_async()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 34 def post_usage_async t = Thread.new do post_usage end m = Thread.current Thread.new do loop do unless t.alive? break end unless m.alive? t.kill break end end end nil end
Private Instance Methods
host_os()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 102 def host_os @host_os ||= lambda do if RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ WINDOWS else `uname -s`.chomp end end.call end
host_os_version()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 113 def host_os_version @host_os_version ||= lambda do if host_os == WINDOWS `ver`.chomp elsif host_os == OSX `sw_vers -productVersion`.chomp else `uname -r`.chomp end end.call end
info()
click to toggle source
@!visibility private
Collect a hash of usage info.
# File lib/calabash-android/usage_tracker.rb, line 148 def info allowed = info_we_are_allowed_to_track if allowed == "none" raise RuntimeError, "This method should not be called if the user does not want to be tracked." end # Events only hash = { :event_name => "session", :data_version => DATA_VERSION, :distinct_id => user_id } if allowed == "system_info" hash.merge!( { :platform => CALABASH_ANDROID, :host_os => host_os, :host_os_version => host_os_version, :irb => irb?, :ruby_version => ruby_version, :used_bundle_exec => used_bundle_exec?, :used_cucumber => used_cucumber?, :version => Calabash::Android::VERSION, :ci => Calabash::Android::Environment.ci?, :jenkins => Calabash::Android::Environment.jenkins?, :travis => Calabash::Android::Environment.travis?, :circle_ci => Calabash::Android::Environment.circle_ci?, :gitlab => Calabash::Android::Environment.gitlab?, :teamcity => Calabash::Android::Environment.teamcity? } ) end hash end
info_we_are_allowed_to_track()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 69 def info_we_are_allowed_to_track preferences.usage_tracking end
irb?()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 126 def irb? $0 == "irb" end
preferences()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 59 def preferences Calabash::Android::Preferences.new end
ruby_version()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 131 def ruby_version @ruby_version ||= `#{RbConfig.ruby} -v`.chomp end
used_bundle_exec?()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 136 def used_bundle_exec? Object.const_defined?(:Bundler) end
used_cucumber?()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 141 def used_cucumber? Object.const_defined?(:Cucumber) end
user_id()
click to toggle source
@!visibility private
# File lib/calabash-android/usage_tracker.rb, line 64 def user_id preferences.user_id end