slack-ruby-bot 0.12.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -2
  3. data/.rubocop.yml +14 -1
  4. data/.rubocop_todo.yml +13 -36
  5. data/.travis.yml +7 -5
  6. data/CHANGELOG.md +9 -0
  7. data/DEPLOYMENT.md +61 -5
  8. data/Dangerfile +2 -0
  9. data/Gemfile +10 -3
  10. data/LICENSE.md +1 -1
  11. data/README.md +78 -10
  12. data/Rakefile +2 -0
  13. data/TUTORIAL.md +23 -0
  14. data/UPGRADING.md +8 -0
  15. data/examples/inventory/Gemfile +2 -0
  16. data/examples/inventory/inventorybot.rb +5 -1
  17. data/examples/market/Gemfile +4 -3
  18. data/examples/market/marketbot.rb +22 -15
  19. data/examples/minimal/Gemfile +2 -0
  20. data/examples/minimal/pongbot.rb +2 -0
  21. data/examples/weather/Gemfile +2 -0
  22. data/examples/weather/weatherbot.rb +2 -0
  23. data/lib/config/application.rb +4 -2
  24. data/lib/config/boot.rb +2 -0
  25. data/lib/config/environment.rb +3 -1
  26. data/lib/initializers/giphy.rb +2 -0
  27. data/lib/initializers/giphy_client.rb +2 -0
  28. data/lib/slack-ruby-bot.rb +3 -1
  29. data/lib/slack-ruby-bot/about.rb +3 -1
  30. data/lib/slack-ruby-bot/app.rb +2 -0
  31. data/lib/slack-ruby-bot/bot.rb +2 -0
  32. data/lib/slack-ruby-bot/client.rb +7 -4
  33. data/lib/slack-ruby-bot/commands.rb +2 -0
  34. data/lib/slack-ruby-bot/commands/about.rb +2 -0
  35. data/lib/slack-ruby-bot/commands/base.rb +12 -1
  36. data/lib/slack-ruby-bot/commands/help.rb +9 -7
  37. data/lib/slack-ruby-bot/commands/hi.rb +2 -0
  38. data/lib/slack-ruby-bot/commands/support/attrs.rb +2 -0
  39. data/lib/slack-ruby-bot/commands/support/help.rb +4 -0
  40. data/lib/slack-ruby-bot/commands/support/match.rb +4 -3
  41. data/lib/slack-ruby-bot/commands/unknown.rb +2 -0
  42. data/lib/slack-ruby-bot/config.rb +3 -0
  43. data/lib/slack-ruby-bot/hooks.rb +2 -0
  44. data/lib/slack-ruby-bot/hooks/hello.rb +22 -3
  45. data/lib/slack-ruby-bot/hooks/hook_support.rb +2 -0
  46. data/lib/slack-ruby-bot/hooks/message.rb +5 -2
  47. data/lib/slack-ruby-bot/hooks/set.rb +3 -1
  48. data/lib/slack-ruby-bot/mvc.rb +2 -0
  49. data/lib/slack-ruby-bot/mvc/controller/base.rb +4 -3
  50. data/lib/slack-ruby-bot/mvc/model/base.rb +2 -0
  51. data/lib/slack-ruby-bot/mvc/mvc.rb +2 -0
  52. data/lib/slack-ruby-bot/mvc/view/base.rb +2 -0
  53. data/lib/slack-ruby-bot/rspec.rb +3 -1
  54. data/lib/slack-ruby-bot/rspec/support/bots_for_tests.rb +2 -0
  55. data/lib/slack-ruby-bot/rspec/support/slack-ruby-bot/it_behaves_like_a_slack_bot.rb +2 -0
  56. data/lib/slack-ruby-bot/rspec/support/slack-ruby-bot/not_respond.rb +3 -5
  57. data/lib/slack-ruby-bot/rspec/support/slack-ruby-bot/respond_with_error.rb +3 -5
  58. data/lib/slack-ruby-bot/rspec/support/slack-ruby-bot/respond_with_slack_message.rb +16 -13
  59. data/lib/slack-ruby-bot/rspec/support/slack-ruby-bot/respond_with_slack_messages.rb +27 -18
  60. data/lib/slack-ruby-bot/rspec/support/slack-ruby-bot/start_typing.rb +32 -0
  61. data/lib/slack-ruby-bot/rspec/support/slack_api_key.rb +2 -0
  62. data/lib/slack-ruby-bot/rspec/support/slack_ruby_bot_configure.rb +2 -0
  63. data/lib/slack-ruby-bot/rspec/support/spec_helpers.rb +2 -0
  64. data/lib/slack-ruby-bot/rspec/support/vcr.rb +2 -0
  65. data/lib/slack-ruby-bot/server.rb +2 -0
  66. data/lib/slack-ruby-bot/support/loggable.rb +2 -0
  67. data/lib/slack-ruby-bot/version.rb +3 -1
  68. data/lib/slack_ruby_bot.rb +2 -0
  69. data/screenshots/create-app.png +0 -0
  70. data/slack-ruby-bot.gemspec +5 -2
  71. data/spec/slack-ruby-bot/app_spec.rb +2 -0
  72. data/spec/slack-ruby-bot/client_spec.rb +2 -0
  73. data/spec/slack-ruby-bot/commands/about_spec.rb +2 -0
  74. data/spec/slack-ruby-bot/commands/aliases_spec.rb +2 -0
  75. data/spec/slack-ruby-bot/commands/attachment_spec.rb +2 -0
  76. data/spec/slack-ruby-bot/commands/bot_message_spec.rb +2 -0
  77. data/spec/slack-ruby-bot/commands/bot_spec.rb +2 -0
  78. data/spec/slack-ruby-bot/commands/commands_command_classes_spec.rb +2 -0
  79. data/spec/slack-ruby-bot/commands/commands_permitted_spec.rb +2 -0
  80. data/spec/slack-ruby-bot/commands/commands_precedence_spec.rb +2 -0
  81. data/spec/slack-ruby-bot/commands/commands_regexp_escape_spec.rb +2 -0
  82. data/spec/slack-ruby-bot/commands/commands_regexp_spec.rb +2 -0
  83. data/spec/slack-ruby-bot/commands/commands_spaces_spec.rb +2 -0
  84. data/spec/slack-ruby-bot/commands/commands_spec.rb +2 -0
  85. data/spec/slack-ruby-bot/commands/commands_with_block_spec.rb +2 -0
  86. data/spec/slack-ruby-bot/commands/commands_with_expression_spec.rb +2 -0
  87. data/spec/slack-ruby-bot/commands/direct_messages_spec.rb +2 -0
  88. data/spec/slack-ruby-bot/commands/empty_text_spec.rb +2 -0
  89. data/spec/slack-ruby-bot/commands/help_spec.rb +15 -13
  90. data/spec/slack-ruby-bot/commands/hi_spec.rb +2 -0
  91. data/spec/slack-ruby-bot/commands/match_spec.rb +2 -0
  92. data/spec/slack-ruby-bot/commands/message_loop_spec.rb +2 -0
  93. data/spec/slack-ruby-bot/commands/nil_message_spec.rb +2 -0
  94. data/spec/slack-ruby-bot/commands/not_implemented_spec.rb +2 -0
  95. data/spec/slack-ruby-bot/commands/operators_spec.rb +2 -0
  96. data/spec/slack-ruby-bot/commands/operators_with_block_spec.rb +2 -0
  97. data/spec/slack-ruby-bot/commands/scan_spec.rb +2 -0
  98. data/spec/slack-ruby-bot/commands/send_gif_spec.rb +2 -0
  99. data/spec/slack-ruby-bot/commands/send_message_spec.rb +2 -0
  100. data/spec/slack-ruby-bot/commands/send_message_with_gif_spec.rb +2 -0
  101. data/spec/slack-ruby-bot/commands/support/attrs_spec.rb +2 -0
  102. data/spec/slack-ruby-bot/commands/support/help_spec.rb +2 -0
  103. data/spec/slack-ruby-bot/commands/support/match_spec.rb +2 -0
  104. data/spec/slack-ruby-bot/commands/unknown_spec.rb +2 -0
  105. data/spec/slack-ruby-bot/config_spec.rb +2 -0
  106. data/spec/slack-ruby-bot/hooks/hello_spec.rb +51 -0
  107. data/spec/slack-ruby-bot/hooks/hook_support_spec.rb +2 -0
  108. data/spec/slack-ruby-bot/hooks/message_spec.rb +3 -1
  109. data/spec/slack-ruby-bot/hooks/set_spec.rb +2 -0
  110. data/spec/slack-ruby-bot/initializers/giphy_client_spec.rb +2 -0
  111. data/spec/slack-ruby-bot/initializers/giphy_spec.rb +2 -0
  112. data/spec/slack-ruby-bot/mvc/controller/controller_to_command_spec.rb +2 -0
  113. data/spec/slack-ruby-bot/rspec/respond_with_error_spec.rb +2 -0
  114. data/spec/slack-ruby-bot/rspec/respond_with_slack_message_spec.rb +20 -0
  115. data/spec/slack-ruby-bot/rspec/respond_with_slack_messages_spec.rb +36 -0
  116. data/spec/slack-ruby-bot/rspec/start_typing_spec.rb +36 -0
  117. data/spec/slack-ruby-bot/server_spec.rb +2 -0
  118. data/spec/slack-ruby-bot/support/loggable_spec.rb +2 -0
  119. data/spec/slack-ruby-bot/version_spec.rb +2 -0
  120. data/spec/spec_helper.rb +2 -0
  121. metadata +12 -8
  122. data/screenshots/register-bot.png +0 -0
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ describe RSpec do
4
+ let! :command do
5
+ Class.new(SlackRubyBot::Commands::Base) do
6
+ command 'types on the correct channel' do |client, data, _match|
7
+ client.typing(channel: data.channel)
8
+ end
9
+ command 'types on another channel' do |client, _data, _match|
10
+ client.typing(channel: 'another')
11
+ end
12
+ end
13
+ end
14
+
15
+ def app
16
+ SlackRubyBot::App.new
17
+ end
18
+ it 'types on any channel' do
19
+ expect(message: "#{SlackRubyBot.config.user} types on the correct channel", channel: 'channel')
20
+ .to start_typing
21
+ end
22
+ it 'types on another channel' do
23
+ expect(message: "#{SlackRubyBot.config.user} types on another channel", channel: 'channel')
24
+ .to start_typing(channel: 'another')
25
+ end
26
+ it 'types an invalid channel' do
27
+ expect(message: "#{SlackRubyBot.config.user} types on another channel", channel: 'channel')
28
+ .to_not start_typing(channel: 'invalid')
29
+ end
30
+ it 'correctly reports error' do
31
+ expect do
32
+ expect(message: "#{SlackRubyBot.config.user} types on another channel", channel: 'channel')
33
+ .to start_typing(channel: 'invalid')
34
+ end.to raise_error RSpec::Expectations::ExpectationNotMetError, "expected to receive typing with: {:channel=>\"invalid\"} once,\n received:{:channel=>\"another\"}"
35
+ end
36
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  describe SlackRubyBot::Server do
2
4
  let(:logger) { subject.send :logger }
