lib/oboe/loading.rb in oboe-1.3.0 vs lib/oboe/loading.rb in oboe-1.3.1
- old
+ new
@@ -1,9 +1,50 @@
# Copyright (c) 2012 by Tracelytics, Inc.
# All rights reserved.
+require 'digest/sha1'
+
module Oboe
+ module Util
+ module Base64URL
+ module_function
+
+ def encode(bin)
+ c = [bin].pack('m0').gsub(/\=+\Z/, '').tr('+/', '-_').rstrip
+ m = c.size % 4
+ c += '=' * (4 - m) if m != 0
+ c
+ end
+
+ def decode(bin)
+ m = bin.size % 4
+ bin += '=' * (4 - m) if m != 0
+ bin.tr('-_', '+/').unpack('m0').first
+ end
+ end
+ end
+
module Loading
+
+ def self.load_access_key
+ unless Oboe::Config.has_key?(:access_key)
+ config_file = '/etc/tracelytics.conf'
+ return unless File.exists?(config_file)
+
+ begin
+ File.open(config_file).each do |line|
+ if line =~ /^tracelyzer.access_key=/ or line =~ /^access_key/
+ bits = line.split(/=/)
+ Oboe::Config[:access_key] = bits[1].strip
+ Oboe::Config[:rum_id] = Oboe::Util::Base64URL.encode(Digest::SHA1.digest("RUM" + Oboe::Config[:access_key]))
+ break
+ end
+ end
+ rescue
+ puts "Having trouble parsing #{config_file}..."
+ end
+ end
+ end
def self.require_api
require 'oboe/version'
pattern = File.join(File.dirname(__FILE__), 'api', '*.rb')