Module: PBCore
- Defined in:
- lib/pbcore/errors.rb,
lib/pbcore.rb,
lib/pbcore/genre.rb,
lib/pbcore/title.rb,
lib/pbcore/vocab.rb,
lib/pbcore/creator.rb,
lib/pbcore/subject.rb,
lib/pbcore/version.rb,
lib/pbcore/coverage.rb,
lib/pbcore/relation.rb,
lib/pbcore/extension.rb,
lib/pbcore/publisher.rb,
lib/pbcore/annotation.rb,
lib/pbcore/asset_date.rb,
lib/pbcore/asset_type.rb,
lib/pbcore/attributes.rb,
lib/pbcore/identifier.rb,
lib/pbcore/contributor.rb,
lib/pbcore/description.rb,
lib/pbcore/creator/role.rb,
lib/pbcore/coverage/type.rb,
lib/pbcore/instantiation.rb,
lib/pbcore/relation/type.rb,
lib/pbcore/audience_level.rb,
lib/pbcore/extension/wrap.rb,
lib/pbcore/publisher/role.rb,
lib/pbcore/rights_summary.rb,
lib/pbcore/audience_rating.rb,
lib/pbcore/creator/creator.rb,
lib/pbcore/contributor/role.rb,
lib/pbcore/attributes/common.rb,
lib/pbcore/coverage/coverage.rb,
lib/pbcore/extension/embedded.rb,
lib/pbcore/instantiation/date.rb,
lib/pbcore/publisher/publisher.rb,
lib/pbcore/relation/identifier.rb,
lib/pbcore/rights_summary/link.rb,
lib/pbcore/description_document.rb,
lib/pbcore/extension/wrap/value.rb,
lib/pbcore/instantiation/colors.rb,
lib/pbcore/instantiation/rights.rb,
lib/pbcore/instantiation/tracks.rb,
lib/pbcore/instantiation/digital.rb,
lib/pbcore/extension/wrap/element.rb,
lib/pbcore/instantiation/duration.rb,
lib/pbcore/instantiation/language.rb,
lib/pbcore/instantiation/location.rb,
lib/pbcore/instantiation/physical.rb,
lib/pbcore/instantiation/relation.rb,
lib/pbcore/instantiation/standard.rb,
lib/pbcore/instantiation_document.rb,
lib/pbcore/rights_summary/summary.rb,
lib/pbcore/contributor/contributor.rb,
lib/pbcore/instantiation/data_rate.rb,
lib/pbcore/instantiation/extension.rb,
lib/pbcore/instantiation/file_size.rb,
lib/pbcore/attributes/time_interval.rb,
lib/pbcore/instantiation/annotation.rb,
lib/pbcore/instantiation/dimensions.rb,
lib/pbcore/instantiation/identifier.rb,
lib/pbcore/instantiation/media_type.rb,
lib/pbcore/instantiation/time_start.rb,
lib/pbcore/instantiation/generations.rb,
lib/pbcore/instantiation/rights/link.rb,
lib/pbcore/instantiation/essence_track.rb,
lib/pbcore/instantiation/relation/type.rb,
lib/pbcore/instantiation/rights/summary.rb,
lib/pbcore/extension/wrap/authority_used.rb,
lib/pbcore/instantiation/alternative_modes.rb,
lib/pbcore/instantiation/essence_track/type.rb,
lib/pbcore/instantiation/relation/identifier.rb,
lib/pbcore/instantiation/channel_configuration.rb,
lib/pbcore/instantiation/essence_track/duration.rb,
lib/pbcore/instantiation/essence_track/encoding.rb,
lib/pbcore/instantiation/essence_track/language.rb,
lib/pbcore/instantiation/essence_track/standard.rb,
lib/pbcore/instantiation/essence_track/bit_depth.rb,
lib/pbcore/instantiation/essence_track/data_rate.rb,
lib/pbcore/instantiation/essence_track/annotation.rb,
lib/pbcore/instantiation/essence_track/frame_rate.rb,
lib/pbcore/instantiation/essence_track/frame_size.rb,
lib/pbcore/instantiation/essence_track/identifier.rb,
lib/pbcore/instantiation/essence_track/time_start.rb,
lib/pbcore/instantiation/essence_track/aspect_ratio.rb,
lib/pbcore/instantiation/essence_track/sampling_rate.rb,
lib/pbcore/instantiation/essence_track/playback_speed.rb,
lib/pbcore/element.rb
Overview
PBCore Error classes and methods.
The classes and methods in this file intend to serve the following purposes:
1) Provide a base class for all PBCore errors, to that host applications can
easily rescue from all errors thrown by this gem.
2) Provide specific error classes, with specific error , for specific
situations. This helps developers of host applications to quickly solve
bugs they may encounter when using the gem.
3) Provide module specific module methods that will:
a) encapsulate conditional logic for specific situaitons
b) raise specific errors
New error classes should be created as new error conditions for specific situations arise. The pattern to follow should be:
1) Create a new error class that extends PBCore::Error.
2) The error class should be named in a way that indicates the specific
situation.
3) The constructor of the error class should use named arguments, and include
all information necessary to provide a detailed error to
developers, ideally with some kind of instruction on how to correct the
problem.
3) A module method should be created to encapsulate the logic need to
determine if an error should be raised.
4) The module name should beging with "fail_if_" or "fail_unless_", followed
by the snake-case name of the specific error class to be raised.
5) The module method should test the condition, and raise the specific
error. This implies that the module method must also receive all
information necessary to pass along to the constructor of the error
class.
Defined Under Namespace
Modules: Attributes, Vocab Classes: Annotation, AssetDate, AssetType, AudienceLevel, AudienceRating, BaseIsNotPBCoreElement, Contributor, Coverage, Creator, Description, DescriptionDocument, Element, ElementMissingBuildXMLBlock, Error, Extension, Genre, Identifier, Instantiation, InstantiationDocument, Publisher, Relation, RightsSummary, Subject, Title
Constant Summary collapse
- VERSION =
"0.2.0"
Class Method Summary collapse
- .fail_if_base_is_not_pbcore_element(included_module:, base:) ⇒ Object
- .fail_if_missing_build_xml_block(element_class:) ⇒ Object
Class Method Details
.fail_if_base_is_not_pbcore_element(included_module:, base:) ⇒ Object
42 43 44 |
# File 'lib/pbcore/errors.rb', line 42 def self.fail_if_base_is_not_pbcore_element(included_module:, base:) raise BaseIsNotPBCoreElement.new(included_module: included_module, base: base) unless base.ancestors.include? PBCore::Element end |
.fail_if_missing_build_xml_block(element_class:) ⇒ Object
52 53 54 |
# File 'lib/pbcore/errors.rb', line 52 def self.fail_if_missing_build_xml_block(element_class:) raise ElementMissingBuildXMLBlock.new(element_class: element_class) unless element_class.build_block end |