Class: XMPPAgent

Inherits:
Object
  • Object
show all
Includes:
AppRoutes
Defined in:
lib/xmpp-agent.rb

Instance Method Summary collapse

Constructor Details

#initializeXMPPAgent

Returns a new instance of XMPPAgent.



11
12
13
14
# File 'lib/xmpp-agent.rb', line 11

def initialize()
  @routes = {}; @params = {}; @conn = nil; @ctx = nil    
  super()    
end

Instance Method Details

#add_route(arg) ⇒ Object



50
51
52
# File 'lib/xmpp-agent.rb', line 50

def add_route(arg)
  get(arg) {yield(@params, @conn, @ctx)}
end

#connObject



58
# File 'lib/xmpp-agent.rb', line 58

def conn() @conn end

#message(route, &blk) ⇒ Object



54
55
56
# File 'lib/xmpp-agent.rb', line 54

def message(route, &blk)
  get(route, &blk)
end

#messages(params, conn, ctx) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/xmpp-agent.rb', line 24

def messages(params, conn, ctx)

  message %r{(send_to|send2)\s+([^\s]+)\s+(.*)} do

    user, message = params[:captures].values_at 1,2
    data = conn.message_stanza('to' => user) {|xml| xml.body(message) }       
    conn.send_stanza data
  end

  message 'help' do
    data = conn.message_stanza('to' => ctx.from) do |xml| 
        xml.body('available commands: help, send_to')
    end      
    conn.send_stanza data
  end

  message '.*' do

    data = conn.message_stanza('to' => ctx.from) do |xml| 
        xml.body('need some help? type help')
    end            
    conn.send_stanza data
  end

end

#presence_update(ctx) ⇒ Object



60
61
# File 'lib/xmpp-agent.rb', line 60

def presence_update(ctx)
end

#received(conn, ctx) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/xmpp-agent.rb', line 16

def received(conn,ctx)

  @conn = conn
  @ctx = ctx
  messages(@params, @conn, @ctx)
  run_route ctx.body.strip   
end