stealth 1.0.4 → 1.1.0.rc1

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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -4
  3. data/Gemfile +1 -1
  4. data/Gemfile.lock +32 -77
  5. data/README.md +1 -0
  6. data/VERSION +1 -1
  7. data/docs/03-basics.md +18 -2
  8. data/docs/04-sessions.md +12 -0
  9. data/docs/05-controllers.md +3 -3
  10. data/docs/07-replies.md +42 -1
  11. data/lib/stealth/base.rb +23 -9
  12. data/lib/stealth/controller/catch_all.rb +1 -1
  13. data/lib/stealth/controller/controller.rb +21 -9
  14. data/lib/stealth/controller/dynamic_delay.rb +64 -0
  15. data/lib/stealth/controller/replies.rb +55 -14
  16. data/lib/stealth/flow/base.rb +1 -1
  17. data/lib/stealth/flow/specification.rb +30 -8
  18. data/lib/stealth/flow/state.rb +10 -5
  19. data/lib/stealth/generators/builder/Gemfile +3 -0
  20. data/lib/stealth/generators/builder/Procfile.dev +1 -1
  21. data/lib/stealth/generators/builder/bot/controllers/catch_alls_controller.rb +3 -6
  22. data/lib/stealth/generators/builder/config/services.yml +9 -10
  23. data/lib/stealth/generators/generate/flow/controllers/controller.tt +0 -19
  24. data/lib/stealth/generators/generate/flow/helpers/helper.tt +2 -1
  25. data/lib/stealth/generators/generate/flow/replies/{ask_reply.tt → ask_example.tt} +0 -0
  26. data/lib/stealth/generators/generate.rb +2 -9
  27. data/lib/stealth/migrations/tasks.rb +2 -0
  28. data/lib/stealth/scheduled_reply.rb +1 -1
  29. data/lib/stealth/server.rb +2 -0
  30. data/lib/stealth/services/jobs/handle_message_job.rb +1 -1
  31. data/lib/stealth/session.rb +44 -16
  32. data/spec/controller/catch_all_spec.rb +2 -1
  33. data/spec/controller/controller_spec.rb +102 -13
  34. data/spec/controller/dynamic_delay_spec.rb +72 -0
  35. data/spec/controller/replies_spec.rb +94 -3
  36. data/spec/flow/state_spec.rb +33 -4
  37. data/spec/replies/messages/say_hola.yml+facebook.erb +6 -0
  38. data/spec/replies/messages/say_hola.yml+twilio.erb +6 -0
  39. data/spec/replies/messages/say_hola.yml.erb +6 -0
  40. data/spec/replies/messages/say_howdy_with_dynamic.yml +79 -0
  41. data/spec/replies/messages/say_offer_with_dynamic.yml +6 -0
  42. data/spec/replies/messages/say_yo.yml +6 -0
  43. data/spec/replies/messages/say_yo.yml+twitter +6 -0
  44. data/spec/session_spec.rb +17 -0
  45. data/spec/support/sample_messages.rb +24 -26
  46. data/stealth.gemspec +1 -3
  47. metadata +25 -41
  48. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -35
  49. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  50. data/lib/stealth/generators/generate/flow/models/model.tt +0 -2
  51. data/lib/stealth/generators/generate/flow/replies/say_no_reply.tt +0 -2
  52. data/lib/stealth/generators/generate/flow/replies/say_yes_reply.tt +0 -2
@@ -31,38 +31,36 @@ class SampleMessage
31
31
  @base_message
32
32
  end
33
33
 
34
- private
35
-
36
- def sender_id
37
- if @service == 'twilio'
38
- '+15554561212'
39
- else
40
- "8b3e0a3c-62f1-401e-8b0f-615c9d256b1f"
41
- end
34
+ def sender_id
35
+ if @service == 'twilio'
36
+ '+15554561212'
37
+ else
38
+ "8b3e0a3c-62f1-401e-8b0f-615c9d256b1f"
42
39
  end
40
+ end
43
41
 
44
- def timestamp
45
- Time.now
46
- end
42
+ def timestamp
43
+ Time.now
44
+ end
47
45
 
48
- def message
49
- "Hello World!"
50
- end
46
+ def message
47
+ "Hello World!"
48
+ end
51
49
 
52
- def payload
53
- "some_payload"
54
- end
50
+ def payload
51
+ "some_payload"
52
+ end
55
53
 
56
- def location
57
- { lat: '42.323724' , lng: '-83.047543' }
58
- end
54
+ def location
55
+ { lat: '42.323724' , lng: '-83.047543' }
56
+ end
59
57
 
60
- def attachments
61
- [ { type: 'image', url: 'https://domain.none/image.jpg' } ]
62
- end
58
+ def attachments
59
+ [ { type: 'image', url: 'https://domain.none/image.jpg' } ]
60
+ end
63
61
 
