Class: RSpec::Hermetic::CandidateReport

Inherits:
Object
  • Object
show all
Defined in:
lib/rspec/hermetic/candidate_report.rb,
sig/rspec/hermetic.rbs

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ CandidateReport

Returns a new instance of CandidateReport.

Parameters:

  • path (String)


9
10
11
# File 'lib/rspec/hermetic/candidate_report.rb', line 9

def initialize(path)
  @path = path
end

Instance Method Details

#append(candidate) ⇒ Object

Parameters:

  • candidate (Hash[String, untyped])

Returns:

  • (Object)


13
14
15
16
17
# File 'lib/rspec/hermetic/candidate_report.rb', line 13

def append(candidate)
  candidates = read
  candidates << candidate
  write(candidates)
end

#readArray[Hash[String, untyped]]

Returns:

  • (Array[Hash[String, untyped]])


19
20
21
22
23
24
25
26
27
28
29
# File 'lib/rspec/hermetic/candidate_report.rb', line 19

def read
  return [] unless @path && File.exist?(@path)

  content = File.read(@path)
  return [] if content.strip.empty?

  parsed = JSON.parse(content)
  parsed.is_a?(Array) ? parsed : [parsed]
rescue JSON::ParserError
  read_json_lines
end