3
5
  let(:client) { Slack::RealTime::Client.new }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  describe SlackRubyBot::Loggable do
2
4
  let!(:class_with_logger) { Class.new SlackRubyBot::Commands::Base }
3
5
  let!(:child_class_with_logger) { Class.new class_with_logger }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  describe SlackRubyBot do
2
4
  it 'has a version' do
3
5
  expect(SlackRubyBot::VERSION).to_not be nil
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'slack-ruby-bot/rspec'
2
4
  require 'webmock/rspec'
3
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack-ruby-bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Doubrovkine
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-25 00:00:00.000000000 Z
11
+ date: 2020-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 0.58.2
89
+ version: 0.80.1
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 0.58.2
96
+ version: 0.80.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: vcr
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -197,6 +197,7 @@ files:
197
197
  - lib/slack-ruby-bot/rspec/support/slack-ruby-bot/respond_with_error.rb
198
198
  - lib/slack-ruby-bot/rspec/support/slack-ruby-bot/respond_with_slack_message.rb
199
199
  - lib/slack-ruby-bot/rspec/support/slack-ruby-bot/respond_with_slack_messages.rb
200
+ - lib/slack-ruby-bot/rspec/support/slack-ruby-bot/start_typing.rb
200
201
  - lib/slack-ruby-bot/rspec/support/slack_api_key.rb
