class RSpec::Core::ExampleStatusPersister
Persists example ids and their statuses so that we can filter to just the ones that failed the last time they ran. @private
Public Class Methods
load_from(file_name)
click to toggle source
# File lib/rspec/core/example_status_persister.rb, line 9 def self.load_from(file_name) return [] unless File.exist?(file_name) ExampleStatusParser.parse(File.read(file_name)) end
new(examples, file_name)
click to toggle source
# File lib/rspec/core/example_status_persister.rb, line 18 def initialize(examples, file_name) @examples = examples @file_name = file_name end
persist(examples, file_name)
click to toggle source
# File lib/rspec/core/example_status_persister.rb, line 14 def self.persist(examples, file_name) new(examples, file_name).persist end
Public Instance Methods
persist()
click to toggle source
# File lib/rspec/core/example_status_persister.rb, line 23 def persist write dumped_statuses end
Private Instance Methods
dumped_statuses()
click to toggle source
# File lib/rspec/core/example_status_persister.rb, line 34 def dumped_statuses ExampleStatusDumper.dump(merged_statuses) end
merged_statuses()
click to toggle source
# File lib/rspec/core/example_status_persister.rb, line 38 def merged_statuses ExampleStatusMerger.merge(statuses_from_this_run, statuses_from_previous_runs) end
statuses_from_previous_runs()
click to toggle source
# File lib/rspec/core/example_status_persister.rb, line 54 def statuses_from_previous_runs self.class.load_from(@file_name) end
statuses_from_this_run()
click to toggle source
# File lib/rspec/core/example_status_persister.rb, line 42 def statuses_from_this_run @examples.map do |ex| result = ex.execution_result { :example_id => ex.id, :status => result.status ? result.status.to_s : Configuration::UNKNOWN_STATUS, :run_time => result.run_time ? Formatters::Helpers.format_duration(result.run_time) : "" } end end
write(statuses)
click to toggle source
# File lib/rspec/core/example_status_persister.rb, line 29 def write(statuses) RSpec::Support::DirectoryMaker.mkdir_p(File.dirname(@file_name)) File.open(@file_name, "w") { |f| f.write(statuses) } end