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 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