Class OpenWFE::Extras::TwitterParticipant
In: lib/openwfe/extras/participants/twitterparticipants.rb
Parent: Object

Sometimes email is a bit too heavy for notification, this participant emit messages via a twitter account.

By default, the message emitted is the value of the field "twitter_message", but this behaviour can be changed by overriding the extract_message() method.

If the extract_message doesn‘t find a message, the message will be the result of the default_message method call, of course this method is overridable as well.

Methods

Included Modules

OpenWFE::LocalParticipant

Attributes

client  [RW]  The actual twitter4r client instance.
params  [RW]  Keeping the initialization params at hand (if any)

Public Class methods

This participant expects a login (twitter user name) and a password.

The only optional param for now is :no_ssl, which you can set to true if you want the connection to twitter to not use SSL. (seems like the Twitter SSL service is available less often than the plain http one).

[Source]

     # File lib/openwfe/extras/participants/twitterparticipants.rb, line 92
 92:         def initialize (login, password, params={})
 93: 
 94:             super()
 95: 
 96:             Twitter::Client.configure do |conf|
 97:                 conf.protocol = :http
 98:                 conf.port = 80
 99:             end if params[:no_ssl] == true
100: 
101:             @client = Twitter::Client.new(
102:                 :login => login,
103:                 :password => password)
104: 
105:             @params = params
106:         end

Public Instance methods

The method called by the engine when a workitem for this participant is available.

[Source]

     # File lib/openwfe/extras/participants/twitterparticipants.rb, line 112
112:         def consume (workitem)
113: 
114:             user, tmessage = extract_message workitem
115: 
116:             tmessage = default_message(workitem) unless tmessage
117: 
118:             begin
119: 
120:                 if user
121:                     #
122:                     # direct message
123:                     #
124:                     tuser = @client.user user.to_s
125:                     @client.message :post, tmessage, tuser
126:                 else
127:                     #
128:                     # just the classical status
129:                     #
130:                     @client.status :post, tmessage
131:                 end
132: 
133:             rescue Exception => e
134: 
135:                 linfo do 
136:                     "consume() not emitted twitter, because of " +
137:                     OpenWFE::exception_to_s(e)
138:                 end
139:             end
140: 
141:             reply_to_engine(workitem) if @application_context
142:         end

Protected Instance methods

Returns the default message (called when the extract_message returned nil as the second element of its pair).

This default implementation simply returns the workitem FlowExpressionId instance in its to_s() representation.

[Source]

     # File lib/openwfe/extras/participants/twitterparticipants.rb, line 168
168:             def default_message (workitem)
169: 
170:                 workitem.fei.to_s
171:             end

Returns a pair : the target user (twitter login name) and the message (or status message if there is no target user) to send to Twitter.

This default implementation returns a pair composed with the values of the field ‘twitter_target’ and of the field ‘twitter_message’.

[Source]

     # File lib/openwfe/extras/participants/twitterparticipants.rb, line 155
155:             def extract_message (workitem)
156: 
157:                 [ workitem.attributes['twitter_target'], 
158:                   workitem.attributes['twitter_message'] ]
159:             end

[Validate]