Class: Hypertube::Core::ReferenceCache::ReferencesCache
- Inherits:
-
Object
- Object
- Hypertube::Core::ReferenceCache::ReferencesCache
- Defined in:
- lib/hypertube-ruby-sdk/core/reference_cache/references_cache.rb
Class Method Summary collapse
Instance Method Summary collapse
- #cache_reference(object_reference) ⇒ Object
- #delete_reference(guid) ⇒ Object
- #generate_uuid ⇒ Object
-
#initialize ⇒ ReferencesCache
constructor
A new instance of ReferencesCache.
- #resolve_reference(guid) ⇒ Object
Constructor Details
#initialize ⇒ ReferencesCache
Returns a new instance of ReferencesCache.
12 13 14 |
# File 'lib/hypertube-ruby-sdk/core/reference_cache/references_cache.rb', line 12 def initialize @references_cache = {} end |
Class Method Details
.instance ⇒ Object
8 9 10 |
# File 'lib/hypertube-ruby-sdk/core/reference_cache/references_cache.rb', line 8 def self.instance @instance ||= new end |
Instance Method Details
#cache_reference(object_reference) ⇒ Object
16 17 18 19 20 |
# File 'lib/hypertube-ruby-sdk/core/reference_cache/references_cache.rb', line 16 def cache_reference(object_reference) uuid_ = generate_uuid @references_cache[uuid_] = object_reference uuid_ end |
#delete_reference(guid) ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/hypertube-ruby-sdk/core/reference_cache/references_cache.rb', line 30 def delete_reference(guid) return false if guid.nil? if @references_cache.key?(guid) @references_cache.delete(guid) true else false end end |
#generate_uuid ⇒ Object
41 42 43 |
# File 'lib/hypertube-ruby-sdk/core/reference_cache/references_cache.rb', line 41 def generate_uuid [8, 4, 4, 4, 12].map { |n| rand(16**n).to_s(16).rjust(n, '0') }.join('-') end |
#resolve_reference(guid) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/hypertube-ruby-sdk/core/reference_cache/references_cache.rb', line 22 def resolve_reference(guid) if @references_cache[guid].nil? raise "Unable to resolve reference with id: #{guid}" else @references_cache[guid] end end |