Class: Aranea::Failure::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/aranea/failure_repository.rb

Overview

TODO: Actually implement Repository pattern, dependency injection and all. As is we only support sharing between multiple instances if Rails.cache exists and does

Constant Summary collapse

KEY =
'aranea_current_failure'

Class Method Summary collapse

Class Method Details

.cacheObject



75
76
77
# File 'lib/aranea/failure_repository.rb', line 75

def cache
  @cache ||= rails_cache || memory_store
end

.clearObject



71
72
73
# File 'lib/aranea/failure_repository.rb', line 71

def clear
  cache.delete(KEY)
end

.getObject



67
68
69
# File 'lib/aranea/failure_repository.rb', line 67

def get
  cache.read(KEY)
end

.memory_storeObject



83
84
85
86
# File 'lib/aranea/failure_repository.rb', line 83

def memory_store
  require 'active_support/cache'
  ActiveSupport::Cache::MemoryStore.new
end

.rails_cacheObject



79
80
81
# File 'lib/aranea/failure_repository.rb', line 79

def rails_cache
  defined?(Rails.cache) && Rails.cache
end

.store(failure, lifespan) ⇒ Object



62
63
64
65
# File 'lib/aranea/failure_repository.rb', line 62

def store(failure, lifespan)
  failure.expiration_date = Time.now + lifespan
  cache.write(KEY, failure, expires_in: lifespan)
end