Class: Coverband::Adapters::MemcachedStore
- Inherits:
-
Base
- Object
- Base
- Coverband::Adapters::MemcachedStore
show all
- Defined in:
- lib/coverband/adapters/memcached_store.rb
Constant Summary
collapse
- STORAGE_FORMAT_VERSION =
"coverband_3_2"
Constants inherited
from Base
Base::ABSTRACT_KEY, Base::DATA_KEY, Base::FILE_HASH, Base::FIRST_UPDATED_KEY, Base::LAST_UPDATED_KEY
Instance Attribute Summary collapse
Attributes inherited from Base
#type
Instance Method Summary
collapse
Methods inherited from Base
#covered_files, #get_coverage_report, #size_in_mib
Constructor Details
#initialize(memcached, opts = {}) ⇒ MemcachedStore
Returns a new instance of MemcachedStore.
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/coverband/adapters/memcached_store.rb', line 10
def initialize(memcached, opts = {})
super()
@memcached = memcached
@memcached_namespace = opts[:memcached_namespace]
@format_version = STORAGE_FORMAT_VERSION
@keys = {}
Coverband::TYPES.each do |type|
@keys[type] = [@format_version, @memcached_namespace, type].compact.join(".")
end
end
|
Instance Attribute Details
#memcached ⇒ Object
Returns the value of attribute memcached.
62
63
64
|
# File 'lib/coverband/adapters/memcached_store.rb', line 62
def memcached
@memcached
end
|
#memcached_namespace ⇒ Object
Returns the value of attribute memcached_namespace.
8
9
10
|
# File 'lib/coverband/adapters/memcached_store.rb', line 8
def memcached_namespace
@memcached_namespace
end
|
Instance Method Details
#clear! ⇒ Object
21
22
23
24
25
|
# File 'lib/coverband/adapters/memcached_store.rb', line 21
def clear!
Coverband::TYPES.each do |type|
@memcached.delete(type_base_key(type))
end
end
|
#clear_file!(filename) ⇒ Object
27
28
29
30
31
32
33
|
# File 'lib/coverband/adapters/memcached_store.rb', line 27
def clear_file!(filename)
Coverband::TYPES.each do |type|
data = coverage(type)
data.delete(filename)
save_coverage(data, type)
end
end
|
#coverage(local_type = nil, opts = {}) ⇒ Object
44
45
46
47
48
49
50
|
# File 'lib/coverband/adapters/memcached_store.rb', line 44
def coverage(local_type = nil, opts = {})
local_type ||= opts.key?(:override_type) ? opts[:override_type] : type
data = memcached.read(type_base_key(local_type))
data = data ? JSON.parse(data) : {}
data.delete_if { |file_path, file_data| file_hash(file_path) != file_data["file_hash"] } unless opts[:skip_hash_check]
data
end
|
#raw_store ⇒ Object
58
59
60
|
# File 'lib/coverband/adapters/memcached_store.rb', line 58
def raw_store
raise NotImplementedError, "MemcachedStore doesn't support raw_store"
end
|
#save_report(report) ⇒ Object
52
53
54
55
56
|
# File 'lib/coverband/adapters/memcached_store.rb', line 52
def save_report(report)
data = report.dup
data = merge_reports(data, coverage(nil, skip_hash_check: true))
save_coverage(data)
end
|
#size ⇒ Object
35
36
37
|
# File 'lib/coverband/adapters/memcached_store.rb', line 35
def size
@memcached.read(base_key) ? @memcached.read(base_key).bytesize : "N/A"
end
|
#type=(type) ⇒ Object
39
40
41
42
|
# File 'lib/coverband/adapters/memcached_store.rb', line 39
def type=(type)
super
reset_base_key
end
|