Class: Lokii::GsmProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/lokii/servers/gsm_proxy.rb

Overview

Messages come into the GsmModem based on its own set of intervals (or with another command for certain gsm modems). Because of that we need to proxy the callbacks and collect them on a per modem basis

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(modem) ⇒ GsmProxy

Returns a new instance of GsmProxy.



14
15
16
17
# File 'lib/lokii/servers/gsm_proxy.rb', line 14

def initialize(modem)
  @received = Array.new
  @modem = modem
end

Instance Attribute Details

#modemObject (readonly)

Returns the value of attribute modem.



12
13
14
# File 'lib/lokii/servers/gsm_proxy.rb', line 12

def modem
  @modem
end

#receivedObject

Returns the value of attribute received.



11
12
13
# File 'lib/lokii/servers/gsm_proxy.rb', line 11

def received
  @received
end

Instance Method Details

#incoming(message) ⇒ Object



19
20
21
# File 'lib/lokii/servers/gsm_proxy.rb', line 19

def incoming(message)
  @received << message
end

#messagesObject



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/lokii/servers/gsm_proxy.rb', line 27

def messages
  @modem.process(method(:incoming))
  current = @received.dup 
  @received.clear
  current.map {|m| 
    {:phone => m.device,
     :number => m.sender,
     :text => m.text,
     :created_at => Time.parse("#{m.sent}"),
     :processed_at => Time.parse("#{m.received}")}
  }
end

#outgoing(number, text) ⇒ Object



23
24
25
# File 'lib/lokii/servers/gsm_proxy.rb', line 23

def outgoing(number, text)
  @modem.send_sms(number, text)
end