Class: RegoValidate::ErrorReporter

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby/rego/cli.rb

Overview

Formats and emits CLI errors to stderr/stdout.

Defined Under Namespace

Classes: ErrorPayload, JsonFormatter, TextFormatter

Constant Summary collapse

FORMATTERS =
{
  "json" => JsonFormatter,
  "text" => TextFormatter
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(stdout:, stderr:, format: "text") ⇒ ErrorReporter

Create an error reporter.

Parameters:

  • stdout (IO)
  • stderr (IO)
  • format (String) (defaults to: "text")


1102
1103
1104
# File 'lib/ruby/rego/cli.rb', line 1102

def initialize(stdout:, stderr:, format: "text")
  @formatter = FORMATTERS.fetch(format, TextFormatter).new(stdout: stdout, stderr: stderr)
end

Instance Method Details

#error(message, parser = nil) ⇒ void

This method returns an undefined value.

Emit a generic CLI error.

Parameters:

  • message (String)
  • parser (OptionParser, nil) (defaults to: nil)


1111
1112
1113
# File 'lib/ruby/rego/cli.rb', line 1111

def error(message, parser = nil)
  @formatter.error(message, parser)
end

#rego_error(error) ⇒ void

This method returns an undefined value.

Emit a Ruby::Rego error with location details.

Parameters:



1119
1120
1121
# File 'lib/ruby/rego/cli.rb', line 1119

def rego_error(error)
  @formatter.rego_error(error)
end