64
- def referral
65
- {}
66
- end
62
+ def referral
63
+ {}
64
+ end
67
65
 
68
66
  end
data/stealth.gemspec CHANGED
@@ -18,12 +18,10 @@ Gem::Specification.new do |s|
18
18
  s.add_dependency 'multi_json', '~> 1.12'
19
19
  s.add_dependency 'sidekiq', '~> 5.0'
20
20
  s.add_dependency 'activesupport', '~> 5.2'
21
- s.add_dependency 'activerecord', '~> 5.2'
22
- s.add_dependency 'railties', '~> 5.2'
23
21
 
24
22
  s.add_development_dependency 'rspec', '~> 3.6'
25
23
  s.add_development_dependency 'rspec_junit_formatter', '~> 0.3'
26
- s.add_development_dependency 'rack-test', '~> 0.7'
24
+ s.add_development_dependency 'rack-test', '~> 1.1'
27
25
  s.add_development_dependency 'mock_redis', '~> 0.17'
28
26
 
29
27
  s.files = `git ls-files`.split("\n")
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: 1.0.4
4
+ version: 1.1.0.rc1
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: 2018-08-04 00:00:00.000000000 Z
12
+ date: 2018-11-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
@@ -95,34 +95,6 @@ dependencies:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
97
  version: '5.2'
98
- - !ruby/object:Gem::Dependency
99
- name: activerecord
100
- requirement: !ruby/object:Gem::Requirement
101
- requirements:
102
- - - "~>"
103
- - !ruby/object:Gem::Version
104
- version: '5.2'
105
- type: :runtime
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: '5.2'
112
- - !ruby/object:Gem::Dependency
113
- name: railties
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: '5.2'
119
- type: :runtime
120
- prerelease: false
121
- version_requirements: !ruby/object:Gem::Requirement
122
- requirements:
123
- - - "~>"
124
- - !ruby/object:Gem::Version
125
- version: '5.2'
126
98
  - !ruby/object:Gem::Dependency
127
99
  name: rspec
128
100
  requirement: !ruby/object:Gem::Requirement
@@ -157,14 +129,14 @@ dependencies:
157
129
  requirements:
158
130
  - - "~>"
159
131
  - !ruby/object:Gem::Version
160
- version: '0.7'
132
+ version: '1.1'
161
133
  type: :development
162
134
  prerelease: false
163
135
  version_requirements: !ruby/object:Gem::Requirement
164
136
  requirements:
165
137
  - - "~>"
166
138
  - !ruby/object:Gem::Version
167
- version: '0.7'
139
+ version: '1.1'
168
140
  - !ruby/object:Gem::Dependency
169
141
  name: mock_redis
170
142
  requirement: !ruby/object:Gem::Requirement
@@ -187,8 +159,6 @@ extensions: []
187
159
  extra_rdoc_files: []
188
160
  files:
189
161
  - ".circleci/config.yml"
190
- - ".github/ISSUE_TEMPLATE/bug_report.md"
191
- - ".github/ISSUE_TEMPLATE/feature_request.md"
192
162
  - ".gitignore"
193
163
  - CHANGELOG.md
194
164
  - Gemfile
@@ -222,6 +192,7 @@ files:
222
192
  - lib/stealth/controller/callbacks.rb
223
193
  - lib/stealth/controller/catch_all.rb
224
194
  - lib/stealth/controller/controller.rb
195
+ - lib/stealth/controller/dynamic_delay.rb
225
196
  - lib/stealth/controller/helpers.rb
226
197
  - lib/stealth/controller/replies.rb
227
198
  - lib/stealth/dispatcher.rb
@@ -260,10 +231,7 @@ files:
260
231
  - lib/stealth/generators/generate.rb
261
232
  - lib/stealth/generators/generate/flow/controllers/controller.tt
262
233
  - lib/stealth/generators/generate/flow/helpers/helper.tt
263
- - lib/stealth/generators/generate/flow/models/model.tt
264
- - lib/stealth/generators/generate/flow/replies/ask_reply.tt
265
- - lib/stealth/generators/generate/flow/replies/say_no_reply.tt
266
- - lib/stealth/generators/generate/flow/replies/say_yes_reply.tt
234
+ - lib/stealth/generators/generate/flow/replies/ask_example.tt
267
235
  - lib/stealth/jobs.rb
268
236
  - lib/stealth/logger.rb
269
237
  - lib/stealth/migrations/configurator.rb
@@ -286,13 +254,21 @@ files:
286
254
  - spec/controller/callbacks_spec.rb
287
255
  - spec/controller/catch_all_spec.rb
288
256
  - spec/controller/controller_spec.rb
257
+ - spec/controller/dynamic_delay_spec.rb
289
258
  - spec/controller/helpers_spec.rb
290
259
  - spec/controller/replies_spec.rb
291
260
  - spec/flow/flow_spec.rb
