Class: Pinspec::Emit::Namer
- Inherits:
-
Object
- Object
- Pinspec::Emit::Namer
- Defined in:
- lib/pinspec/emit/namer.rb
Defined Under Namespace
Classes: Facts
Constant Summary collapse
- MAX_DESCRIPTION =
120
Instance Method Summary collapse
- #describe(cases) ⇒ Object
- #enabled? ⇒ Boolean
-
#initialize(target:, enabled: false, client: nil) ⇒ Namer
constructor
A new instance of Namer.
- #payload(facts) ⇒ Object
Constructor Details
#initialize(target:, enabled: false, client: nil) ⇒ Namer
Returns a new instance of Namer.
12 13 14 15 16 |
# File 'lib/pinspec/emit/namer.rb', line 12 def initialize(target:, enabled: false, client: nil) @target = target @enabled = enabled @client = client end |
Instance Method Details
#describe(cases) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/pinspec/emit/namer.rb', line 22 def describe(cases) facts = cases.map { |input_case, observation| facts_for(input_case, observation) } fallback = facts.to_h { |fact| [fact.case_id, deterministic(fact)] } return fallback unless enabled? improved = request(facts) fallback.merge(sanitize(improved, fallback)) rescue StandardError fallback end |
#enabled? ⇒ Boolean
18 19 20 |
# File 'lib/pinspec/emit/namer.rb', line 18 def enabled? @enabled && !@client.nil? end |
#payload(facts) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/pinspec/emit/namer.rb', line 34 def payload(facts) { "task" => "Describe each characterization test case in one short phrase.", "constraints" => [ "Describe only the INPUTS and the kind of outcome.", "Never invent or state a concrete expected value.", "One phrase per case, at most #{MAX_DESCRIPTION} characters." ], "cases" => facts.map do |fact| { "id" => fact.case_id, "origin" => fact.origin.to_s, "outcome_kind" => fact.outcome.to_s, "method" => fact.method_name.to_s, "class" => fact.class_name.to_s, "parameter_names" => fact.parameters.map(&:to_s) } end } end |