Class: Pinspec::Emit::StabilityFilter
- Inherits:
-
Object
- Object
- Pinspec::Emit::StabilityFilter
- Defined in:
- lib/pinspec/emit/stability_filter.rb
Defined Under Namespace
Constant Summary collapse
- COMPARED =
%w[status return_value error enqueued_jobs mail_deliveries db_delta].freeze
- OPTIONAL =
%w[sql_fingerprints].freeze
- NEVER_COMPARED =
%w[duration_ms flags setup_error].freeze
- MAX_DIFF_LINES =
10
Instance Method Summary collapse
- #compared_fields ⇒ Object
- #filter(runs) ⇒ Object
-
#initialize(compare_sql: false) ⇒ StabilityFilter
constructor
A new instance of StabilityFilter.
Constructor Details
#initialize(compare_sql: false) ⇒ StabilityFilter
Returns a new instance of StabilityFilter.
44 45 46 |
# File 'lib/pinspec/emit/stability_filter.rb', line 44 def initialize(compare_sql: false) @compare_sql = compare_sql end |
Instance Method Details
#compared_fields ⇒ Object
48 49 50 |
# File 'lib/pinspec/emit/stability_filter.rb', line 48 def compared_fields @compare_sql ? COMPARED + OPTIONAL : COMPARED end |
#filter(runs) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/pinspec/emit/stability_filter.rb', line 52 def filter(runs) first, *rest = Array(runs) raise ArgumentError, "stability needs at least one run" if first.nil? verdicts = first.observations.map do |observation| others = rest.map { |run| run.observation(observation["case_id"]) } verdict_for(observation, others) end Report.new(verdicts: verdicts, runs: Array(runs).size, compared_fields: compared_fields) end |