Class: Comet::ContentMeasurementComponent

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

Overview

ContentMeasurementComponent is a typed class wrapper around the underlying Comet Server API data structure.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeContentMeasurementComponent

Returns a new instance of ContentMeasurementComponent.



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

def initialize
  clear
end

Instance Attribute Details

#bytesObject

Returns the value of attribute bytes.



16
17
18
# File 'lib/comet/models/content_measurement_component.rb', line 16

def bytes
  @bytes
end

#unknown_json_fieldsObject

Returns the value of attribute unknown_json_fields.



34
35
36
# File 'lib/comet/models/content_measurement_component.rb', line 34

def unknown_json_fields
  @unknown_json_fields
end

#used_byObject

A list of strings describing which groups of snapshots rely on reaching this component of data. The strings may take the following formats:

  • source_id/CURRENT - this data is required by the most recent backup job snapshot for the listed

Protected Item source.

  • source_id/HISTORIC - this data is required by an older backup job snapshot for the listed

Protected Item source.

  • TRUNCATED/* - there are too many separate components to show, and this component represents data

that is used by some other combination of components. If present, it will be the only entry in the UsedBy array.

  • the empty string - this amount of data is not currently referenced by any backup job snapshots.

If that remains the case by the next retention pass, this much data will be deleted to free up space. If present, it will be the only entry in the UsedBy array.



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

def used_by
  @used_by
end

Instance Method Details

#clearObject



40
41
42
43
44
# File 'lib/comet/models/content_measurement_component.rb', line 40

def clear
  @bytes = 0
  @used_by = []
  @unknown_json_fields = {}
end

#from_hash(obj) ⇒ Object

Parameters:

  • obj (Hash)

    The complete object as a Ruby hash

Raises:

  • (TypeError)


54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/comet/models/content_measurement_component.rb', line 54

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 'Bytes'
      raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric

      @bytes = v
    when 'UsedBy'
      if v.nil?
        @used_by = []
      else
        @used_by = Array.new(v.length)
        v.each_with_index do |v1, i1|
          raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String

          @used_by[i1] = v1
        end
      end
    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)


47
48
49
50
51
# File 'lib/comet/models/content_measurement_component.rb', line 47

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



92
93
94
# File 'lib/comet/models/content_measurement_component.rb', line 92

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



81
82
83
84
85
86
87
88
89
# File 'lib/comet/models/content_measurement_component.rb', line 81

def to_hash
  ret = {}
  ret['Bytes'] = @bytes
  ret['UsedBy'] = @used_by
  @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



97
98
99
# File 'lib/comet/models/content_measurement_component.rb', line 97

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