Sha256: c9716557ef3d0296e05950aa076764519965faebb8e882e7ba7e485550f2be8b

Contents?: true

Size: 718 Bytes

Versions: 6

Compression:

Stored size: 718 Bytes

Contents

# frozen_string_literal: true

# Mixin for lib-specific Type functions
module LedgerSync
  module Type
    module ValueMixin
      def self.included(base)
        base.include SimplySerializable::Mixin
      end

      def cast?
        false
      end

      def error_message(attribute:, resource:, value:)
        "Attribute #{attribute.name} for #{resource.class.name} should be a class supported by #{self.class.name}.  Given: #{value.class}"
      end

      def valid_classes
        raise NotImplementedError
      end

      def valid_without_casting?(value:)
        return true if value.nil?
        return true if valid_classes.select { |e| value.is_a?(e) }.any?

        false
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ledger_sync-1.3.4 lib/ledger_sync/type/value_mixin.rb
ledger_sync-1.3.3 lib/ledger_sync/type/value_mixin.rb
ledger_sync-1.3.2 lib/ledger_sync/type/value_mixin.rb
ledger_sync-1.3.1 lib/ledger_sync/type/value_mixin.rb
ledger_sync-1.1.3 lib/ledger_sync/type/value_mixin.rb
ledger_sync-1.1.2 lib/ledger_sync/type/value_mixin.rb