class Redwood::LabelService
Provides label tweaking service to the user. Working as the backend of ConsoleMode
.
Should become the backend of bin/sup-tweak-labels in the future.
Public Class Methods
new(index=Index.instance)
click to toggle source
@param index [Redwood::Index]
# File lib/sup/service/label_service.rb, line 10 def initialize index=Index.instance @index = index end
Public Instance Methods
add_labels(query, *labels)
click to toggle source
# File lib/sup/service/label_service.rb, line 14 def add_labels query, *labels run_on_each_message(query) do |m| labels.each {|l| m.add_label l } end end
remove_labels(query, *labels)
click to toggle source
# File lib/sup/service/label_service.rb, line 20 def remove_labels query, *labels run_on_each_message(query) do |m| labels.each {|l| m.remove_label l } end end
Private Instance Methods
find_messages(query)
click to toggle source
# File lib/sup/service/label_service.rb, line 41 def find_messages query @index.find_messages(query) end
run_on_each_message(query, &operation)
click to toggle source
# File lib/sup/service/label_service.rb, line 28 def run_on_each_message query, &operation count = 0 find_messages(query).each do |m| operation.call(m) @index.update_message_state m count += 1 end @index.save_index count end