Module: AnimateIt::TrackDocumentSchema
- Defined in:
- lib/animate_it/track_document_schema.rb
Overview
Validates the server/browser track-document boundary before embedding it.
Constant Summary collapse
- CURRENT_VERSION =
2- SUPPORTED_VERSIONS =
[1, CURRENT_VERSION].freeze
Class Method Summary collapse
Class Method Details
.validate!(document) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/animate_it/track_document_schema.rb', line 9 def validate!(document) data = document.respond_to?(:as_json) ? document.as_json : document raise Error, "AnimateIt track document must be a JSON object" unless data.is_a?(Hash) version = data["v"] unless SUPPORTED_VERSIONS.include?(version) raise Error, "Unsupported AnimateIt track schema #{version.inspect}; " \ "supported versions are #{SUPPORTED_VERSIONS.join(", ")}" end validate_positive_number!(data, "fps") validate_positive_integer!(data, "duration") validate_hash!(data, "groups") validate_hash!(data, "texts") validate_array!(data, "layers") validate_v2!(data) if version == CURRENT_VERSION data end |