Class | Jabber::Framework::Base |
In: |
lib/xmpp4r/framework/base.rb
|
Parent: | Object |
stream | [RW] |
# File lib/xmpp4r/framework/base.rb, line 7 7: def self.helper(name, klass=nil, &factory) 8: if klass.nil? and factory.nil? 9: raise "helper #{name} needs a class or factory" 10: end 11: 12: define_method(name) do 13: @helpers_lock.synchronize do 14: if @helpers[name] 15: @helpers[name] 16: else 17: if factory 18: @helpers[name] = instance_eval { factory.call(@stream) } 19: elsif klass 20: @helpers[name] = klass.new(@stream) 21: else 22: raise 23: end 24: end 25: end 26: end 27: end
# File lib/xmpp4r/framework/base.rb, line 31 31: def initialize(stream) 32: @stream = stream 33: @helpers = {} 34: @helpers_lock = Mutex.new 35: 36: # Catch all unhandled iq stanzas (lowest priority) 37: @stream.add_iq_callback(-1000, self, &method(:on_unhandled_iq)) 38: end
# File lib/xmpp4r/framework/base.rb, line 40 40: def on_unhandled_iq(iq) 41: if iq.type == :get or iq.type == :set 42: answer = iq.answer(true) 43: answer.type = :error 44: answer.add(ErrorResponse.new('feature-not-implemented')) 45: @stream.send(answer) 46: 47: true 48: else 49: false 50: end 51: end