Module: EvoleapLicensing::PlatformInfo

Defined in:
lib/evoleap_licensing/platform_info.rb

Class Method Summary collapse

Class Method Details

.architectureObject



7
8
9
# File 'lib/evoleap_licensing/platform_info.rb', line 7

def self.architecture
  RUBY_PLATFORM
end

.get_infoObject



40
41
42
43
44
45
46
47
# File 'lib/evoleap_licensing/platform_info.rb', line 40

def self.get_info
  info = {}
  merge_if_available(info, :architecture) { architecture }
  merge_if_available(info, :mac_addresses) { mac_addresses }
  merge_if_available(info, :hostname) { hostname }
  merge_if_available(info, :ip_address) { ip_address }
  info
end

.hostnameObject



26
27
28
29
30
# File 'lib/evoleap_licensing/platform_info.rb', line 26

def self.hostname
  Socket.gethostname
rescue StandardError
  nil
end

.ip_addressObject



32
33
34
35
36
37
38
# File 'lib/evoleap_licensing/platform_info.rb', line 32

def self.ip_address
  Socket.ip_address_list
    .select { |addr| addr.ipv4? && !addr.ipv4_loopback? }
    .first&.ip_address
rescue StandardError
  nil
end

.mac_addressesObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/evoleap_licensing/platform_info.rb', line 11

def self.mac_addresses
  case RUBY_PLATFORM
  when /linux/
    read_linux_mac_addresses
  when /darwin/
    read_mac_mac_addresses
  when /mswin|mingw/
    read_windows_mac_addresses
  else
    []
  end
rescue StandardError
  []
end