class Twitter::DirectMessageEvent

Attributes

created_timestamp[R]

Public Class Methods

new(attrs) click to toggle source
Calls superclass method Twitter::Identity::new
# File lib/twitter/direct_message_event.rb, line 14
def initialize(attrs)
  attrs = read_from_response(attrs)
  text = attrs.dig(:message_create, :message_data, :text)
  urls = attrs.dig(:message_create, :message_data, :entities, :urls)

  text.gsub!(urls[0][:url], urls[0][:expanded_url]) if urls.any?

  attrs[:direct_message] = build_direct_message(attrs, text)
  super
end

Private Instance Methods

build_direct_message(attrs, text) click to toggle source
# File lib/twitter/direct_message_event.rb, line 32
def build_direct_message(attrs, text)
  recipient_id = attrs[:message_create][:target][:recipient_id].to_i
  sender_id = attrs[:message_create][:sender_id].to_i
  {id: attrs[:id].to_i,
   created_at: Time.at(attrs[:created_timestamp].to_i / 1000.0),
   sender: {id: sender_id},
   sender_id: sender_id,
   recipient: {id: recipient_id},
   recipient_id: recipient_id,
   text: text}
end
read_from_response(attrs) click to toggle source

@return [Hash] Normalized hash of attrs

# File lib/twitter/direct_message_event.rb, line 28
def read_from_response(attrs)
  attrs[:event].nil? ? attrs : attrs[:event]
end