Class: Slack::RPC::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/slack/rpc/client.rb

Overview

## Slack::RPC::Client A class for Slack RPC-Style API client

Instance Method Summary collapse

Constructor Details

#initialize(token = nil) ⇒ Client

### Slack::RPC::Client.new(token) Creates a new instance of Slack::RPC::Client class



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/slack/rpc/client.rb', line 15

def initialize(token = nil)
  conn = Connection.new(token)
  define_command(conn, "api",      %w{test})
  define_command(conn, "auth",     %w{test})
  define_command(conn, "channels", %w{archive create history info invite join kick leave list mark rename setPurpose setTopic unarchive})
  define_command(conn, "chat",     %w{delete postMessage update})
  define_command(conn, "emoji",    %w{list})
  define_command(conn, "files",    %w{info list upload})
  define_command(conn, "groups",   %w{archive close create createChild history invite kick leave list mark open rename setPurpose setTopic unarchive})
  define_command(conn, "im",       %w{close history list mark open})
  define_command(conn, "oauth",    %w{access})
  define_command(conn, "rtm",      %w{start})
  define_command(conn, "search",   %w{all files messages})
  define_command(conn, "stars",    %w{list})
  define_command(conn, "users",    %w{getPresence info list setActive setPresence})
end

Instance Method Details

#define_command(conn, name, sub_commands) ⇒ Object

### Slack::RPC::Client::define_command(conn, name, sub_commands) Create Slack::RPC::Command object and store it as instance variable and expose it



35
36
37
38
39
# File 'lib/slack/rpc/client.rb', line 35

def define_command(conn, name, sub_commands)
  command = Command.new(conn, name, sub_commands)
  instance_variable_set(:"@#{name}", command)
  self.class.class_eval('attr_reader :"#{name}"')
end