Class: Skywalking::Environment

Inherits:
Object
  • Object
show all
Includes:
Singleton, Log::Logging
Defined in:
lib/skywalking/environment.rb

Defined Under Namespace

Classes: RailsFramework, RubyFramework, SinatraFramework

Constant Summary collapse

FRAMEWORKS =
[
  RailsFramework.new,
  SinatraFramework.new,
  RubyFramework.new
].freeze

Instance Method Summary collapse

Methods included from Log::Logging

#debug, #error, #info, #log, #warn

Instance Method Details

#app_nameObject



119
120
121
# File 'lib/skywalking/environment.rb', line 119

def app_name
  framework_info.app_name
end

#framework_envObject



115
116
117
# File 'lib/skywalking/environment.rb', line 115

def framework_env
  @framework_env ||= framework_info.env
end

#framework_infoObject



96
97
98
# File 'lib/skywalking/environment.rb', line 96

def framework_info
  @framework ||= FRAMEWORKS.detect { |candidate| candidate.present? }
end

#framework_nameObject



100
101
102
# File 'lib/skywalking/environment.rb', line 100

def framework_name
  @framework_name ||= framework_info.name
end

#framework_rootObject



104
105
106
107
108
109
110
111
112
113
# File 'lib/skywalking/environment.rb', line 104

def framework_root
  @framework_root ||= case @framework_name
                      when :rails
                        ::Rails.root
                      when :sinatra
                        Sinatra::Application.root || "."
                      else
                        "."
                      end
end

#rails?Boolean

Returns:

  • (Boolean)


123
124
125
126
127
128
129
130
# File 'lib/skywalking/environment.rb', line 123

def rails?
  if defined?(::Rails)
    ::Rails.application.class.to_s
           .sub(/::Application$/, '')
  end
rescue
  nil
end

#shutdown_handler_supported?Boolean

Returns:

  • (Boolean)


132
133
134
135
136
137
138
139
140
# File 'lib/skywalking/environment.rb', line 132

def shutdown_handler_supported?
  case framework_name
  when :sinatra
    warn "Shutdown handler not supported for Sinatra"
    false
  else
    true
  end
end