Class: GrapeOAS::Introspectors::DryIntrospectorSupport::ConstraintExtractor
- Inherits:
-
Object
- Object
- GrapeOAS::Introspectors::DryIntrospectorSupport::ConstraintExtractor
- Defined in:
- lib/grape_oas/introspectors/dry_introspector_support/constraint_extractor.rb
Overview
Extracts constraint information from Dry::Schema AST nodes. Delegates AST walking to AstWalker and merging to ConstraintMerger.
Defined Under Namespace
Classes: ConstraintSet
Class Method Summary collapse
Instance Method Summary collapse
- #extract ⇒ Object
-
#initialize(contract) ⇒ ConstraintExtractor
constructor
A new instance of ConstraintExtractor.
Constructor Details
#initialize(contract) ⇒ ConstraintExtractor
Returns a new instance of ConstraintExtractor.
25 26 27 28 |
# File 'lib/grape_oas/introspectors/dry_introspector_support/constraint_extractor.rb', line 25 def initialize(contract) @contract = contract @ast_walker = AstWalker.new(ConstraintSet) end |
Class Method Details
.extract(contract) ⇒ Object
21 22 23 |
# File 'lib/grape_oas/introspectors/dry_introspector_support/constraint_extractor.rb', line 21 def self.extract(contract) new(contract).extract end |
Instance Method Details
#extract ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/grape_oas/introspectors/dry_introspector_support/constraint_extractor.rb', line 30 def extract constraints = Hash.new { |h, k| h[k] = ConstraintSet.new(unhandled_predicates: []) } extract_from_rules(constraints) extract_from_types(constraints) constraints rescue NoMethodError, TypeError {} end |