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