class Slappy::Listener::Targettable::Target

Public Instance Methods

channel() click to toggle source
# File lib/slappy/listeners/concerns/targettable.rb, line 48
def channel
  @channel ||= []
end
channel=(value) click to toggle source
# File lib/slappy/listeners/concerns/targettable.rb, line 37
def channel=(value)
  value = [value] unless value.instance_of? Array
  @channel = value
end
list(target) click to toggle source
# 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) click to toggle source
# File lib/slappy/listeners/concerns/targettable.rb, line 52
def target_names(target)
  send(target).join(',')
end
user() click to toggle source
# File lib/slappy/listeners/concerns/targettable.rb, line 61
def user
  @user ||= []
end
user=(value) click to toggle source
# File lib/slappy/listeners/concerns/targettable.rb, line 56
def user=(value)
  value = [value] unless value.instance_of? Array
  @user = value
end
valid?(event) click to toggle source
# 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) click to toggle source
# 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