201
202
  - lib/slack-ruby-bot/rspec/support/slack_ruby_bot_configure.rb
202
203
  - lib/slack-ruby-bot/rspec/support/spec_helpers.rb
@@ -206,11 +207,11 @@ files:
206
207
  - lib/slack-ruby-bot/version.rb
207
208
  - lib/slack_ruby_bot.rb
208
209
  - screenshots/aliases.gif
210
+ - screenshots/create-app.png
209
211
  - screenshots/demo.gif
210
212
  - screenshots/dms.gif
211
213
  - screenshots/help.png
212
214
  - screenshots/market.gif
213
- - screenshots/register-bot.png
214
215
  - screenshots/weather.gif
215
216
  - slack-ruby-bot.gemspec
216
217
  - slack.png
@@ -249,6 +250,7 @@ files:
249
250
  - spec/slack-ruby-bot/commands/support/match_spec.rb
250
251
  - spec/slack-ruby-bot/commands/unknown_spec.rb
251
252
  - spec/slack-ruby-bot/config_spec.rb
253
+ - spec/slack-ruby-bot/hooks/hello_spec.rb
252
254
  - spec/slack-ruby-bot/hooks/hook_support_spec.rb
253
255
  - spec/slack-ruby-bot/hooks/message_spec.rb
254
256
  - spec/slack-ruby-bot/hooks/set_spec.rb
