Sha256: a9e2565e4309e3e4268a7f42ae6de1acf602c81761f5cc1fe9b593d2ab9e1cde
Contents?: true
Size: 671 Bytes
Versions: 4
Compression:
Stored size: 671 Bytes
Contents
# frozen_string_literal: true class Zilla::Versions::V20::Parameter include Memery attr_reader :json, :definitions def initialize(json, definitions: {}) @json = json @definitions = definitions end [:name, :in, :description, :required, :type].each do |name| define_method(name) do json[name.to_s] end end def in?(location) = json["in"] == location def required? = !!@json["required"] def validate!(value) errors = schema.validate(value) raise ArgumentError, errors.to_a.to_s if errors.any? end memoize def schema = JSONSchemer.schema(json.merge("definitions" => definitions), insert_property_defaults: true) end
Version data entries
4 entries across 4 versions & 1 rubygems