class EasyJSONMatcher::ValidationChainFactory
Public Class Methods
assemble_chain(head:, steps:, step_type:)
click to toggle source
# File lib/easy_json_matcher/validation_chain_factory.rb, line 15 def assemble_chain(head:, steps:, step_type:) steps.inject(head) do |last_link, step| last_link >> get_step_for(validating: step, uses: step_type) end end
create_head_for(steps:, step_type:)
click to toggle source
# File lib/easy_json_matcher/validation_chain_factory.rb, line 21 def create_head_for(steps:, step_type:) is_required = steps.delete(:required) get_step_for validating: is_required ? :required : :not_required, uses: step_type end
get_chain(steps:, of: ValidationStep)
click to toggle source
# File lib/easy_json_matcher/validation_chain_factory.rb, line 9 def get_chain(steps:, of: ValidationStep) head = create_head_for(steps: steps, step_type: of) assemble_chain(head: head, steps: steps, step_type: of) head end
get_step_for(validating:, uses: ValidationStep)
click to toggle source
# File lib/easy_json_matcher/validation_chain_factory.rb, line 26 def get_step_for(validating:, uses: ValidationStep) if validating.respond_to? :call uses.new verify_with: validating elsif verifier = standard_validator(with: validating) uses.new verify_with: verifier elsif schema = SchemaLibrary.get_schema(name: validating) schema else #This is just here as a catch-all. The prior step should always succeed. raise UnknownValidationStepError.new(type: validating) end end
standard_validator(with:)
click to toggle source
# File lib/easy_json_matcher/validation_chain_factory.rb, line 40 def self.standard_validator(with:) require "easy_json_matcher/validation_rules" VALIDATION_RULES[with] end