class SimpleSlack::Getter

Public Class Methods

new(slack) click to toggle source
# File lib/simple_slack/getter.rb, line 3
def initialize(slack)
  @slack = slack
end

Public Instance Methods

channel(key, options = []) click to toggle source
# File lib/simple_slack/getter.rb, line 20
def channel(key, options = [])
  key.to_s =~ /\AC.{8}\Z/ ? key_id = key : key_name = key
  channel_list = channels(options)
  if key_id
    channel_list.find{|ch| ch[:id]   == key_id   }
  elsif key_name
    channel_list.find{|ch| ch[:name] == key_name }
  end
end
channels(options = [], cache: true) click to toggle source

use options for :is_channel, :creator, :members, :topic, :purpose, :num_members, etc

# File lib/simple_slack/getter.rb, line 9
def channels(options = [], cache: true)
  return @channels if cache && !@channels.nil?
  channels = @slack.channels_list
  @channels = begin
    channels["channels"].map do |channel|
      add_params = options.empty? ?  {} : options_to_hash(options, channel)
      { id: channel["id"], name: channel["name"] }.merge(add_params)
    end.sort_by {|ch| ch[:name] }
  end
end
chat() click to toggle source
# File lib/simple_slack/getter.rb, line 108
def chat
  "yet"
end
chats() click to toggle source
# File lib/simple_slack/getter.rb, line 104
def chats
  "yet"
end
im(key, options = []) click to toggle source
# File lib/simple_slack/getter.rb, line 94
def im(key, options = [])
  key.to_s =~ /\AU.{8}\Z/ ? key_id = key : key_name = key
  im_list = ims(options)
  if key_id
    im_list.find{|im| im[:user][:id]   == key_id }
  elsif key_name
    im_list.find{|im| im[:user][:name] == key_name }
  end
end
image(key, options = []) click to toggle source
# File lib/simple_slack/getter.rb, line 66
def image(key, options = [])
  key.to_s =~ /\AU.{8}\Z/ ? key_id = key : key_name = key
  image_list = images(options)
  if key_id
    image_list.find{|user| user[:id]   == key_id }
  elsif key_name
    image_list.find{|user| user[:name] == key_name }
  end
end
images(options = [], cache: true) click to toggle source

use options for :image_24, :image_32, :image_48, image_72, etc…

# File lib/simple_slack/getter.rb, line 55
def images(options = [], cache: true)
  return @images if cache && !@images.nil?
  users = @slack.users_list
  @images = begin
    users["members"].map do |user|
      add_params = options.empty? ? {} : options_to_hash(options, user["profile"])
      { id: user["id"], name: user["name"], image: user["profile"]["image_24"] }.merge(add_params)
    end
  end
end
ims(options = [], cache: true) click to toggle source

use options for :created, :is_im, :is_org_shared, :is_user_deleted

# File lib/simple_slack/getter.rb, line 78
def ims(options = [], cache: true)
  return @ims if cache && !@ims.nil?
  im_list = @slack.im_list
  @ims = begin
    im_list["ims"].map do |im|
      im_user = if im["user"] == "USLACKBOT"
                  { id: im["user"], name: "slackbot" }
                else
                  user(im["user"])
                end
      add_params = options.empty? ? {} : options_to_hash(options, im)
      { id: im["id"], user: im_user }.merge(add_params)
    end
  end
end
user(key, options = []) click to toggle source
# File lib/simple_slack/getter.rb, line 43
def user(key, options = [])
  key.to_s =~ /\AU.{8}\Z/ ? key_id = key : key_name = key
  user_list = users(options)
  if key_id
    user_list.find{|user| user[:id]   == key_id }
  elsif key_name
    user_list.find{|user| user[:name] == key_name }
  end
end
users(options = [], cache: true) click to toggle source

use options for :real_name, :is_admin, :is_bot, etc…

# File lib/simple_slack/getter.rb, line 32
def users(options = [], cache: true)
  return @users if cache && !@users.nil?
  users = @slack.users_list
  @users = begin
    users["members"].map do |user|
      add_params = options.empty? ? {} : options_to_hash(options, user)
      { id: user["id"], name: user["name"] }.merge(add_params)
    end.sort_by {|ch| ch[:name] }
  end
end

Private Instance Methods

options_to_hash(options, type = {}) click to toggle source
# File lib/simple_slack/getter.rb, line 114
def options_to_hash(options, type = {})
  marged_option = {}
  options.each do |op|
    marged_option.merge!({ op.to_sym => type[op.to_s] })
  end

  marged_option
end