Class: Aggro::Message::Query

Inherits:
Struct
  • Object
show all
Defined in:
lib/aggro/message/query.rb

Overview

Public: Query message.

Constant Summary collapse

TYPE_CODE =
'15'.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#detailsObject

Returns the value of attribute details

Returns:

  • (Object)

    the current value of details



4
5
6
# File 'lib/aggro/message/query.rb', line 4

def details
  @details
end

#queryable_idObject

Returns the value of attribute queryable_id

Returns:

  • (Object)

    the current value of queryable_id



4
5
6
# File 'lib/aggro/message/query.rb', line 4

def queryable_id
  @queryable_id
end

#senderObject

Returns the value of attribute sender

Returns:

  • (Object)

    the current value of sender



4
5
6
# File 'lib/aggro/message/query.rb', line 4

def sender
  @sender
end

Class Method Details

.parse(string) ⇒ Object



7
8
9
# File 'lib/aggro/message/query.rb', line 7

def self.parse(string)
  new string[2..37], string[38..73], parse_details(string[74..-1])
end

.parse_details(details) ⇒ Object



11
12
13
# File 'lib/aggro/message/query.rb', line 11

def self.parse_details(details)
  Marshal.load details
end

Instance Method Details

#argsObject



15
16
17
# File 'lib/aggro/message/query.rb', line 15

def args
  details[:args]
end

#nameObject



19
20
21
# File 'lib/aggro/message/query.rb', line 19

def name
  details[:name]
end

#query_classObject



23
24
25
# File 'lib/aggro/message/query.rb', line 23

def query_class
  ActiveSupport::Inflector.safe_constantize name
end

#to_queryObject



27
28
29
# File 'lib/aggro/message/query.rb', line 27

def to_query
  query_class.new args if query_class
end

#to_sObject



31
32
33
# File 'lib/aggro/message/query.rb', line 31

def to_s
  "#{TYPE_CODE}#{sender}#{queryable_id}#{Marshal.dump details}"
end