stealth 2.0.0.beta6 → 2.0.0.beta7

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
  SHA256:
3
- metadata.gz: 691209f0b8b7a49ffa802cb57919c23dccb5f85f3da86e7bfec70c7e0ea85c5f
4
- data.tar.gz: 3399604a657b73ba4d608d3516321d360b46dfd4ad6b5656845156ba61fee21a
3
+ metadata.gz: df932db1ce6adab511eb5ebae31e647e3b5c547e7de0ef92ee427d0b592e250b
4
+ data.tar.gz: 74b9b5099125da94363c2f475062b62fdae543f4a5c40418d0d28293b2a6ca18
5
5
  SHA512:
6
- metadata.gz: 5f11b7d1acf10695012b0c253622d8cd7e4885265517f596f40364b60a9d0547a104aa700c5da78ec2015c5fb5de7a6314dbba716e5262353b50fee154b3c82e
7
- data.tar.gz: 6abe7e7278d7c6a7e13d8c86044baf8d26c266f980decf5415ea9dc0fcf0b9f40e01b233524a933c0c11852b300b7243eff44e27c007c6274aa606ac44b54a5f
6
+ metadata.gz: 589a9e5064cb490e861528edcd32a3da4ff5859fd0405308d73db36a246ebdab437f4f4bd0510eea765a49f1ac292ec4cd1eb0c8cf43fd0d05404f67c6a91566
7
+ data.tar.gz: b7e58cd020e541ba183150c27f4cdfc528c70bd47dbb2760d09084822e0334e747d50291672e18a21b68399fa423876f26ab02d94d9c532e2538b9dac7d30dac
data/CHANGELOG.md CHANGED
@@ -56,6 +56,7 @@
56
56
  * [Replies] Voice services (determined by having "voice" in the name) now automatically skip auto-delays.
57
57
  * [Controllers] `current_message` now has a `confidence` attribute containing a float with the confidence value of the transcription (from 0 to 1).
58
58
  * [Controllers] Added a `halt!` method that can be used with the controller error handlers to stop code execution.
59
+ * [Logger] If the driver makes the `translated_reply` instance variable available, it will now be logged.
59
60
 
60
61
  ## Bug Fixes
61
62
 
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- stealth (2.0.0.beta6)
4
+ stealth (2.0.0.beta7)
5
5
  activesupport (~> 6.0)
6
6
  multi_json (~> 1.12)
7
7
  puma (>= 4.2, < 6.0)
8
- sidekiq (~> 6.0)
8
+ sidekiq (< 7)
9
9
  sinatra (~> 2.0)
10
10
  thor (~> 1.0)
11
11
 
@@ -24,13 +24,13 @@ GEM
24
24
  i18n (1.12.0)
25
25
  concurrent-ruby (~> 1.0)
26
26
  minitest (5.16.3)
27
- mock_redis (0.32.0)
27
+ mock_redis (0.34.0)
28
28
  ruby2_keywords
29
29
  multi_json (1.15.0)
30
30
  mustermann (2.0.2)
31
31
  ruby2_keywords (~> 0.0.1)
32
32
  nio4r (2.5.8)
33
- oj (3.10.6)
33
+ oj (3.13.22)
34
34
  puma (5.6.5)
35
35
  nio4r (~> 2.0)
36
36
  rack (2.2.4)
@@ -39,24 +39,22 @@ GEM
39
39
  rack-test (2.0.2)
40
40
  rack (>= 1.3)
41
41
  redis (4.8.0)
42
- rspec (3.11.0)
43
- rspec-core (~> 3.11.0)
44
- rspec-expectations (~> 3.11.0)
45
- rspec-mocks (~> 3.11.0)
46
- rspec-core (3.11.0)
47
- rspec-support (~> 3.11.0)
48
- rspec-expectations (3.11.0)
42
+ rspec (3.12.0)
43
+ rspec-core (~> 3.12.0)
44
+ rspec-expectations (~> 3.12.0)
45
+ rspec-mocks (~> 3.12.0)
46
+ rspec-core (3.12.0)
47
+ rspec-support (~> 3.12.0)
48
+ rspec-expectations (3.12.0)
49
49
  diff-lcs (>= 1.2.0, < 2.0)
50
- rspec-support (~> 3.11.0)
51
- rspec-mocks (3.11.1)
50
+ rspec-support (~> 3.12.0)
51
+ rspec-mocks (3.12.0)
52
52
  diff-lcs (>= 1.2.0, < 2.0)
53
- rspec-support (~> 3.11.0)
54
- rspec-support (3.11.0)
55
- rspec_junit_formatter (0.4.1)
56
- rspec-core (>= 2, < 4, != 2.12.0)
53
+ rspec-support (~> 3.12.0)
54
+ rspec-support (3.12.0)
57
55
  ruby2_keywords (0.0.5)
58
- sidekiq (6.5.6)
59
- connection_pool (>= 2.2.5)
56
+ sidekiq (6.5.8)
57
+ connection_pool (>= 2.2.5, < 3)
60
58
  rack (~> 2.0)
61
59
  redis (>= 4.5.0, < 5)
62
60
  sinatra (2.2.2)
@@ -68,7 +66,7 @@ GEM
68
66
  tilt (2.0.11)
69
67
  tzinfo (2.0.5)
70
68
  concurrent-ruby (~> 1.0)
71
- zeitwerk (2.6.0)
69
+ zeitwerk (2.6.4)
72
70
 
73
71
  PLATFORMS
74
72
  ruby
@@ -78,7 +76,6 @@ DEPENDENCIES
78
76
  oj (~> 3.10)
79
77
  rack-test (~> 2.0)
80
78
  rspec (~> 3.9)
81
- rspec_junit_formatter (~> 0.3)
82
79
  stealth!
83
80
 
84
81
  BUNDLED WITH
data/README.md CHANGED
@@ -32,6 +32,7 @@ Currently, there are gems for:
32
32
  ### Messaging
33
33
  * [Facebook Messenger](https://github.com/hellostealth/stealth-facebook)
34
34
  * [Twilio SMS](https://github.com/hellostealth/stealth-twilio)
35
+ * [Bandwidth](https://github.com/hellostealth/stealth-bandwidth)
35
36
  * [Smooch](https://github.com/hellostealth/stealth-smooch)
36
37
 
37
38
  ### Voice
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0.beta6
1
+ 2.0.0.beta7
data/lib/stealth/base.rb CHANGED
@@ -123,7 +123,7 @@ module Stealth
123
123
 
124
124
  load_bot!
125
125
 
126
- Sidekiq.options[:reloader] = Stealth.bot_reloader
126
+ Sidekiq[:reloader] = Stealth.bot_reloader
127
127
 
128
128
  if defined?(ActiveRecord)
129
129
  if ENV['DATABASE_URL'].present?
@@ -96,11 +96,11 @@ module Stealth
96
96
  reply: reply
97
97
  )
98
98
 
99
- translated_reply = handler.send(reply.reply_type)
100
- client = service_client.new(reply: translated_reply)
99
+ formatted_reply = handler.send(reply.reply_type)
100
+ client = service_client.new(reply: formatted_reply)
101
101
  client.transmit
102
102
 
103
- log_reply(reply) if Stealth.config.transcript_logging
103
+ log_reply(reply, handler) if Stealth.config.transcript_logging
104
104
 
105
105
  # If this was a 'delay' type of reply, we insert the delay
106
106
  if reply.delay?
@@ -264,10 +264,14 @@ module Stealth
264
264
  end
265
265
  end
266
266
 
267
- def log_reply(reply)
267
+ def log_reply(reply, reply_handler)
268
268
  message = case reply.reply_type
269
269
  when 'text'
270
- reply['text']
270
+ if reply_handler.respond_to?(:translated_reply)
271
+ reply_handler.translated_reply
272
+ else
273
+ reply['text']
274
+ end
271
275
  when 'speech'
272
276
  reply['speech']
273
277
  when 'ssml'
@@ -282,6 +286,8 @@ module Stealth
282
286
  topic: current_service,
283
287
  message: "User #{current_session_id} -> Sending: #{message}"
284
288
  )
289
+
290
+ message
285
291
  end
286
292
 
287
293
  end # instance methods
@@ -66,6 +66,10 @@ describe "Stealth::Controller replies" do
66
66
  send_replies custom_reply: 'messages/sub1/sub2/say_nested'
67
67
  end
68
68
 
69
+ def say_simple_hello
70
+ send_replies
71
+ end
72
+
69
73
  def say_inline_reply
70
74
  reply = [
71
75
  { 'reply_type' => 'text', 'text' => 'Hi, Morty. Welcome to Stealth bot...' },
@@ -609,6 +613,50 @@ describe "Stealth::Controller replies" do
609
613
  end
610
614
  end
611
615
 
616
+ describe "Logging replies" do
617
+ let(:stubbed_handler) { double("handler") }
618
+ let(:stubbed_client) { double("client") }
619
+
620
+ before(:each) do
621
+ allow(Stealth::Services::Facebook::ReplyHandler).to receive(:new).and_return(stubbed_handler)
622
+ allow(Stealth::Services::Facebook::Client).to receive(:new).and_return(stubbed_client)
623
+ allow(controller.current_session).to receive(:flow_string).and_return("message")
624
+ allow(controller.current_session).to receive(:state_string).and_return("say_simple_hello")
625
+ Stealth.config.auto_insert_delays = false
626
+ Stealth.config.transcript_logging = true
627
+ end
628
+
629
+ after(:each) do
630
+ Stealth.config.auto_insert_delays = true
631
+ Stealth.config.transcript_logging = false
632
+ end
633
+
634
+ it "should log replies if transcript_logging is enabled" do
635
+ allow(stubbed_client).to receive(:transmit).and_return(true)
636
+ allow(controller).to receive(:sleep).and_return(true).with(2.0)
637
+
638
+ allow(stubbed_handler).to receive(:text).exactly(1).times
639
+ expect(Stealth::Logger).to receive(:l).with(
640
+ topic: 'facebook',
641
+ message: "User #{controller.current_session_id} -> Sending: Hello"
642
+ )
643
+ controller.say_simple_hello
644
+ end
645
+
646
+ it "should log translated replies if transcript_logging is enabled and the driver supports it" do
647
+ allow(stubbed_client).to receive(:transmit).and_return(true)
648
+ allow(controller).to receive(:sleep).and_return(true).with(2.0)
649
+
650
+ allow(stubbed_handler).to receive(:text).exactly(1).times
651
+ allow(stubbed_handler).to receive(:translated_reply).and_return("Bonjour")
652
+ expect(Stealth::Logger).to receive(:l).with(
653
+ topic: 'facebook',
654
+ message: "User #{controller.current_session_id} -> Sending: Bonjour"
655
+ )
656
+ controller.say_simple_hello
657
+ end
658
+ end
659
+
612
660
  describe "client errors" do
613
661
  let(:stubbed_handler) { double("handler") }
614
662
  let(:stubbed_client) { double("client") }
@@ -0,0 +1,2 @@
1
+ - reply_type: text
2
+ text: "Hello"
data/stealth.gemspec CHANGED
@@ -16,11 +16,10 @@ Gem::Specification.new do |s|
16
16
  s.add_dependency 'puma', '>= 4.2', '< 6.0'
17
17
  s.add_dependency 'thor', '~> 1.0'
18
18
  s.add_dependency 'multi_json', '~> 1.12'
19
- s.add_dependency 'sidekiq', '~> 6.0'
19
+ s.add_dependency 'sidekiq', '< 7'
20
20
  s.add_dependency 'activesupport', '~> 6.0'
21
21
 
22
22
  s.add_development_dependency 'rspec', '~> 3.9'
23
- s.add_development_dependency 'rspec_junit_formatter', '~> 0.3'
24
23
  s.add_development_dependency 'rack-test', '~> 2.0'
25
24
  s.add_development_dependency 'mock_redis', '~> 0.22'
26
25
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stealth
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta6
4
+ version: 2.0.0.beta7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mauricio Gomes
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-09-19 00:00:00.000000000 Z
12
+ date: 2022-11-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
@@ -77,16 +77,16 @@ dependencies:
77
77
  name: sidekiq
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - "<"
81
81
  - !ruby/object:Gem::Version
82
- version: '6.0'
82
+ version: '7'
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - "<"
88
88
  - !ruby/object:Gem::Version
89
- version: '6.0'
89
+ version: '7'
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: activesupport
92
92
  requirement: !ruby/object:Gem::Requirement
@@ -115,20 +115,6 @@ dependencies:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '3.9'
118
- - !ruby/object:Gem::Dependency
119
- name: rspec_junit_formatter
120
- requirement: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '0.3'
125
- type: :development
126
- prerelease: false
127
- version_requirements: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '0.3'
132
118
  - !ruby/object:Gem::Dependency
133
119
  name: rack-test
134
120
  requirement: !ruby/object:Gem::Requirement
@@ -362,6 +348,7 @@ files:
362
348
  - spec/replies/messages/say_oi.yml.erb
363
349
  - spec/replies/messages/say_randomize_speech.yml
364
350
  - spec/replies/messages/say_randomize_text.yml
351
+ - spec/replies/messages/say_simple_hello.yml
365
352
  - spec/replies/messages/say_yo.yml
366
353
  - spec/replies/messages/say_yo.yml+twitter
367
354
  - spec/replies/messages/sub1/sub2/say_nested.yml
@@ -437,6 +424,7 @@ test_files:
437
424
  - spec/replies/messages/say_oi.yml.erb
438
425
  - spec/replies/messages/say_randomize_speech.yml
439
426
  - spec/replies/messages/say_randomize_text.yml
427
+ - spec/replies/messages/say_simple_hello.yml
440
428
  - spec/replies/messages/say_yo.yml
441
429
  - spec/replies/messages/say_yo.yml+twitter
442
430
  - spec/replies/messages/sub1/sub2/say_nested.yml