@@ -258,6 +260,7 @@ files:
258
260
  - spec/slack-ruby-bot/rspec/respond_with_error_spec.rb
259
261
  - spec/slack-ruby-bot/rspec/respond_with_slack_message_spec.rb
260
262
  - spec/slack-ruby-bot/rspec/respond_with_slack_messages_spec.rb
263
+ - spec/slack-ruby-bot/rspec/start_typing_spec.rb
261
264
  - spec/slack-ruby-bot/server_spec.rb
262
265
  - spec/slack-ruby-bot/support/loggable_spec.rb
263
266
  - spec/slack-ruby-bot/version_spec.rb
@@ -274,15 +277,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
274
277
  requirements:
275
278
  - - ">="
276
279
  - !ruby/object:Gem::Version
277
- version: '0'
280
+ version: '2.3'
278
281
  required_rubygems_version: !ruby/object:Gem::Requirement
279
282
  requirements:
280
283
  - - ">="
281
284
  - !ruby/object:Gem::Version
282
285
  version: 1.3.6
283
286
  requirements: []
284
- rubyforge_project:
285
- rubygems_version: 2.7.6
287
+ rubygems_version: 3.0.3
286
288
  signing_key:
287
289
  specification_version: 4
288
290
  summary: The easiest way to write a Slack bot in Ruby.
@@ -322,6 +324,7 @@ test_files:
322
324
  - spec/slack-ruby-bot/commands/support/match_spec.rb
323
325
  - spec/slack-ruby-bot/commands/unknown_spec.rb
324
326
  - spec/slack-ruby-bot/config_spec.rb
327
+ - spec/slack-ruby-bot/hooks/hello_spec.rb
325
328
  - spec/slack-ruby-bot/hooks/hook_support_spec.rb
326
329
  - spec/slack-ruby-bot/hooks/message_spec.rb
327
330
  - spec/slack-ruby-bot/hooks/set_spec.rb
@@ -331,6 +334,7 @@ test_files:
331
334
  - spec/slack-ruby-bot/rspec/respond_with_error_spec.rb
332
335
  - spec/slack-ruby-bot/rspec/respond_with_slack_message_spec.rb
333
336
  - spec/slack-ruby-bot/rspec/respond_with_slack_messages_spec.rb
337
+ - spec/slack-ruby-bot/rspec/start_typing_spec.rb
334
338
  - spec/slack-ruby-bot/server_spec.rb
335
339
  - spec/slack-ruby-bot/support/loggable_spec.rb
336
340
  - spec/slack-ruby-bot/version_spec.rb
Binary file