Sha256: 8b10e7f3de9dadcc6f9383f2599dba225a52ab89df9a302f79f01de26bf14611
Contents?: true
Size: 863 Bytes
Versions: 2
Compression:
Stored size: 863 Bytes
Contents
# frozen_string_literal: true module LedgerSync module Type class ReferenceMany < Value # :nodoc: include ValueMixin attr_reader :resource_class def initialize(resource_class:) @resource_class = resource_class super() end def error_message(attribute:, resource:, value:) return super unless value.is_a?(Array) invalid_classes = value.reject { |e| e.is_a?(resource_class) }.map(&:class) "Attribute #{attribute.name} for #{resource.class.name} should be an array of #{resource_class.name}. Given array containing: #{invalid_classes.join(', ')}" end def type :reference_many end def valid_without_casting?(value:) return false unless value.is_a?(Array) value.reject { |e| e.is_a?(resource_class) }.empty? end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ledger_sync-1.1.3 | lib/ledger_sync/type/reference_many.rb |
ledger_sync-1.1.2 | lib/ledger_sync/type/reference_many.rb |