simple_slack 0.4.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +22 -0
- data/lib/simple_slack/client.rb +5 -0
- data/lib/simple_slack/deleter.rb +17 -0
- data/lib/simple_slack/getter.rb +35 -23
- data/lib/simple_slack/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6249fe5cdc7558dcd09186f231390529cf9933d9
|
4
|
+
data.tar.gz: 7f35bd51fb4504e375dd6654913047728eeeabad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dd27c6226d7cb7b7a99e60fa3d0bfc5b82124182e2625cb70572c73873012bd6c053e01cc802b5cf237de30d06c9b0ae32fe36d899d69f2f59c8fee85ce3902b
|
7
|
+
data.tar.gz: 2852d68284a2c470329249197d854a6c103609b7676f6de0961627beda4ff9877830e38e3a3f4a1080e451e1e5ed75c53827e18ecdb35debb0f3f645f6acf827
|
data/README.md
CHANGED
@@ -56,6 +56,28 @@ and
|
|
56
56
|
client.post.channel(to: "general", text: "hello world", name: "myname")
|
57
57
|
```
|
58
58
|
|
59
|
+
## CLI
|
60
|
+
|
61
|
+
### Settings
|
62
|
+
|
63
|
+
```
|
64
|
+
export SLACK_API_TOKEN=your_api_token
|
65
|
+
```
|
66
|
+
|
67
|
+
https://api.slack.com/docs/oauth-test-tokens
|
68
|
+
|
69
|
+
### Post
|
70
|
+
|
71
|
+
```
|
72
|
+
sslack post (channel_name) (post_text)
|
73
|
+
```
|
74
|
+
|
75
|
+
### Rspec
|
76
|
+
|
77
|
+
```
|
78
|
+
sslack rspec spec/* (post_channel_name)
|
79
|
+
```
|
80
|
+
|
59
81
|
## Development
|
60
82
|
|
61
83
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/simple_slack/client.rb
CHANGED
@@ -2,6 +2,7 @@ require 'slack'
|
|
2
2
|
require 'simple_slack/getter'
|
3
3
|
require 'simple_slack/poster'
|
4
4
|
require 'simple_slack/botter'
|
5
|
+
require 'simple_slack/deleter'
|
5
6
|
require 'simple_slack/toggl'
|
6
7
|
|
7
8
|
module SimpleSlack
|
@@ -24,6 +25,10 @@ module SimpleSlack
|
|
24
25
|
@botter ||= SimpleSlack::Botter.new(@token, self)
|
25
26
|
end
|
26
27
|
|
28
|
+
def delete
|
29
|
+
@delete ||= SimpleSlack::Deleter.new(@slack, self)
|
30
|
+
end
|
31
|
+
|
27
32
|
def toggl(toggl_api_token = ENV['TOGGL_API_TOKEN'])
|
28
33
|
@toggl ||= SimpleSlack::Toggl.new(toggl_api_token, self)
|
29
34
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module SimpleSlack
|
2
|
+
class Deleter
|
3
|
+
def initialize(slack, client)
|
4
|
+
@slack = slack
|
5
|
+
@client = client
|
6
|
+
end
|
7
|
+
|
8
|
+
def to_a
|
9
|
+
"#chat(ts: string:require, channel: string:require. as_user: boolean:optional)"
|
10
|
+
end
|
11
|
+
|
12
|
+
def chat(channel:, ts:, as_user: true)
|
13
|
+
channel_id = @client.get.channel(channel)[:id]
|
14
|
+
@slack.chat_delete(channel: channel_id, ts: ts, as_user: as_user)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/simple_slack/getter.rb
CHANGED
@@ -6,12 +6,15 @@ module SimpleSlack
|
|
6
6
|
|
7
7
|
# use options for
|
8
8
|
# :is_channel, :creator, :members, :topic, :purpose, :num_members, etc
|
9
|
-
def channels(options = [])
|
9
|
+
def channels(options = [], cache: true)
|
10
|
+
return @channels if cache && !@channels.nil?
|
10
11
|
channels = @slack.channels_list
|
11
|
-
channels
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
@channels = begin
|
13
|
+
channels["channels"].map do |channel|
|
14
|
+
add_params = options.empty? ? {} : options_to_hash(options, channel)
|
15
|
+
{ id: channel["id"], name: channel["name"] }.merge(add_params)
|
16
|
+
end.sort_by {|ch| ch[:name] }
|
17
|
+
end
|
15
18
|
end
|
16
19
|
|
17
20
|
def channel(key, options = [])
|
@@ -26,12 +29,15 @@ module SimpleSlack
|
|
26
29
|
|
27
30
|
# use options for
|
28
31
|
# :real_name, :is_admin, :is_bot, etc...
|
29
|
-
def users(options = [])
|
32
|
+
def users(options = [], cache: true)
|
33
|
+
return @users if cache && !@users.nil?
|
30
34
|
users = @slack.users_list
|
31
|
-
users
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
+
@users = begin
|
36
|
+
users["members"].map do |user|
|
37
|
+
add_params = options.empty? ? {} : options_to_hash(options, user)
|
38
|
+
{ id: user["id"], name: user["name"] }.merge(add_params)
|
39
|
+
end.sort_by {|ch| ch[:name] }
|
40
|
+
end
|
35
41
|
end
|
36
42
|
|
37
43
|
def user(key, options = [])
|
@@ -46,11 +52,14 @@ module SimpleSlack
|
|
46
52
|
|
47
53
|
# use options for
|
48
54
|
# :image_24, :image_32, :image_48, image_72, etc...
|
49
|
-
def images(options = [])
|
55
|
+
def images(options = [], cache: true)
|
56
|
+
return @images if cache && !@images.nil?
|
50
57
|
users = @slack.users_list
|
51
|
-
|
52
|
-
|
53
|
-
|
58
|
+
@images = begin
|
59
|
+
users["members"].map do |user|
|
60
|
+
add_params = options.empty? ? {} : options_to_hash(options, user["profile"])
|
61
|
+
{ id: user["id"], name: user["name"], image: user["profile"]["image_24"] }.merge(add_params)
|
62
|
+
end
|
54
63
|
end
|
55
64
|
end
|
56
65
|
|
@@ -66,16 +75,19 @@ module SimpleSlack
|
|
66
75
|
|
67
76
|
# use options for
|
68
77
|
# :created, :is_im, :is_org_shared, :is_user_deleted
|
69
|
-
def ims(options = [])
|
78
|
+
def ims(options = [], cache: true)
|
79
|
+
return @ims if cache && !@ims.nil?
|
70
80
|
im_list = @slack.im_list
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
81
|
+
@ims = begin
|
82
|
+
im_list["ims"].map do |im|
|
83
|
+
im_user = if im["user"] == "USLACKBOT"
|
84
|
+
{ id: im["user"], name: "slackbot" }
|
85
|
+
else
|
86
|
+
user(im["user"])
|
87
|
+
end
|
88
|
+
add_params = options.empty? ? {} : options_to_hash(options, im)
|
89
|
+
{ id: im["id"], user: im_user }.merge(add_params)
|
90
|
+
end
|
79
91
|
end
|
80
92
|
end
|
81
93
|
|
data/lib/simple_slack/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_slack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- toririn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -131,6 +131,7 @@ files:
|
|
131
131
|
- lib/simple_slack/botter.rb
|
132
132
|
- lib/simple_slack/cli.rb
|
133
133
|
- lib/simple_slack/client.rb
|
134
|
+
- lib/simple_slack/deleter.rb
|
134
135
|
- lib/simple_slack/getter.rb
|
135
136
|
- lib/simple_slack/poster.rb
|
136
137
|
- lib/simple_slack/toggl.rb
|