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 :content_state_id data_attr_reader :uses_obj_classes data_attr_reader :base_revision_id data_attr_reader :base_content_state_id def initialize(data) @data = data end def store_in_cache CmsDataCache.write_workspace_data(id, to_hash) end private def to_hash { '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_content_state_id, 'memberships' => memberships, } end end end