Class: GrapeOAS::Introspectors::DryIntrospectorSupport::RuleIndex
- Inherits:
-
Object
- Object
- GrapeOAS::Introspectors::DryIntrospectorSupport::RuleIndex
- Defined in:
- lib/grape_oas/introspectors/dry_introspector_support/rule_index.rb
Overview
Builds path-aware constraint and required field indexes from dry-schema AST
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(contract_schema) ⇒ RuleIndex
constructor
A new instance of RuleIndex.
- #to_a ⇒ Object
Constructor Details
#initialize(contract_schema) ⇒ RuleIndex
Returns a new instance of RuleIndex.
12 13 14 15 16 17 18 19 |
# File 'lib/grape_oas/introspectors/dry_introspector_support/rule_index.rb', line 12 def initialize(contract_schema) @walker = AstWalker.new(ConstraintExtractor::ConstraintSet) @merger = ConstraintMerger @constraints_by_path = {} @required_by_object_path = Hash.new { |h, k| h[k] = {} } build_indexes(contract_schema) end |
Class Method Details
.build(contract_schema) ⇒ Object
21 22 23 |
# File 'lib/grape_oas/introspectors/dry_introspector_support/rule_index.rb', line 21 def self.build(contract_schema) new(contract_schema).to_a end |
Instance Method Details
#to_a ⇒ Object
25 26 27 |
# File 'lib/grape_oas/introspectors/dry_introspector_support/rule_index.rb', line 25 def to_a [@constraints_by_path, @required_by_object_path.transform_values(&:keys)] end |