Class: Monkey::Computer

Inherits:
Object
  • Object
show all
Defined in:
lib/helpers/computer.rb

Class Method Summary collapse

Class Method Details

.architectureObject



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/helpers/computer.rb', line 61

def self.architecture
  if windows?
    os_arch = ENV['PROCESSOR_ARCHITECTURE']
    return :bit64 if os_arch.include? '64'
    return :bit32 if os_arch.include? '86'
  elsif mac?
    os_arch = `uname -a`
    return :bit64 if os_arch.include? '64'
    return :bit32 if os_arch.include? 'i386'
  end
end

.bit32?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/helpers/computer.rb', line 77

def self.bit32?
  (self.architecture == :bit32)
end

.bit64?Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/helpers/computer.rb', line 73

def self.bit64?
  (self.architecture == :bit64)
end

.ipObject



50
51
52
53
54
55
56
57
58
59
# File 'lib/helpers/computer.rb', line 50

def self.ip
  orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true  # turn off reverse DNS resolution temporarily
 
  UDPSocket.open do |s|
    s.connect '64.233.187.99', 1
    s.addr.last
  end
ensure
  Socket.do_not_reverse_lookup = orig
end

.nameObject



45
46
47
# File 'lib/helpers/computer.rb', line 45

def self.name
  Socket.gethostname
end

.osObject



6
7
8
9
10
# File 'lib/helpers/computer.rb', line 6

def self.os
  return :windows if /cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM
  return :osx if /darwin/ =~ RUBY_PLATFORM
  return nil
end

.os_major_versionObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/helpers/computer.rb', line 30

def self.os_major_version
  ver = os_version_number
  return :windows8 if (ver.include? '6.3') || (ver.include? '6.2')
  return :windows7 if ver.include? '6.1'
  return :windowsvista if ver.include? '6.0'
  return :windowsxp if (ver.include? '5.2') || (ver.include? '5.1')
  return :windows2000 if ver.include? '5.00'

  return :osxmavericks if ver.include? '10.9'
  return :osxmountainlion if ver.include? '10.8'
  return :osxlion if ver.include? '10.7'
  return :osxsnowleopard if ver.include? '10.6'
  return :osxleopard if ver.include? '10.5'
end

.os_version_numberObject



22
23
24
25
26
27
28
# File 'lib/helpers/computer.rb', line 22

def self.os_version_number
  if windows?
    win_ver = `ver`
    return win_ver.scan(/[\d.]+/).first
  end
  return `sw_vers -productVersion` if mac?
end

.osx?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/helpers/computer.rb', line 16

def self.osx?
  os == :osx
end

.windows?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/helpers/computer.rb', line 12

def self.windows?
  os == :windows
end