Module: Natsuzora::Contract
- Defined in:
- lib/natsuzora/contract.rb,
lib/natsuzora/contract/ast.rb,
lib/natsuzora/contract/field.rb,
lib/natsuzora/contract/parser.rb,
lib/natsuzora/contract/ast/any.rb,
lib/natsuzora/contract/ast/ref.rb,
lib/natsuzora/contract/ast/list.rb,
lib/natsuzora/contract/ast/node.rb,
lib/natsuzora/contract/document.rb,
lib/natsuzora/contract/type_def.rb,
lib/natsuzora/contract/validator.rb,
lib/natsuzora/contract/ast/record.rb,
lib/natsuzora/contract/ast/scalar.rb,
lib/natsuzora/contract/diff_marker.rb,
lib/natsuzora/contract/parse_error.rb,
lib/natsuzora/contract/scalar_type.rb,
lib/natsuzora/contract/compiled_lexer.rb,
lib/natsuzora/contract/type_ref_resolver.rb,
lib/natsuzora/contract/validation_target.rb
Overview
Contract notation (formerly the standalone ‘subaru` gem). Parses `.ntzc` files into a Contract tree, validates JSON data against contracts, and supports two-generation diff markers (`+`, `-`, `*`).
Defined Under Namespace
Modules: AST, CompiledLexer, DiffMarker, ScalarType, ValidationTarget Classes: Document, Error, Field, ParseError, Parser, TypeDef, TypeRefResolver, ValidationError, Validator
Class Method Summary collapse
-
.parse(input) ⇒ Object
Parse contract notation into a resolved Contract.
-
.parse_file(input) ⇒ Object
Parse contract notation into a Document.
-
.parse_file_with_diff(input) ⇒ Object
Parse contract notation with diff markers.
-
.validate(contract, data) ⇒ Object
Validate JSON data against a contract.
-
.validate_with_target(document, data, target: ValidationTarget::CURRENT) ⇒ Object
Validate JSON data against a contract file with diff markers.
Class Method Details
.parse(input) ⇒ Object
Parse contract notation into a resolved Contract.
344 345 346 347 348 |
# File 'lib/natsuzora/contract/parser.rb', line 344 def self.parse(input) parser = Parser.new(input) file = parser.parse_file file.to_contract end |
.parse_file(input) ⇒ Object
Parse contract notation into a Document.
351 352 353 354 |
# File 'lib/natsuzora/contract/parser.rb', line 351 def self.parse_file(input) parser = Parser.new(input) parser.parse_file end |
.parse_file_with_diff(input) ⇒ Object
Parse contract notation with diff markers.
357 358 359 360 |
# File 'lib/natsuzora/contract/parser.rb', line 357 def self.parse_file_with_diff(input) parser = Parser.new(input) parser.parse_file_with_diff end |
.validate(contract, data) ⇒ Object
Validate JSON data against a contract.
168 169 170 171 |
# File 'lib/natsuzora/contract/validator.rb', line 168 def self.validate(contract, data) # rubocop:disable Naming/PredicateMethod Validator.validate(contract, data) true end |
.validate_with_target(document, data, target: ValidationTarget::CURRENT) ⇒ Object
Validate JSON data against a contract file with diff markers.
174 175 176 177 |
# File 'lib/natsuzora/contract/validator.rb', line 174 def self.validate_with_target(document, data, target: ValidationTarget::CURRENT) # rubocop:disable Naming/PredicateMethod Validator.validate_with_target(document, data, target: target) true end |