Sha256: a5a2da69e372b17844a13517e37569b9b5e01147d48ad058da7b9d3a8741d6d3
Contents?: true
Size: 1 KB
Versions: 7
Compression:
Stored size: 1 KB
Contents
module SoberSwag module Reporting module Input ## # Input values that validate against a pattern class Pattern < Base def initialize(input, pattern) @input = input @pattern = pattern end ## # @return [#call] input type attr_reader :input ## # @return [#matches] regexp matcher attr_reader :pattern def call(value) val = input.call(value) return val if val.is_a?(Report::Base) if pattern.match?(value) value else Report::Value.new(["did not match pattern #{pattern}"]) end end def swagger_schema single, found = input.swagger_schema [add_schema_key(single, { pattern: formatted_pattern }), found] end ## # Try to format a pattern so it'll work nicely with JS. def formatted_pattern pattern.to_s.gsub('?-mix:', '') end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems