Class: MatrixSdk::MatrixEvent

Inherits:
Event show all
Defined in:
lib/matrix_sdk/util/events.rb

Instance Attribute Summary collapse

Attributes inherited from Event

#handled

Instance Method Summary collapse

Methods inherited from Event

#handled?

Methods included from Extensions

#events, #ignore_inspect

Constructor Details

#initialize(sender, event = nil, filter = nil) ⇒ MatrixEvent

Returns a new instance of MatrixEvent.



76
77
78
79
80
# File 'lib/matrix_sdk/util/events.rb', line 76

def initialize(sender, event = nil, filter = nil)
  @event = event
  @filter = filter || @event[:type]
  super sender
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object



101
102
103
104
105
# File 'lib/matrix_sdk/util/events.rb', line 101

def method_missing(method, *args)
  return event[method] if event.key? method

  super
end

Instance Attribute Details

#eventObject Also known as: data

Returns the value of attribute event.



71
72
73
# File 'lib/matrix_sdk/util/events.rb', line 71

def event
  @event
end

#filterObject

Returns the value of attribute filter.



71
72
73
# File 'lib/matrix_sdk/util/events.rb', line 71

def filter
  @filter
end

Instance Method Details

#[](key) ⇒ Object



93
94
95
# File 'lib/matrix_sdk/util/events.rb', line 93

def [](key)
  event[key]
end

#matches?(filter, filter_override = nil) ⇒ Boolean

Returns:

  • (Boolean)


82
83
84
85
86
87
88
89
90
91
# File 'lib/matrix_sdk/util/events.rb', line 82

def matches?(filter, filter_override = nil)
  return true if filter_override.nil? && (@filter.nil? || filter.nil?)

  to_match = filter_override || @filter
  if filter.is_a? Regexp
    filter.match(to_match) { true } || false
  else
    to_match == filter
  end
end

#respond_to_missing?(method) ⇒ Boolean

Returns:

  • (Boolean)


107
108
109
110
111
# File 'lib/matrix_sdk/util/events.rb', line 107

def respond_to_missing?(method, *)
  return true if event.key? method

  super
end

#to_sObject



97
98
99
# File 'lib/matrix_sdk/util/events.rb', line 97

def to_s
  "#{event[:type]}: #{event.reject { |k, _v| k == :type }.to_json}"
end