class Sumac::Message::Exchange::ForgetNotification

Public Class Methods

new(connection) click to toggle source
Calls superclass method
# File lib/sumac/message/exchange/forget_notification.rb, line 6
def initialize(connection)
  super
  @orgin = nil
  @id = nil
end

Public Instance Methods

invert_orgin() click to toggle source
# File lib/sumac/message/exchange/forget_notification.rb, line 57
def invert_orgin
  raise MessageError unless setup?
  case @orgin
  when 'local'
    @orgin = 'remote'
  when 'remote'
    @orgin = 'local'
  end
  nil
end
parse_json_structure(json_structure) click to toggle source
# File lib/sumac/message/exchange/forget_notification.rb, line 12
def parse_json_structure(json_structure)
  raise MessageError unless json_structure.is_a?(Hash) &&
    json_structure['message_type'] == 'exchange' &&
    json_structure['exchange_type'] == 'forget_notification'
  raise MessageError unless json_structure['orgin'] == 'local' || json_structure['orgin'] == 'remote'
  @orgin = json_structure['orgin']
  raise MessageError unless json_structure['id'].is_a?(::Integer)
  @id = json_structure['id']
end
reference() click to toggle source
# File lib/sumac/message/exchange/forget_notification.rb, line 32
def reference
  raise MessageError unless setup?
  case @orgin
  when 'local'
    reference = @connection.local_references.from_id(@id)
    raise MessageError unless reference
    reference
  when 'remote'
    @connection.remote_references.from_id(@id)
  end
end
reference=(new_reference) click to toggle source
# File lib/sumac/message/exchange/forget_notification.rb, line 44
def reference=(new_reference)
  case new_reference
  when LocalReference
    @orgin = 'local'
  when RemoteReference
    @orgin = 'remote'
  else
    raise MessageError
  end
  @id = new_reference.exposed_id
  nil
end
to_json_structure() click to toggle source
# File lib/sumac/message/exchange/forget_notification.rb, line 22
def to_json_structure
  raise MessageError unless setup?
  {
    'message_type' => 'exchange',
    'exchange_type' => 'forget_notification',
    'orgin' => @orgin,
    'id' => @id
  }
end

Private Instance Methods

setup?() click to toggle source
# File lib/sumac/message/exchange/forget_notification.rb, line 70
def setup?
  @orgin != nil && @id != nil
end