Sha256: a1e18edc5fbb6375acec29e6ac89f7cf2a55bef70545232ab46f852a96b4019a
Contents?: true
Size: 854 Bytes
Versions: 40
Compression:
Stored size: 854 Bytes
Contents
# frozen_string_literal: true module Playbook module Props class Error < StandardError; end class Base attr_reader :default, :required, :name, :kit def initialize(default: nil, required: false, name:, kit:) @default = default @required = required @name = name @kit = kit end def value(value) value.nil? ? @default : value end def validate!(input_value) raise(Playbook::Props::Error, "#{kit} prop '#{name}' of type #{inspect.class} is required and needs a value") if required && input_value.nil? validate(value(input_value)) || raise(Playbook::Props::Error, "#{kit} has invalid value of '#{input_value.inspect}' for prop '#{name}' of type #{inspect.class}") end def validate(_value) true end end end end
Version data entries
40 entries across 40 versions & 1 rubygems