292
261
  - spec/flow/state_spec.rb
293
262
  - spec/replies/hello.yml.erb
263
+ - spec/replies/messages/say_hola.yml+facebook.erb
264
+ - spec/replies/messages/say_hola.yml+twilio.erb
265
+ - spec/replies/messages/say_hola.yml.erb
266
+ - spec/replies/messages/say_howdy_with_dynamic.yml
294
267
  - spec/replies/messages/say_offer.yml
268
+ - spec/replies/messages/say_offer_with_dynamic.yml
295
269
  - spec/replies/messages/say_oi.yml.erb
270
+ - spec/replies/messages/say_yo.yml
271
+ - spec/replies/messages/say_yo.yml+twitter
296
272
  - spec/service_reply_spec.rb
297
273
  - spec/session_spec.rb
298
274
  - spec/spec_helper.rb
@@ -321,12 +297,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
321
297
  version: '0'
322
298
  required_rubygems_version: !ruby/object:Gem::Requirement
323
299
  requirements:
324
- - - ">="
300
+ - - ">"
325
301
  - !ruby/object:Gem::Version
326
- version: '0'
302
+ version: 1.3.1
327
303
  requirements: []
328
304
  rubyforge_project:
329
- rubygems_version: 2.7.6
305
+ rubygems_version: 2.7.7
330
306
  signing_key:
331
307
  specification_version: 4
332
308
  summary: Ruby framework for conversational bots
@@ -335,13 +311,21 @@ test_files:
335
311
  - spec/controller/callbacks_spec.rb
336
312
  - spec/controller/catch_all_spec.rb
337
313
  - spec/controller/controller_spec.rb
314
+ - spec/controller/dynamic_delay_spec.rb
338
315
  - spec/controller/helpers_spec.rb
339
316
  - spec/controller/replies_spec.rb
340
317
  - spec/flow/flow_spec.rb
341
318
  - spec/flow/state_spec.rb
342
319
  - spec/replies/hello.yml.erb
320
+ - spec/replies/messages/say_hola.yml+facebook.erb
321
+ - spec/replies/messages/say_hola.yml+twilio.erb
322
+ - spec/replies/messages/say_hola.yml.erb
323
+ - spec/replies/messages/say_howdy_with_dynamic.yml
343
324
  - spec/replies/messages/say_offer.yml
325
+ - spec/replies/messages/say_offer_with_dynamic.yml
344
326
  - spec/replies/messages/say_oi.yml.erb
327
+ - spec/replies/messages/say_yo.yml
328
+ - spec/replies/messages/say_yo.yml+twitter
345
329
  - spec/service_reply_spec.rb
346
330
  - spec/session_spec.rb
347
331
  - spec/spec_helper.rb
@@ -1,35 +0,0 @@
1
- ---
2
- name: Bug report
3
- about: Create a report to help us improve
4
-
5
- ---
6
-
7
- **Describe the bug**
8
- A clear and concise description of what the bug is.
9
-
10
- **To Reproduce**
11
- Steps to reproduce the behavior:
12
- 1. Go to '...'
13
- 2. Click on '....'
14
- 3. Scroll down to '....'
15
- 4. See error
16
-
17
- **Expected behavior**
18
- A clear and concise description of what you expected to happen.
19
-
20
- **Screenshots**
21
- If applicable, add screenshots to help explain your problem.
22
-
23
- **Desktop (please complete the following information):**
24
- - OS: [e.g. iOS]
25
- - Browser [e.g. chrome, safari]
26
- - Version [e.g. 22]
27
-
28
- **Smartphone (please complete the following information):**
29
- - Device: [e.g. iPhone6]
30
- - OS: [e.g. iOS8.1]
31
- - Browser [e.g. stock browser, safari]
32
- - Version [e.g. 22]
33
-
34
- **Additional context**
35
- Add any other context about the problem here.
@@ -1,17 +0,0 @@
1
- ---
2
- name: Feature request
3
- about: Suggest an idea for this project
4
-
5
- ---
6
-
7
- **Is your feature request related to a problem? Please describe.**
8
- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
9
-
10
- **Describe the solution you'd like**
11
- A clear and concise description of what you want to happen.
12
-
13
- **Describe alternatives you've considered**
14
- A clear and concise description of any alternative solutions or features you've considered.
15
-
16
- **Additional context**
17
- Add any other context or screenshots about the feature request here.
@@ -1,2 +0,0 @@
1
- class <%= name.capitalize.underscore.camelize %> < BotRecord
2
- end
@@ -1,2 +0,0 @@
1
- - reply_type: text
2
- text: "Oh no. :( Why don't you check out our docs at http://www.hello.com for more information."
@@ -1,2 +0,0 @@
1
- - reply_type: text
2
- text: "Awesome!. Check out our docs at http://www.hello.com for additional Stealth awesomeness."