class Dug::MessageProcessor
@private
Attributes
message[R]
servicer[R]
Public Class Methods
new(message_id, servicer)
click to toggle source
# File lib/dug/message_processor.rb, line 6 def initialize(message_id, servicer) @servicer = servicer @message = NotificationDecorator.new(servicer.get_user_message('me', message_id)) end
Public Instance Methods
execute()
click to toggle source
# File lib/dug/message_processor.rb, line 11 def execute %w(organization repository reason).each do |type| if message_data = message.public_send(type) opts = type == 'repository' ? { remote: message.public_send(:organization) } : {} label = Dug.configuration.label_for(type, message_data, opts) labels_to_add << label if label end end %w(merged closed).each do |state| if message.public_send("indicates_#{state}?") label = Dug.configuration.label_for(:state, state) labels_to_add << label if label end end if message.indicates_reopened? label = Dug.configuration.label_for(:state, 'closed') reopened_label = Dug.configuration.label_for(:state, 'reopened') labels_to_remove << label if label labels_to_add << reopened_label if reopened_label end info = "Processing message:" info << "\n ID: #{message.id}" %w(Date From Subject).each do |header| info << "\n #{header}: #{message.headers[header]}" end info << "\n * Applying labels: #{labels_to_add.join(' | ')} *" info << "\n * Removing labels: #{labels_to_remove.join(' | ')} *" log(info) servicer.add_labels_by_name(message, labels_to_add) servicer.remove_labels_by_name(message, labels_to_remove, entire_thread: modify_entire_thread?) end
Private Instance Methods
labels_to_add()
click to toggle source
# File lib/dug/message_processor.rb, line 54 def labels_to_add @labels_to_add ||= [Dug.configuration.processed_label_name] end
labels_to_remove()
click to toggle source
# File lib/dug/message_processor.rb, line 58 def labels_to_remove @labels_to_remove ||= [Dug.configuration.unprocessed_label_name] if @labels_to_remove.size > 1 @modify_entire_thread = true end @labels_to_remove end
modify_entire_thread?()
click to toggle source
# File lib/dug/message_processor.rb, line 66 def modify_entire_thread? !!@modify_entire_thread end