Class: Comet::OSInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/comet/models/osinfo.rb

Overview

OSInfo is a typed class wrapper around the underlying Comet Server API data structure. OSInfo represents the common set of version information between all operating systems

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeOSInfo

Returns a new instance of OSInfo.



41
42
43
# File 'lib/comet/models/osinfo.rb', line 41

def initialize
  clear
end

Instance Attribute Details

#archObject

The GOARCH value This field is available in Comet 23.6.0 and later.



36
37
38
# File 'lib/comet/models/osinfo.rb', line 36

def arch
  @arch
end

#buildObject

The detailed build number (e.g. 19043)



26
27
28
# File 'lib/comet/models/osinfo.rb', line 26

def build
  @build
end

#distributionObject

The primary presentation name (e.g. “Windows 10 Pro”, “debian”, “Synology DSM”)



22
23
24
# File 'lib/comet/models/osinfo.rb', line 22

def distribution
  @distribution
end

#osObject

The GOOS value This field is available in Comet 23.6.0 and later.



31
32
33
# File 'lib/comet/models/osinfo.rb', line 31

def os
  @os
end

#unknown_json_fieldsObject

Returns the value of attribute unknown_json_fields.



39
40
41
# File 'lib/comet/models/osinfo.rb', line 39

def unknown_json_fields
  @unknown_json_fields
end

#versionObject

The primary version number (e.g. on Windows: 1703 / 2009, on Linux: 20.04 / 22.04)



18
19
20
# File 'lib/comet/models/osinfo.rb', line 18

def version
  @version
end

Instance Method Details

#clearObject



45
46
47
48
49
50
51
52
# File 'lib/comet/models/osinfo.rb', line 45

def clear
  @version = ''
  @distribution = ''
  @build = ''
  @os = ''
  @arch = ''
  @unknown_json_fields = {}
end

#from_hash(obj) ⇒ Object

Parameters:

  • obj (Hash)

    The complete object as a Ruby hash

Raises:

  • (TypeError)


62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/comet/models/osinfo.rb', line 62

def from_hash(obj)
  raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash

  obj.each do |k, v|
    case k
    when 'version'
      raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String

      @version = v
    when 'distribution'
      raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String

      @distribution = v
    when 'build'
      raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String

      @build = v
    when 'os'
      raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String

      @os = v
    when 'arch'
      raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String

      @arch = v
    else
      @unknown_json_fields[k] = v
    end
  end
end

#from_json(json_string) ⇒ Object

Parameters:

  • json_string (String)

    The complete object in JSON format

Raises:

  • (TypeError)


55
56
57
58
59
# File 'lib/comet/models/osinfo.rb', line 55

def from_json(json_string)
  raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String

  from_hash(JSON.parse(json_string))
end

#to_hHash

Returns The complete object as a Ruby hash.

Returns:

  • (Hash)

    The complete object as a Ruby hash



118
119
120
# File 'lib/comet/models/osinfo.rb', line 118

def to_h
  to_hash
end

#to_hashHash

Returns The complete object as a Ruby hash.

Returns:

  • (Hash)

    The complete object as a Ruby hash



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/comet/models/osinfo.rb', line 94

def to_hash
  ret = {}
  unless @version.nil?
    ret['version'] = @version
  end
  unless @distribution.nil?
    ret['distribution'] = @distribution
  end
  unless @build.nil?
    ret['build'] = @build
  end
  unless @os.nil?
    ret['os'] = @os
  end
  unless @arch.nil?
    ret['arch'] = @arch
  end
  @unknown_json_fields.each do |k, v|
    ret[k] = v
  end
  ret
end

#to_json(options = {}) ⇒ String

Returns The complete object as a JSON string.

Returns:

  • (String)

    The complete object as a JSON string



123
124
125
# File 'lib/comet/models/osinfo.rb', line 123

def to_json(options = {})
  to_hash.to_json(options)
end