Class: DeepCover::Coverage::Persistence
- Inherits:
-
Object
- Object
- DeepCover::Coverage::Persistence
- Defined in:
- lib/deep_cover/coverage.rb
Constant Summary collapse
- BASENAME =
rubocop:disable Security/MarshalLoad
'coverage.dc'
- TRACKER_TEMPLATE =
'trackers%{unique}.dct'
Instance Attribute Summary collapse
-
#dir_path ⇒ Object
readonly
Returns the value of attribute dir_path.
Instance Method Summary collapse
-
#initialize(dest_path, dirname) ⇒ Persistence
constructor
A new instance of Persistence.
- #load(with_trackers: true) ⇒ Object
- #save(coverage) ⇒ Object
- #save_trackers(global) ⇒ Object
- #saved? ⇒ Boolean
Constructor Details
#initialize(dest_path, dirname) ⇒ Persistence
Returns a new instance of Persistence.
125 126 127 |
# File 'lib/deep_cover/coverage.rb', line 125 def initialize(dest_path, dirname) @dir_path = Pathname(dest_path).join(dirname). end |
Instance Attribute Details
#dir_path ⇒ Object (readonly)
Returns the value of attribute dir_path.
124 125 126 |
# File 'lib/deep_cover/coverage.rb', line 124 def dir_path @dir_path end |
Instance Method Details
#load(with_trackers: true) ⇒ Object
129 130 131 132 133 |
# File 'lib/deep_cover/coverage.rb', line 129 def load(with_trackers: true) saved? load_trackers if with_trackers load_coverage end |
#save(coverage) ⇒ Object
135 136 137 138 139 |
# File 'lib/deep_cover/coverage.rb', line 135 def save(coverage) create_if_needed delete_trackers save_coverage(coverage) end |
#save_trackers(global) ⇒ Object
141 142 143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/deep_cover/coverage.rb', line 141 def save_trackers(global) saved? trackers = eval(global) # rubocop:disable Security/Eval # Some testing involves more than one process, some of which don't run any of our covered code. # Don't save anything if that's the case return if trackers.nil? basename = format(TRACKER_TEMPLATE, unique: SecureRandom.urlsafe_base64) dir_path.join(basename).binwrite(Marshal.dump( version: DeepCover::VERSION, global: global, trackers: trackers, )) end |
#saved? ⇒ Boolean
155 156 157 158 |
# File 'lib/deep_cover/coverage.rb', line 155 def saved? raise "Can't find folder '#{dir_path}'" unless dir_path.exist? self end |