class CPEE::Properties::PutPositions

Public Class Methods

set(id,opts,xml) click to toggle source
# File lib/cpee/implementation_properties.rb, line 545
def PutPositions::set(id,opts,xml)
  doc = XML::Smart::string(xml)
  content = {}
  newkeys = []
  doc.find("/*/*").map do |ele|
    val = { 'position' => ele.qname.name }
    val['passthrough'] = ele.attributes['passthrough'] if ele.attributes['passthrough']
    content[ele.text] ||= []
    content[ele.text] << val
    newkeys << ele.qname.name
  end
  oldkeys = CPEE::Persistence::extract_set(id,opts,'positions').to_h.keys
  del = oldkeys - newkeys
  del.each do |key|
    val = { 'position' => key }
    content['unmark'] ||= []
    content['unmark'] << val
  end
  CPEE::Persistence::set_item(id,opts,'position',content)
end

Public Instance Methods

response() click to toggle source
# File lib/cpee/implementation_properties.rb, line 566
def response
  id = @a[0]
  opts = @a[1]
  if opts[:statemachine].readonly? id
    @status = 423
  else
    begin
      PutPositions::set(id,opts,@p[0].value.read)
    rescue => e
      @status = 400
    end
  end
  nil
end