simple_slack 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 13b40759d9819966ef20fb9327dbaf0cf1b89702
4
- data.tar.gz: 91baadd84d1e5e3be391c356165d65ddb1557ab9
3
+ metadata.gz: 6249fe5cdc7558dcd09186f231390529cf9933d9
4
+ data.tar.gz: 7f35bd51fb4504e375dd6654913047728eeeabad
5
5
  SHA512:
6
- metadata.gz: 55e423c0b8a876d36fe36ecfafc210081a0e2e5f973ac19511c620eaff181fd45f8cc42ceabca3245a1ca6822d6441cfe99da83121325f840626fabd6d7ffb4c
7
- data.tar.gz: bfb07c56c760a97ad2c22e06e7f8317a1382c86fc1d442baacf2de388cff8687d63ad50eef7790f28dbef228dc9ecd97405f6666ef116c9c840865b2d6432d9d
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.
@@ -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
@@ -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["channels"].map do |channel|
12
- add_params = options.empty? ? {} : options_to_hash(options, channel)
13
- { id: channel["id"], name: channel["name"] }.merge(add_params)
14
- end.sort_by {|ch| ch[:name] }
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["members"].map do |user|
32
- add_params = options.empty? ? {} : options_to_hash(options, user)
33
- { id: user["id"], name: user["name"] }.merge(add_params)
34
- end.sort_by {|ch| ch[:name] }
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
- users["members"].map do |user|
52
- add_params = options.empty? ? {} : options_to_hash(options, user["profile"])
53
- { id: user["id"], name: user["name"], image: user["profile"]["image_24"] }.merge(add_params)
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
- im_list["ims"].map do |im|
72
- im_user = if im["user"] == "USLACKBOT"
73
- { id: im["user"], name: "slackbot" }
74
- else
75
- user(im["user"])
76
- end
77
- add_params = options.empty? ? {} : options_to_hash(options, im)
78
- { id: im["id"], user: im_user }.merge(add_params)
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
 
@@ -1,3 +1,3 @@
1
1
  module SimpleSlack
2
- VERSION = "0.4.2"
2
+ VERSION = "0.5.0"
3
3
  end
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.2
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: 2016-12-06 00:00:00.000000000 Z
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