Class: Karait::Message
Constant Summary
collapse
- ASSIGN_VARIABLE_REGEX =
/^([a-z_][a-zA-Z_0-9]*)=$/
- VARIABLE_REGEX =
/^([a-z_][a-zA-Z_0-9]*)$/
- BLACKLIST =
{
'_meta' => true,
'_id' => true,
'_expired' => true
}
Instance Method Summary
collapse
Constructor Details
#initialize(raw_message = {}, queue_collection = nil) ⇒ Message
Returns a new instance of Message.
14
15
16
17
18
19
20
|
# File 'lib/message.rb', line 14
def initialize(raw_message={}, queue_collection=nil)
@source = raw_message
@queue_collection = queue_collection
@variables_to_serialize = {}
set_expired
add_accessors raw_message
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args, &block) ⇒ Object
75
76
77
78
79
80
81
82
83
|
# File 'lib/message.rb', line 75
def method_missing(sym, *args, &block)
if matches = sym.to_s.match(Message::ASSIGN_VARIABLE_REGEX) and args.count == 1
@variables_to_serialize[matches[1]] = args[0]
elsif matches = sym.to_s.match(Message::VARIABLE_REGEX) and args.count == 0
return @variables_to_serialize[matches[1]]
else
super(sym, *args, &block)
end
end
|
Instance Method Details
#_get_id ⇒ Object
47
48
49
|
# File 'lib/message.rb', line 47
def _get_id
return @source['_id']
end
|
#delete ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/message.rb', line 26
def delete
@queue_collection.update(
{
'_id' => @source['_id']
},
{
'$set' => {
'_meta.expired' => true
}
}
)
end
|
#expired? ⇒ Boolean
39
40
41
|
# File 'lib/message.rb', line 39
def expired?
return @expired
end
|
#get(key) ⇒ Object
43
44
45
|
# File 'lib/message.rb', line 43
def get(key)
return @variables_to_serialize[key.to_s]
end
|
#to_hash ⇒ Object
22
23
24
|
# File 'lib/message.rb', line 22
def to_hash
return @variables_to_serialize
end
|