Sha256: 10cf0abdf327179502c7fe59e66afdf576f712452823267a91aecb079ce2ae9f

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

module Plutonium
  module Pkg
    module Concerns
      # Provides methods for validating Plutonium resources
      module ResourceValidatable
        extend ActiveSupport::Concern

        # Custom error class for invalid resources
        class InvalidResourceError < StandardError; end

        private

        # Validates if a given resource is a valid Plutonium::Resource::Record
        #
        # @param resource [Object] The resource to validate
        # @raise [InvalidResourceError] If the resource is not valid
        # @return [void]
        def validate_resource!(resource)
          unless valid_resource?(resource)
            raise InvalidResourceError, "#{resource} is not a valid Plutonium::Resource::Record"
          end
        end

        # Checks if a given resource is a valid Plutonium::Resource::Record
        #
        # @param resource [Object] The resource to check
        # @return [Boolean] True if the resource is valid, false otherwise
        def valid_resource?(resource)
          resource.is_a?(Class) && resource.include?(Plutonium::Resource::Record)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
plutonium-0.14.1 lib/plutonium/pkg/concerns/resource_validatable.rb
plutonium-0.14.0 lib/plutonium/pkg/concerns/resource_validatable.rb