Class: Comet::SpannedDestinationLocation
- Inherits:
-
Object
- Object
- Comet::SpannedDestinationLocation
- Defined in:
- lib/comet/models/spanned_destination_location.rb
Overview
SpannedDestinationLocation is a typed class wrapper around the underlying Comet Server API data structure.
Instance Attribute Summary collapse
-
#span_targets ⇒ Object
A list of underlying destinations, that will be combined and presented as one.
-
#span_use_static_slots ⇒ Object
If true, this Spanned destination will use a consistent hashing scheme to immediately find specific files on exactly one of the target destinations.
-
#unknown_json_fields ⇒ Object
Returns the value of attribute unknown_json_fields.
Instance Method Summary collapse
- #clear ⇒ Object
- #from_hash(obj) ⇒ Object
- #from_json(json_string) ⇒ Object
-
#initialize ⇒ SpannedDestinationLocation
constructor
A new instance of SpannedDestinationLocation.
-
#to_h ⇒ Hash
The complete object as a Ruby hash.
-
#to_hash ⇒ Hash
The complete object as a Ruby hash.
-
#to_json(options = {}) ⇒ String
The complete object as a JSON string.
Constructor Details
#initialize ⇒ SpannedDestinationLocation
Returns a new instance of SpannedDestinationLocation.
35 36 37 |
# File 'lib/comet/models/spanned_destination_location.rb', line 35 def initialize clear end |
Instance Attribute Details
#span_targets ⇒ Object
A list of underlying destinations, that will be combined and presented as one.
17 18 19 |
# File 'lib/comet/models/spanned_destination_location.rb', line 17 def span_targets @span_targets end |
#span_use_static_slots ⇒ Object
If true, this Spanned destination will use a consistent hashing scheme to immediately find specific files on exactly one of the target destinations. In the Static Slots mode, the span targets cannot be moved or merged, and the files must always remain in their original location.
If false, the Spanned destination system will search all targets to find the requested file. This is slightly slower, but allows you to freely merge, split, and reorder the underlying destination locations.
The default option is false.
30 31 32 |
# File 'lib/comet/models/spanned_destination_location.rb', line 30 def span_use_static_slots @span_use_static_slots end |
#unknown_json_fields ⇒ Object
Returns the value of attribute unknown_json_fields.
33 34 35 |
# File 'lib/comet/models/spanned_destination_location.rb', line 33 def unknown_json_fields @unknown_json_fields end |
Instance Method Details
#clear ⇒ Object
39 40 41 42 |
# File 'lib/comet/models/spanned_destination_location.rb', line 39 def clear @span_targets = [] @unknown_json_fields = {} end |
#from_hash(obj) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/comet/models/spanned_destination_location.rb', line 52 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 'SpanTargets' if v.nil? @span_targets = [] else @span_targets = Array.new(v.length) v.each_with_index do |v1, i1| @span_targets[i1] = Comet::DestinationLocation.new @span_targets[i1].from_hash(v1) end end when 'SpanUseStaticSlots' @span_use_static_slots = v else @unknown_json_fields[k] = v end end end |
#from_json(json_string) ⇒ Object
45 46 47 48 49 |
# File 'lib/comet/models/spanned_destination_location.rb', line 45 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_h ⇒ Hash
Returns The complete object as a Ruby hash.
87 88 89 |
# File 'lib/comet/models/spanned_destination_location.rb', line 87 def to_h to_hash end |
#to_hash ⇒ Hash
Returns The complete object as a Ruby hash.
76 77 78 79 80 81 82 83 84 |
# File 'lib/comet/models/spanned_destination_location.rb', line 76 def to_hash ret = {} ret['SpanTargets'] = @span_targets ret['SpanUseStaticSlots'] = @span_use_static_slots @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.
92 93 94 |
# File 'lib/comet/models/spanned_destination_location.rb', line 92 def to_json( = {}) to_hash.to_json() end |