lib/stella.rb in stella-0.7.0.015 vs lib/stella.rb in stella-0.7.0.017
- old
+ new
@@ -1,75 +1,100 @@
-require 'ostruct'
+STELLA_LIB_HOME = File.expand_path File.dirname(__FILE__) unless defined?(STELLA_LIB_HOME)
+
+%w{attic hexoid storable sysinfo gibbler benelux}.each do |dir|
+ $:.unshift File.join(STELLA_LIB_HOME, '..', '..', dir, 'lib')
+end
+
+autoload :SysInfo, 'sysinfo'
+autoload :Drydock, 'drydock'
+autoload :URI, 'uri'
+autoload :OpenStruct, 'ostruct'
+autoload :Storable, 'storable'
+autoload :Gibbler, 'gibbler/aliases'
+autoload :Attic, 'attic'
+
+require 'benelux'
require 'threadify'
+require 'tracer'
+
+
module Stella
extend self
-
- LIB_HOME = File.expand_path File.dirname(__FILE__) unless defined?(LIB_HOME)
- %w{storable sysinfo gibbler benelux}.each do |dir|
- $:.unshift File.join(LIB_HOME, '..', '..', dir, 'lib')
+ SLEEP_METRICS = {
+ :create_thread => 0.001,
+ :check_threads => 0.3
+ }.freeze unless defined?(SLEEP_METRICS)
+
+ @sysinfo = nil
+ @logger = Drydock::Screen
+ @loglev = 1
+ @debug = false
+ @abort = false
+
+ class << self
+ attr_accessor :loglev, :logger
end
- require 'sysinfo'
- require 'drydock/screen'
- require 'storable'
- require 'gibbler'
- require 'gibbler/aliases'
- require 'benelux'
- @@sysinfo = SysInfo.new.freeze
- @@logger = Drydock::Screen
- @@loglev = 1
- @@debug = false
- @@abort = false
+ def sleep(metric)
+ unless SLEEP_METRICS.has_key? metric
+ raise "unknown sleep metric: #{metric}"
+ end
+ Kernel.sleep SLEEP_METRICS[metric]
+ end
- # Puts +msg+ to +@@logger+
- def lflush; @@logger.flush if @@logger.respond_to? :flush; end
- def li(*msg); msg.each { |m| @@logger.puts m } if !quiet? end
- def li1(*msg); li *msg if @@loglev >= 1 end
- def li2(*msg); li *msg if @@loglev >= 2 end
- def li3(*msg); li *msg if @@loglev >= 3 end
- def li4(*msg); li *msg if @@loglev >= 4 end
+ # Puts +msg+ to +@logger+
+ def lflush; @logger.flush if @logger.respond_to? :flush; end
+ def li(*msg); msg.each { |m| @logger.puts m } if !quiet? end
+ def li1(*msg); li *msg if @loglev >= 1 end
+ def li2(*msg); li *msg if @loglev >= 2 end
+ def li3(*msg); li *msg if @loglev >= 3 end
+ def li4(*msg); li *msg if @loglev >= 4 end
- # Puts +msg+ to +@@logger+ with "ERROR: " prepended
- def le(*msg); @@logger.puts " " << msg.join("#{$/} ").color(:red); end
- # Puts +msg+ to +@@logger+ if +Rudy.debug?+ returns true
+ # Puts +msg+ to +@logger+ with "ERROR: " prepended
+ def le(*msg); @logger.puts " " << msg.join("#{$/} ").color(:red); end
+ # Puts +msg+ to +@logger+ if +Rudy.debug?+ returns true
def ld(*msg)
- @@logger.puts "D: " << msg.join("#{$/}D: ") if debug?
+ @logger.puts "D: " << msg.join("#{$/}D: ") if debug?
end
- def loglev; @@loglev; end
- def loglev=(val); @@loglev = val; end
- def sysinfo; @@sysinfo; end
+ def sysinfo
+ @sysinfo = SysInfo.new.freeze if @sysinfo.nil?
+ @sysinfo
+ end
- def quiet?; @@loglev == 0; end
- def enable_quiet; @@loglev = 0; end
- def disable_quiet; @@loglev = 1; end
+ def quiet?() @loglev == 0 end
+ def enable_quiet() @loglev = 0 end
+ def disable_quiet() @loglev = 1 end
- def debug?; @@debug == true; end
- def enable_debug; @@debug = true; end
- def disable_debug; @@debug = false; end
+ def debug?() @debug == true end
+ def enable_debug() @debug = true end
+ def disable_debug() @debug = false end
- def abort?
- @@abort == true
- end
- def abort!() @@abort = true end
+ def abort?() @abort == true end
+ def abort!() @abort = true end
def rescue(&blk)
blk.call
rescue => ex
Stella.le "ERROR: #{ex.message}"
Stella.li3 ex.backtrace
end
+
+ require 'stella/exceptions'
+
+ autoload :VERSION, 'stella/version'
+ autoload :Utils, 'stella/utils'
+ autoload :Config, 'stella/config'
+ autoload :Data, 'stella/data'
+ autoload :Testplan, 'stella/testplan'
+ autoload :Engine, 'stella/engine'
+ autoload :Client, 'stella/client'
+
+ require 'stella/mixins'
end
-require 'stella/version'
-require 'stella/exceptions'
-require 'stella/utils'
-require 'stella/config'
-require 'stella/data'
-require 'stella/client'
-Stella::Utils.require_vendor "httpclient", '2.1.5.2'
-Stella::Utils.require_glob(Stella::LIB_HOME, 'stella', '*.rb')
+