lib/alchemy/errors.rb
# frozen_string_literal: true
# Custom error classes.
#
module Alchemy
class DefaultLanguageNotFoundError < StandardError
# Raised if no default language configuration can be found.
def message
"No default language configuration found!" \
" Please ensure that you have a 'default_language' defined in Alchemy configuration file."
end
end
class DefaultSiteNotFoundError < StandardError
# Raised if no default site configuration can be found.
def message
"No default site configuration found!" \
" Please ensure that you have a 'default_site' defined in Alchemy configuration file."
end
end
class ElementDefinitionError < StandardError
# Raised if element definition can not be found.
def initialize(attributes)
@name = attributes[:name]
end
def message
"Element definition for #{@name} not found. Please check your elements.yml"
end
end
# Raised if calling +image_file+ on a Picture object returns nil.
class MissingImageFileError < StandardError; end
# Raised if calling +image_file+ on a Picture object returns nil.
class WrongImageFormatError < StandardError
def initialize(image, requested_format)
@image = image
@requested_format = requested_format
end
def message
allowed_filetypes = Alchemy::Picture.allowed_filetypes.map(&:upcase).to_sentence
"Requested image format (#{@requested_format.inspect}) for #{@image.inspect} is not one of allowed filetypes (#{allowed_filetypes})."
end
end
class NotMountedError < StandardError
# Raised if Alchemy is not properly mounted in the apps routes file.
def message
"Alchemy mount point not found! Please run `bin/rake alchemy:mount'"
end
end
class PictureInUseError < StandardError
# Raised if the picture is still in use and can not be deleted.
end
class TinymceError < StandardError; end
class UpdateServiceUnavailable < StandardError
# Raised if no successful connection to GitHub was possible
def message
"The update service is temporarily unavailable!"
end
end
class MissingActiveRecordAssociation < StandardError
# Raised if a alchemy_resource_relation is defined without proper ActiveRecord association
def message
"You need to define proper ActiveRecord associations, if you want to use alchemy_resource_relations."
end
end
class NoCurrentUserFoundError < StandardError
# Raised if no current_user is found to authorize against.
def message
"You need to provide a current_user method in your ApplicationController that returns the current authenticated user."
end
end
class UnsupportedPageVersion < StandardError
def message
"Unknown Version! Please use one of #{Alchemy::EagerLoading::PAGE_VERSIONS.join(", ")}"
end
end
end