Class: Lapsoss::RuntimeContext
- Inherits:
-
Data
- Object
- Data
- Lapsoss::RuntimeContext
- Defined in:
- lib/lapsoss/runtime_context.rb
Overview
Boot-time context collection using Data class
Instance Attribute Summary collapse
-
#modules ⇒ Object
readonly
Returns the value of attribute modules.
-
#os ⇒ Object
readonly
Returns the value of attribute os.
-
#release ⇒ Object
readonly
Returns the value of attribute release.
-
#runtime ⇒ Object
readonly
Returns the value of attribute runtime.
-
#server_name ⇒ Object
readonly
Returns the value of attribute server_name.
Class Method Summary collapse
- .collect_modules ⇒ Object
- .collect_os_context ⇒ Object
- .collect_release ⇒ Object
- .collect_runtime_context ⇒ Object
- .collect_server_name ⇒ Object
- .current ⇒ Object
Instance Method Summary collapse
Instance Attribute Details
#modules ⇒ Object (readonly)
Returns the value of attribute modules
8 9 10 |
# File 'lib/lapsoss/runtime_context.rb', line 8 def modules @modules end |
#os ⇒ Object (readonly)
Returns the value of attribute os
8 9 10 |
# File 'lib/lapsoss/runtime_context.rb', line 8 def os @os end |
#release ⇒ Object (readonly)
Returns the value of attribute release
8 9 10 |
# File 'lib/lapsoss/runtime_context.rb', line 8 def release @release end |
#runtime ⇒ Object (readonly)
Returns the value of attribute runtime
8 9 10 |
# File 'lib/lapsoss/runtime_context.rb', line 8 def runtime @runtime end |
#server_name ⇒ Object (readonly)
Returns the value of attribute server_name
8 9 10 |
# File 'lib/lapsoss/runtime_context.rb', line 8 def server_name @server_name end |
Class Method Details
.collect_modules ⇒ Object
38 39 40 41 42 43 44 45 46 |
# File 'lib/lapsoss/runtime_context.rb', line 38 def self.collect_modules return {} unless defined?(Bundler) Bundler.load.specs.each_with_object({}) do |spec, h| h[spec.name] = spec.version.to_s end rescue {} end |
.collect_os_context ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/lapsoss/runtime_context.rb', line 19 def self.collect_os_context { name: RbConfig::CONFIG["host_os"], version: `uname -r 2>/dev/null`.strip.presence, build: `uname -v 2>/dev/null`.strip.presence, kernel_version: `uname -a 2>/dev/null`.strip.presence, machine: RbConfig::CONFIG["host_cpu"] }.compact rescue { name: RbConfig::CONFIG["host_os"] } end |
.collect_release ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/lapsoss/runtime_context.rb', line 54 def self.collect_release # Try to get from git if available if File.exist?(".git") `git rev-parse HEAD 2>/dev/null`.strip.presence end rescue nil end |
.collect_runtime_context ⇒ Object
31 32 33 34 35 36 |
# File 'lib/lapsoss/runtime_context.rb', line 31 def self.collect_runtime_context { name: "ruby", version: RUBY_DESCRIPTION } end |
.collect_server_name ⇒ Object
48 49 50 51 52 |
# File 'lib/lapsoss/runtime_context.rb', line 48 def self.collect_server_name Socket.gethostname rescue "unknown" end |
.current ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/lapsoss/runtime_context.rb', line 9 def self.current @current ||= new( os: collect_os_context, runtime: collect_runtime_context, modules: collect_modules, server_name: collect_server_name, release: collect_release ) end |
Instance Method Details
#to_contexts ⇒ Object
63 64 65 66 67 68 |
# File 'lib/lapsoss/runtime_context.rb', line 63 def to_contexts { os: os, runtime: runtime } end |