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



77
78
79
# File 'lib/aranea/failure_repository.rb', line 77

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

.clearObject



73
74
75
# File 'lib/aranea/failure_repository.rb', line 73

def clear
  cache.delete(KEY)
end

.getObject



69
70
71
# File 'lib/aranea/failure_repository.rb', line 69

def get
  cache.read(KEY)
end

.memory_storeObject



85
86
87
88
# File 'lib/aranea/failure_repository.rb', line 85

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

.rails_cacheObject



81
82
83
# File 'lib/aranea/failure_repository.rb', line 81

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

.store(failure, lifespan) ⇒ Object



64
65
66
67
# File 'lib/aranea/failure_repository.rb', line 64

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