Class: SimpleSlack::Getter

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_slack/getter.rb

Instance Method Summary collapse

Constructor Details

#initialize(slack) ⇒ Getter

Returns a new instance of Getter.



2
3
4
# File 'lib/simple_slack/getter.rb', line 2

def initialize(slack)
  @slack = slack
end

Instance Method Details

#channel(key) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/simple_slack/getter.rb', line 13

def channel(key)
  key.to_s =~ /\AC0.{7}\Z/ ? key_id = key : key_name = key
  @channel_list ||= channels
  if key_id
    @channel_list.find{|ch| ch[:id]   == key_id   }
  elsif key_name
    @channel_list.find{|ch| ch[:name] == key_name }
  else
    "not found"
  end
end

#channelsObject



6
7
8
9
10
11
# File 'lib/simple_slack/getter.rb', line 6

def channels
  channels = @slack.channels_list
  channels["channels"].map do |channel|
    { id: channel["id"], name: channel["name"] }
  end.sort_by {|ch| ch[:name] }
end

#chatObject



59
60
61
# File 'lib/simple_slack/getter.rb', line 59

def chat
  "yet"
end

#chatsObject



55
56
57
# File 'lib/simple_slack/getter.rb', line 55

def chats
  "yet"
end

#image(id) ⇒ Object



50
51
52
53
# File 'lib/simple_slack/getter.rb', line 50

def image(id)
  @image_list ||= images
  @image_list.find{|user| user[:id] == id }
end

#imagesObject



44
45
46
47
48
# File 'lib/simple_slack/getter.rb', line 44

def images
  image_list = users["members"].map do |user|
    { id: user["id"], image: user["profile"]["image_24"] }
  end
end

#user(key) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/simple_slack/getter.rb', line 32

def user(key)
  key.to_s =~ /\AU0.{7}\Z/ ? key_id = key : key_name = key
  @user_list ||= users
  if key_id
    @user_list.find{|user| user[:id]   == key_id }
  elsif key_name
    @user_list.find{|user| user[:name] == key_name }
  else
    "not found"
  end
end

#usersObject



25
26
27
28
29
30
# File 'lib/simple_slack/getter.rb', line 25

def users
  users = @slack.users_list
  users["members"].map do |user|
    { id: user["id"], name: user["name"] }
  end.sort_by {|ch| ch[:name] }
end