Sha256: c184b5a99f5a8b2625a9c554e86368eecdb66e67fc8474b6dc189c5b8f856aeb

Contents?: true

Size: 1.79 KB

Versions: 48

Compression:

Stored size: 1.79 KB

Contents

module Scrivito
  class WorkspaceData
    class << self
      private

      def data_attr_reader(attr_name)
        define_method(attr_name) { @data[attr_name.to_s] }
      end
    end

    data_attr_reader :id
    data_attr_reader :title
    data_attr_reader :memberships
    data_attr_reader :revision_id
    data_attr_reader :base_revision_id

    def content_state_id
      @data["content_state_id"] or raise InternalError
    end

    def content_state_id?
      @data["content_state_id"].present?
    end

    def auto_update?
      @data["auto_update"]
    end

    def base_content_state_id
      @data["base_content_state_id"] or raise InternalError
    end

    def base_content_state_id?
      @data["base_content_state_id"].present?
    end

    def initialize(data)
      raise InternalError unless Hash === data && data["id"].present?
      @data = data
      assert_no_obj_classes
    end

    private

    def assert_no_obj_classes
      if @data['uses_obj_classes']
        raise ScrivitoError, "The working copy titled #{title} has ObjClasses, which is no longer "\
          "supported. Please use version 0.60.0 to have CMS-based ObjClasses removed from your "\
          "working copies. See https://scrivito.com/scrivito/obj-class-migration for a "\
          "detailed guide on upgrading."
      end
    end

    def to_hash
      base_csid = base_content_state_id? ? base_content_state_id : nil

      {
        'id'                    => id,
        'revision_id'           => revision_id,
        'title'                 => title,
        'content_state_id'      => content_state_id,
        'base_revision_id'      => base_revision_id,
        'base_content_state_id' => base_csid,
        'memberships'           => memberships,
        'auto_update'           => auto_update?,
      }
    end
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
scrivito_sdk-1.4.0.rc2 lib/scrivito/workspace_data.rb
scrivito_sdk-1.4.0.rc1 lib/scrivito/workspace_data.rb
scrivito_sdk-1.3.1 lib/scrivito/workspace_data.rb
scrivito_sdk-1.3.1.rc1 lib/scrivito/workspace_data.rb
scrivito_sdk-1.3.0 lib/scrivito/workspace_data.rb
scrivito_sdk-1.3.0.rc3 lib/scrivito/workspace_data.rb
scrivito_sdk-1.3.0.rc2 lib/scrivito/workspace_data.rb
scrivito_sdk-1.3.0.rc1 lib/scrivito/workspace_data.rb