Sha256: 34d5a5102018eef859814f564457aba777d9d62a3433b293874633f6431157b7

Contents?: true

Size: 926 Bytes

Versions: 36

Compression:

Stored size: 926 Bytes

Contents

module Pageflow
  module EntryExportImport
    # @api private
    module PageTypeVersions
      extend self

      class IncompatibleVersionsError < StandardError; end

      def dump
        Pageflow.config.page_types.each_with_object({}) do |page_type, version_requirements|
          version_requirements[page_type.name] = page_type.export_version
        end
      end

      def verify_compatibility!(data)
        data.each do |page_type_name, export_version|
          page_type = Pageflow.config.page_types.find_by_name!(page_type_name)
          requirement = Gem::Requirement.new(page_type.import_version_requirement)

          next if requirement.satisfied_by?(Gem::Version.new(export_version))

          raise(IncompatibleVersionsError,
                "Export version #{export_version} of page type #{page_type_name}. " \
                "does not match #{requirement}")
        end
      end
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
pageflow-17.0.4 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-17.0.3 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-17.0.2 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-17.0.1 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-17.0.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-16.2.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-16.1.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-16.0.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.8.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.7.1 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.7.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.6.1 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.6.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.5.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.4.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.3.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.2.2 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.2.1 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.2.0 lib/pageflow/entry_export_import/page_type_versions.rb
pageflow-15.1.2 lib/pageflow/entry_export_import/page_type_versions.rb