grape-slack-bot 1.1.0 → 1.2.1

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
  SHA256:
3
- metadata.gz: 4b53a91399f6f62b4e41344291c542bc21fd0ba9a8fc0439cbdcedf582b136f2
4
- data.tar.gz: 8e1f65196522cb4289d34fb74ffe7aeab067cd1998587ffeccbe460dea687f94
3
+ metadata.gz: 34be79021e713fec3adb16eaf1006303d01fb3e5da025daba80aa28ee6400bd8
4
+ data.tar.gz: 7c978813cafc6cb78c97d8db3001e90a9f5961eac73269e0c748e0b4fedcebc5
5
5
  SHA512:
6
- metadata.gz: ceccba665b1446c26bb0168af5e4d80336e2bf48eb7d58d7b293073041298587980f697372f97a9f5e26852f0753e59f4bd6933d2ece99936535df35917f4786
7
- data.tar.gz: 015ca10566222e5472c36736a97b382775008b8d8fb98eb1e1ee6a9d8ed79d211b2e765d78ff328a707bcb3998800a8d51d22d2950b7bfe6909f12bff421fea2
6
+ metadata.gz: 1c55b60b6ea73f8528daee36229b9556f8c1fbe885caebd135181d561ed73629e5ebe4784ff2e7cdb9f3d581acc758db493112571f1d0c0eea8824e1613bd6ee
7
+ data.tar.gz: ed3c34753a2affe1dc01031ebc43af4fd5dea85279cf09cab6272893f81930f5099de57716dbf2cd0f4d5a63166175721bfe657234ead03ba094186f62f8babf
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ # 1.2.1
2
+
3
+ * Extract `SlackBot::Logger` to separate file
4
+
5
+ # 1.2.0
6
+
7
+ * Remove `Rails.logger` dependency, make logger configurable
8
+
1
9
  # 1.1.0
2
10
 
3
11
  * Set minimum ruby version requirement to 2.5.0
data/README.md CHANGED
@@ -133,6 +133,7 @@ References:
133
133
  Create `app/api/slack_bot_api.rb`, it will contain bot configuration and endpoints setup:
134
134
 
135
135
  ```ruby
136
+ SlackBot::DevConsole.logger = Rails.logger
136
137
  SlackBot::DevConsole.enabled = Rails.env.development?
137
138
  SlackBot::Config.configure do
138
139
  callback_storage Rails.cache
@@ -8,24 +8,32 @@ module SlackBot
8
8
  @enabled
9
9
  end
10
10
 
11
- def self.log(message = nil, &)
11
+ def self.logger=(value)
12
+ @logger = value
13
+ end
14
+
15
+ def self.logger
16
+ @logger ||= Logger.new
17
+ end
18
+
19
+ def self.log(message = nil, &block)
12
20
  return unless enabled?
13
21
 
14
22
  message = yield if block_given?
15
- Rails.logger.info(message)
23
+ logger.info(message)
16
24
  end
17
25
 
18
- def self.log_input(message = nil, &)
26
+ def self.log_input(message = nil, &block)
19
27
  message = yield if block_given?
20
28
  log(">>> #{message}")
21
29
  end
22
30
 
23
- def self.log_output(message = nil, &)
31
+ def self.log_output(message = nil, &block)
24
32
  message = yield if block_given?
25
33
  log("<<< #{message}")
26
34
  end
27
35
 
28
- def self.log_check(message = nil, &)
36
+ def self.log_check(message = nil, &block)
29
37
  message = yield if block_given?
30
38
  log("!!! #{message}")
31
39
  end
@@ -0,0 +1,8 @@
1
+ module SlackBot
2
+ class Logger
3
+ def info(*args, **kwargs)
4
+ puts args.inspect if args.any?
5
+ puts kwargs.inspect if kwargs.any?
6
+ end
7
+ end
8
+ end
data/lib/slack_bot.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'slack_bot/logger'
1
2
  require 'slack_bot/dev_console'
2
3
 
3
4
  require 'slack_bot/config'
@@ -21,5 +22,5 @@ require 'slack_bot/pager'
21
22
  require 'slack_bot/grape_extension'
22
23
 
23
24
  module SlackBot
24
- VERSION = '1.1.0'.freeze
25
+ VERSION = '1.2.1'.freeze
25
26
  end
@@ -0,0 +1,95 @@
1
+ require 'spec_helper'
2
+
3
+ describe SlackBot::DevConsole do
4
+ let(:logger) { instance_double(SlackBot::Logger) }
5
+ before do
6
+ described_class.enabled = true
7
+ described_class.logger = logger
8
+ end
9
+
10
+ describe '.enabled=' do
11
+ it 'sets the enabled value' do
12
+ expect { described_class.enabled = false }.to change(described_class, :enabled?).from(true).to(false)
13
+ end
14
+ end
15
+
16
+ describe '.logger=' do
17
+ let(:new_logger) { instance_double(SlackBot::Logger) }
18
+ after { described_class.logger = logger }
19
+ it 'sets the logger' do
20
+ expect { described_class.logger = new_logger }.to change(described_class, :logger).from(logger).to(new_logger)
21
+ end
22
+ end
23
+
24
+ describe '.log' do
25
+ context 'when enabled' do
26
+ before { described_class.enabled = true }
27
+ it 'logs the message' do
28
+ expect(described_class.logger).to receive(:info).with('test')
29
+ described_class.log('test')
30
+ end
31
+ end
32
+
33
+ context 'when disabled' do
34
+ before { described_class.enabled = false }
35
+ it 'does not log the message' do
36
+ expect(described_class.logger).not_to receive(:info)
37
+ described_class.log('test')
38
+ end
39
+ end
40
+ end
41
+
42
+ describe '.log_input' do
43
+ context 'when enabled' do
44
+ before { described_class.enabled = true }
45
+ it 'logs the message' do
46
+ expect(described_class.logger).to receive(:info).with('>>> test')
47
+ described_class.log_input('test')
48
+ end
49
+ end
50
+
51
+ context 'when disabled' do
52
+ before { described_class.enabled = false }
53
+ it 'does not log the message' do
54
+ expect(described_class.logger).not_to receive(:info)
55
+ described_class.log_input('test')
56
+ end
57
+ end
58
+ end
59
+
60
+ describe '.log_output' do
61
+ context 'when enabled' do
62
+ before { described_class.enabled = true }
63
+ it 'logs the message' do
64
+ expect(described_class.logger).to receive(:info).with('<<< test')
65
+ described_class.log_output('test')
66
+ end
67
+ end
68
+
69
+ context 'when disabled' do
70
+ before { described_class.enabled = false }
71
+ it 'does not log the message' do
72
+ expect(described_class.logger).not_to receive(:info)
73
+ described_class.log_output('test')
74
+ end
75
+ end
76
+ end
77
+
78
+ describe '.log_check' do
79
+ context 'when enabled' do
80
+ before { described_class.enabled = true }
81
+ it 'logs the message' do
82
+ expect(described_class.logger).to receive(:info).with('!!! test')
83
+ described_class.log_check('test')
84
+ end
85
+ end
86
+
87
+ context 'when disabled' do
88
+ before { described_class.enabled = false }
89
+ it 'does not log the message' do
90
+ expect(described_class.logger).not_to receive(:info)
91
+ described_class.log_check('test')
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ describe SlackBot::Logger do
4
+ describe '#info' do
5
+ it 'prints the args' do
6
+ expect { subject.info('test') }.to output(%(["test"]\n)).to_stdout
7
+ end
8
+
9
+ it 'prints the kwargs' do
10
+ expect { subject.info(test: 'test') }.to output(%({:test=>"test"}\n)).to_stdout
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,51 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe SlackBot::Pager do
4
+ let(:args) do
5
+ instance_double(SlackBot::Args)
6
+ end
7
+ before do
8
+ allow(args).to receive(:[]).with(:page).and_return(1)
9
+ allow(args).to receive(:[]).with(:per_page).and_return(10)
10
+ end
4
11
 
12
+ describe '#total_count' do
13
+ it 'returns the count of the source cursor' do
14
+ source_cursor = double(count: 10)
15
+ pager = described_class.new(source_cursor, args: args)
16
+ expect(pager.total_count).to eq(10)
17
+ end
18
+ end
19
+
20
+ describe '#pages_count' do
21
+ it 'returns the count of the source cursor divided by the limit' do
22
+ source_cursor = double(count: 10)
23
+ pager = described_class.new(source_cursor, args: args, limit: 5)
24
+ expect(pager.pages_count).to eq(2)
25
+ end
26
+
27
+ it 'returns the count of the source cursor divided by the limit' do
28
+ source_cursor = double(count: 11)
29
+ pager = described_class.new(source_cursor, args: args, limit: 5)
30
+ expect(pager.pages_count).to eq(3)
31
+ end
32
+ end
33
+
34
+ describe '#offset' do
35
+ it 'returns the offset based on the page and limit' do
36
+ source_cursor = double(count: 10)
37
+ pager = described_class.new(source_cursor, args: args, limit: 5, page: 2)
38
+ expect(pager.offset).to eq(5)
39
+ end
40
+ end
41
+
42
+ describe '#cursor' do
43
+ it 'returns the cursor with the limit and offset' do
44
+ source_cursor = double(count: 10)
45
+ expect(source_cursor).to receive(:limit).with(5).and_return(source_cursor)
46
+ expect(source_cursor).to receive(:offset).with(5).and_return(source_cursor)
47
+ pager = described_class.new(source_cursor, args: args, limit: 5, page: 2)
48
+ expect(pager.cursor).to eq(source_cursor)
49
+ end
50
+ end
5
51
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-slack-bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Makarov
@@ -174,6 +174,7 @@ files:
174
174
  - lib/slack_bot/event.rb
175
175
  - lib/slack_bot/grape_extension.rb
176
176
  - lib/slack_bot/interaction.rb
177
+ - lib/slack_bot/logger.rb
177
178
  - lib/slack_bot/menu_options.rb
178
179
  - lib/slack_bot/pager.rb
179
180
  - lib/slack_bot/view.rb
@@ -182,9 +183,11 @@ files:
182
183
  - spec/slack_bot/callback_spec.rb
183
184
  - spec/slack_bot/command_spec.rb
184
185
  - spec/slack_bot/config_spec.rb
186
+ - spec/slack_bot/dev_console_spec.rb
185
187
  - spec/slack_bot/event_spec.rb
186
188
  - spec/slack_bot/grape_extension_spec.rb
187
189
  - spec/slack_bot/interaction_spec.rb
190
+ - spec/slack_bot/logger_spec.rb
188
191
  - spec/slack_bot/menu_options_spec.rb
189
192
  - spec/slack_bot/pager_spec.rb
190
193
  - spec/slack_bot/view_spec.rb
@@ -223,9 +226,11 @@ test_files:
223
226
  - spec/slack_bot/callback_spec.rb
224
227
  - spec/slack_bot/command_spec.rb
225
228
  - spec/slack_bot/config_spec.rb
229
+ - spec/slack_bot/dev_console_spec.rb
226
230
  - spec/slack_bot/event_spec.rb
227
231
  - spec/slack_bot/grape_extension_spec.rb
228
232
  - spec/slack_bot/interaction_spec.rb
233
+ - spec/slack_bot/logger_spec.rb
229
234
  - spec/slack_bot/menu_options_spec.rb
230
235
  - spec/slack_bot/pager_spec.rb
231
236
  - spec/slack_bot/view_spec.rb