class Reactor::Versioner::Slave
Slave
class used by Versioner
class to load and store migrated files inside the CM. It uses separate object type named “version_store” and stores data as base64'ed YAML inside recordSetCallback (Versionszuweisungsfunktion). Theoretically you could use any class for this purpose, but you would lose the ability to set recordSetCallback for this class. Other than that, it does not affect the object class in any way!
Maybe the future version won't disrupt even this fuction.
Public Instance Methods
base_name()
click to toggle source
# File lib/reactor/tools/versioner.rb, line 24 def base_name "objClass" end
create()
click to toggle source
# File lib/reactor/tools/versioner.rb, line 68 def create request = Reactor::Cm::XmlRequest.prepare do |xml| xml.create_tag!(base_name) do xml.tag!('name') do xml.text!(name) end xml.tag!('objType') do xml.text!('document') end end end response = request.execute! response.ok? end
exists?()
click to toggle source
# File lib/reactor/tools/versioner.rb, line 28 def exists? begin request = Reactor::Cm::XmlRequest.prepare do |xml| xml.where_key_tag!(base_name, 'name', name) xml.get_key_tag!(base_name, 'name') end response = request.execute! return response.ok? rescue return false end end
load()
click to toggle source
# File lib/reactor/tools/versioner.rb, line 41 def load create if not exists? request = Reactor::Cm::XmlRequest.prepare do |xml| xml.where_key_tag!(base_name, 'name', name) xml.get_key_tag!(base_name, 'recordSetCallback') end response = request.execute! base64 = response.xpath("//recordSetCallback").text.to_s yaml = Base64::decode64(base64) data = YAML::load(yaml) return [] if data.nil? or data == false return data.to_a end
name()
click to toggle source
# File lib/reactor/tools/versioner.rb, line 20 def name "version_store" end
store(data)
click to toggle source
# File lib/reactor/tools/versioner.rb, line 55 def store(data) create if not exists? yaml = data.to_yaml base64 = Base64::encode64(yaml).gsub("\n", '').gsub("\r", '') content = '#' + base64 request = Reactor::Cm::XmlRequest.prepare do |xml| xml.where_key_tag!(base_name, 'name', name) xml.set_key_tag!(base_name, 'recordSetCallback', content) end response = request.execute! response.ok? end