class MosEisley::S3PO::Action

Attributes

event[R]
original_message[R]
type[R]

Public Class Methods

add_pending(act) click to toggle source
# File lib/s3po/action.rb, line 6
def self.add_pending(act)
  pending_gc
  @pending ||= {}
  @pending[act.callback_id] = act
end
new(e) click to toggle source
# File lib/s3po/action.rb, line 30
def initialize(e)
  @event = e
  @type = @event[:type].to_sym
  if e[:original_message]
    @original_message = Message.new(e[:original_message])
  end
end
pending() click to toggle source
# File lib/s3po/action.rb, line 12
def self.pending
  pending_gc
  @pending
end
pending_gc() click to toggle source
# File lib/s3po/action.rb, line 17
def self.pending_gc
  return unless @pending
  return if @gc_running
  @gc_running = true
  delkeys = []
  @pending.each do |id, act|
    ts = Time.at(act.action_ts.to_f)
    delkeys << id if Time.now - ts > 60 * 30
  end
  delkeys.each { |k| @pending.delete(k) }
  @gc_running = false
end

Public Instance Methods

action() click to toggle source
# File lib/s3po/action.rb, line 38
def action
  event[:actions][0]
end
action_ts() click to toggle source
# File lib/s3po/action.rb, line 69
def action_ts
  event[:action_ts]
end
action_value() click to toggle source
# File lib/s3po/action.rb, line 42
def action_value
  v = nil
  case action[:type].to_sym
  when :button
    v = action[:value]
  when :select
    v = action[:selected_options][0][:value]
  end
  return v
end
attachment_id() click to toggle source
# File lib/s3po/action.rb, line 73
def attachment_id
  event[:attachment_id].to_i
end
callback_id() click to toggle source
# File lib/s3po/action.rb, line 53
def callback_id
  event[:callback_id]
end
channel() click to toggle source
# File lib/s3po/action.rb, line 57
def channel
  event[:channel][:id]
end
message_age() click to toggle source
# File lib/s3po/action.rb, line 93
def message_age
  Time.now.to_i - message_ts.to_i
end
message_ts() click to toggle source
# File lib/s3po/action.rb, line 65
def message_ts
  event[:message_ts]
end
original_event() click to toggle source
# File lib/s3po/action.rb, line 89
def original_event
  Action.pending[callback_id]
end
response_url() click to toggle source
# File lib/s3po/action.rb, line 77
def response_url
  event[:response_url]
end
submission() click to toggle source
# File lib/s3po/action.rb, line 85
def submission
  event[:submission]
end
trigger_id() click to toggle source
# File lib/s3po/action.rb, line 81
def trigger_id
  event[:trigger_id]
end
user() click to toggle source
# File lib/s3po/action.rb, line 61
def user
  event[:user][:id]
end