module MetricFu::Environment

Public Class Methods

ruby_strangely_makes_accessors_private?() click to toggle source
# File lib/metric_fu/environment.rb, line 124
def ruby_strangely_makes_accessors_private?
  @private_accessors ||= ruby192? || jruby?
end

Public Instance Methods

debug_info() click to toggle source
# File lib/metric_fu/environment.rb, line 112
def debug_info
  @debug_info ||= {
    "Ruby" => ruby_details,
    "Environment" => environment_details,
    "MetricFu" => library_details,
  }
end
environment_details() click to toggle source
# File lib/metric_fu/environment.rb, line 78
def environment_details
  @environment_details ||= {
    "VERBOSE" => $VERBOSE.inspect,
    "External Encoding" => Encoding.default_external.to_s,
    "Internal Encoding" => Encoding.default_internal.to_s,
    "Host Architecture" => RbConfig::CONFIG["build"],
    "Ruby Prefix"       => RbConfig::CONFIG["prefix"],
    "Ruby Options"      => ENV.keys.grep(/RUBYOPT/).map { |key| "#{key}=#{ENV[key]}" }.join(", "),
  }
end
is_cruise_control_rb?() click to toggle source
# File lib/metric_fu/environment.rb, line 29
def is_cruise_control_rb?
  !!ENV["CC_BUILD_ARTIFACTS"]
end
jruby?() click to toggle source
# File lib/metric_fu/environment.rb, line 33
def jruby?
  @jruby ||= !!RedCard.check(:jruby)
end
library_details() click to toggle source
# File lib/metric_fu/environment.rb, line 103
def library_details
  @library_details ||= {
    "Version" =>  version,
    "Verbose Mode" => verbose,
    "Enabled Metrics" => MetricFu::Metric.enabled_metrics.map(&:name),
    "Dependencies" => MetricFu::GemVersion.dependencies_summary,
  }
end
mri?() click to toggle source
# File lib/metric_fu/environment.rb, line 37
def mri?
  @mri ||= !!RedCard.check(:ruby)
end
osx?() click to toggle source
# File lib/metric_fu/environment.rb, line 120
def osx?
  @osx ||= platform.include?("darwin")
end
rails?() click to toggle source

Perform a simple check to try and guess if we're running against a rails app.

TODO This should probably be made a bit more robust.

# File lib/metric_fu/environment.rb, line 19
def rails?
  @rails ||= begin
               exists = File.exist?("config/environment.rb")
               def MetricFu.rails?
                 exists
               end
               exists
             end
end
rubinius?() click to toggle source
# File lib/metric_fu/environment.rb, line 57
def rubinius?
  @rubinius ||= !!RedCard.check(:rubinius)
end
ruby18?() click to toggle source
# File lib/metric_fu/environment.rb, line 49
def ruby18?
  @ruby18 ||= mri? && !!RedCard.check("1.8"..."1.9")
end
ruby192?() click to toggle source
# File lib/metric_fu/environment.rb, line 53
def ruby192?
  @ruby192 ||= mri? && ruby_version == "1.9.2"
end
ruby_details() click to toggle source

To consider $LOADED_FEATURES $LOAD_PATH

# File lib/metric_fu/environment.rb, line 92
def ruby_details
  @ruby_details ||= {
    "Engine" => ruby_flavor,
    "Version" => ruby_version,
    "Patchlevel" => (defined?(RUBY_PATCHLEVEL) && RUBY_PATCHLEVEL),
    "Ripper Support" => supports_ripper?,
    "Rubygems Version" => Gem::VERSION,
    "Long Description" => (defined?(RUBY_DESCRIPTION) ? RUBY_DESCRIPTION : platform),
  }
end
ruby_flavor() click to toggle source
# File lib/metric_fu/environment.rb, line 41
def ruby_flavor
  @ruby_flavor ||= RedCard.engine
end
ruby_version() click to toggle source
# File lib/metric_fu/environment.rb, line 45
def ruby_version
  @ruby_version ||= RedCard.engine_version
end
supports_ripper?() click to toggle source
# File lib/metric_fu/environment.rb, line 61
def supports_ripper?
  @supports_ripper ||= begin
                         require "ripper"
                         true
                       rescue LoadError
                         false
                       end
end
verbose() click to toggle source

TODO: Set log_level here, instead

# File lib/metric_fu/environment.rb, line 7
def verbose
  MetricFu.logger.debug_on
end
verbose=(toggle) click to toggle source
# File lib/metric_fu/environment.rb, line 11
def verbose=(toggle)
  MetricFu.logger.debug_on = toggle
end
version() click to toggle source
# File lib/metric_fu/environment.rb, line 74
def version
  MetricFu::VERSION
end

Private Instance Methods

ruby_strangely_makes_accessors_private?() click to toggle source
# File lib/metric_fu/environment.rb, line 124
def ruby_strangely_makes_accessors_private?
  @private_accessors ||= ruby192? || jruby?
end