Class: Notifications

Inherits:
Object
  • Object
show all
Defined in:
lib/jiraquest/distractions/notifications.rb

Overview

Simple User Prompts

Instance Method Summary collapse

Constructor Details

#initializeNotifications

Returns a new instance of Notifications.



7
8
9
10
11
# File 'lib/jiraquest/distractions/notifications.rb', line 7

def initialize
  @store = DATA
  @prompt = TTY::Prompt.new
  @notifications_list = %w[slack reddit text email]
end

Instance Method Details

#emailObject



29
30
31
# File 'lib/jiraquest/distractions/notifications.rb', line 29

def email
  @prompt.ok('Someone sent you an email')
end

#listObject



13
14
15
# File 'lib/jiraquest/distractions/notifications.rb', line 13

def list
  @notifications_list
end

#randomObject



33
34
35
# File 'lib/jiraquest/distractions/notifications.rb', line 33

def random
  [slack, reddit, text, email].sample
end

#read_notifications_countObject



37
38
39
# File 'lib/jiraquest/distractions/notifications.rb', line 37

def read_notifications_count
  @store.transaction { @store['notifications'] }
end

#redditObject



21
22
23
# File 'lib/jiraquest/distractions/notifications.rb', line 21

def reddit
  @prompt.ok('Someone replied to a Reddit post of yours')
end

#slackObject



17
18
19
# File 'lib/jiraquest/distractions/notifications.rb', line 17

def slack
  @prompt.ok('Someone sent you a slack message')
end

#textObject



25
26
27
# File 'lib/jiraquest/distractions/notifications.rb', line 25

def text
  @prompt.ok('Someone sent you a WhatsApp message')
end

#update_warning(notification) ⇒ Object



52
53
54
# File 'lib/jiraquest/distractions/notifications.rb', line 52

def update_warning(notification)
  @store.transaction { @store['warnings'][notification] += 1 }
end

#warningObject



41
42
43
44
45
46
47
48
49
50
# File 'lib/jiraquest/distractions/notifications.rb', line 41

def warning
  dc = read_notifications_count
  limits = dc.select { |_k, v| v > 2 }
  limits.each do |distraction, _count|
    @prompt.error("Be careful, you are spending a lot of time #{distraction}ing, "\
      'you may lose jiras!')
    update_warning(distraction)
  end
  false
end