Class: Slappy::Listener::Targettable::Target

Inherits:
Object
  • Object
show all
Defined in:
lib/slappy/listeners/concerns/targettable.rb

Instance Method Summary collapse

Instance Method Details

#channelObject



48
49
50
# File 'lib/slappy/listeners/concerns/targettable.rb', line 48

def channel
  @channel ||= []
end

#channel=(value) ⇒ Object



37
38
39
40
# File 'lib/slappy/listeners/concerns/targettable.rb', line 37

def channel=(value)
  value = [value] unless value.instance_of? Array
  @channel = value
end

#list(target) ⇒ Object



42
43
44
45
46
# File 'lib/slappy/listeners/concerns/targettable.rb', line 42

def list(target)
  send(target).each_with_object([]) do |t, result|
    result << Slappy::SlackAPI.find(t)
  end
end

#target_names(target) ⇒ Object



52
53
54
# File 'lib/slappy/listeners/concerns/targettable.rb', line 52

def target_names(target)
  send(target).join(',')
end

#userObject



61
62
63
# File 'lib/slappy/listeners/concerns/targettable.rb', line 61

def user
  @user ||= []
end

#user=(value) ⇒ Object



56
57
58
59
# File 'lib/slappy/listeners/concerns/targettable.rb', line 56

def user=(value)
  value = [value] unless value.instance_of? Array
  @user = value
end

#valid?(event) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
25
26
# File 'lib/slappy/listeners/concerns/targettable.rb', line 17

def valid?(event)
  return true if channel.blank? && user.blank?

  result = []

  result << false unless validation(:channel, event)
  result << false unless validation(:user, event)

  result.blank?
end

#validation(target, event) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/slappy/listeners/concerns/targettable.rb', line 28

def validation(target, event)
  return true if send(target).compact.blank?
  unless send(:list, target).include? event.send target
    Debug.log "Message from restrict #{target}(expect: #{target_names(target)})"
    return false
  end
  true
end