Exception: Foobara::Value::DataError

Inherits:
Error
  • Object
show all
Defined in:
foobara-0.0.110/projects/value/src/data_error.rb

Direct Known Subclasses

BuiltinTypes::Array::SupportedValidators::Size::IncorrectTupleSizeError, BuiltinTypes::Attributes::SupportedProcessors::ElementTypeDeclarations::UnexpectedAttributesError, BuiltinTypes::Attributes::SupportedTransformers::Defaults::TypeDeclarationExtension::ExtendAttributesTypeDeclaration::TypeDeclarationValidators::HashWithSymbolicKeys::InvalidDefaultValuesGivenError, BuiltinTypes::Attributes::SupportedTransformers::Defaults::TypeDeclarationExtension::ExtendAttributesTypeDeclaration::TypeDeclarationValidators::ValidAttributeNames::InvalidDefaultValueGivenError, BuiltinTypes::Attributes::SupportedValidators::Required::MissingRequiredAttributeError, BuiltinTypes::Attributes::SupportedValidators::Required::TypeDeclarationExtension::ExtendAttributesTypeDeclaration::TypeDeclarationValidators::ArrayOfSymbols::InvalidRequiredAttributesValuesGivenError, BuiltinTypes::Attributes::SupportedValidators::Required::TypeDeclarationExtension::ExtendAttributesTypeDeclaration::TypeDeclarationValidators::ArrayWithValidAttributeNames::InvalidRequiredAttributeNameGivenError, BuiltinTypes::Duck::SupportedValidators::InstanceOf::NotInstanceOfError, BuiltinTypes::Duck::SupportedValidators::InstanceOf::TypeDeclarationExtension::ExtendRegisteredTypeDeclaration::TypeDeclarationValidators::IsValidClass::InvalidInstanceOfValueGivenError, BuiltinTypes::Duck::SupportedValidators::OneOf::ValueNotValidError, BuiltinTypes::Number::SupportedValidators::Max::MaxExceededError, BuiltinTypes::Number::SupportedValidators::Min::BelowMinimumError, BuiltinTypes::String::SupportedValidators::Matches::DoesNotMatchError, BuiltinTypes::String::SupportedValidators::MaxLength::MaxLengthExceededError, BuiltinTypes::Tuple::SupportedProcessors::ElementTypeDeclarations::TypeDeclarationExtension::ExtendTupleTypeDeclaration::TypeDeclarationValidators::SizeMatches::IncorrectSizeError, RemoteGenerator::WriteTypescriptToDisk::MissingManifestError, RemoteImports::ImportBase::NotFoundError, TypeDeclarations::Handlers::ExtendModelTypeDeclaration::ArrayWithSymbolicElements::InvalidPrivateValuesGivenError, TypeDeclarations::Handlers::ExtendModelTypeDeclaration::ValidAttributeNames::InvalidPrivateValueGivenError, TypeDeclarations::Handlers::ExtendRegisteredModelTypeDeclaration::MutableValidator::InvalidMutableValueGivenError, TypeDeclarations::TypeDeclarationError, Processor::Casting::CannotCastError, Processor::Selection::MoreThanOneApplicableProcessorError, Processor::Selection::NoApplicableProcessorError

Instance Attribute Summary

Attributes inherited from Error

#backtrace_when_initialized, #backtrace_when_raised, #context, #error_key, #is_fatal, #message

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Error

#==, abstract, abstract?, context, fatal?, #fatal?, foobara_manifest, #key, message, path, #prepend_path!, runtime_path, subclass, symbol, to_h, #to_h, types_depended_on

Methods included from Concern

foobara_class_methods_module_for, foobara_concern?, included

Constructor Details

#initialize(message: nil, symbol: nil, context: {}, path: nil) ⇒ DataError

Returns a new instance of DataError.



10
11
12
13
# File 'foobara-0.0.110/projects/value/src/data_error.rb', line 10

def initialize(message: nil, symbol: nil, context: {}, path: nil)
  args = { message:, symbol:, context:, path: }.compact
  super(**args.merge(category: self.class.category))
end

Class Method Details

.categoryObject



5
6
7
# File 'foobara-0.0.110/projects/value/src/data_error.rb', line 5

def category
  :data
end

Instance Method Details

#attribute_nameObject



15
16
17
18
19
# File 'foobara-0.0.110/projects/value/src/data_error.rb', line 15

def attribute_name
  # TODO: feels awkward... something is not right
  # how is path actually set?
  path.last || context[:attribute_name]
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
24
# File 'foobara-0.0.110/projects/value/src/data_error.rb', line 21

def eql?(other)
  # TODO: this doesn't feel right at all...
  super && other.is_a?(DataError) && path == other.path
end