Sha256: 54007caeb6825ec06e81249c4781418a3235a6552a5aee84df0c7462f06ed6db
Contents?: true
Size: 1.21 KB
Versions: 5
Compression:
Stored size: 1.21 KB
Contents
module Scrivito class WorkspaceDataFromService < WorkspaceData class << self # Fetches a workspace data previously store in cache storage. # Returns nil if not found. def find_from_cache(id) if data = CmsDataCache.read_workspace_data(id) new(data) end end end data_attr_reader :diff def changes diff && diff['changes'] end def from_content_state_id diff && diff['from_content_state_id'] end def to_content_state_id diff && diff['to_content_state_id'] end # Serializes and stores a workspace data in cache storage. # Also creates an appropriate content state if needed. def store_in_cache_and_create_content_state create_content_state if content_state_id store_in_cache end def content_state @content_state ||= ContentState.find_or_create(content_state_id) if content_state_id end def base_content_state if base_content_state_id @base_content_state ||= ContentState.find_or_create(base_content_state_id) end end private def create_content_state ContentState.create(content_state_id: to_content_state_id, changes: changes, from_content_state_id: from_content_state_id) end end end # module Scrivito
Version data entries
5 entries across 5 versions & 1 rubygems