adhearsion 2.4.0 → 2.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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -3
  3. data/CHANGELOG.md +29 -0
  4. data/Gemfile +0 -2
  5. data/Guardfile +2 -2
  6. data/README.markdown +3 -6
  7. data/Rakefile +1 -1
  8. data/adhearsion.gemspec +7 -2
  9. data/features/cli_create.feature +85 -7
  10. data/features/plugin_generator.feature +4 -0
  11. data/features/step_definitions/app_generator_steps.rb +8 -1
  12. data/lib/adhearsion.rb +6 -3
  13. data/lib/adhearsion/call.rb +101 -30
  14. data/lib/adhearsion/call_controller.rb +40 -12
  15. data/lib/adhearsion/call_controller/dial.rb +119 -36
  16. data/lib/adhearsion/call_controller/input.rb +11 -5
  17. data/lib/adhearsion/call_controller/output.rb +47 -33
  18. data/lib/adhearsion/call_controller/output/async_player.rb +3 -2
  19. data/lib/adhearsion/call_controller/output/formatter.rb +7 -2
  20. data/lib/adhearsion/call_controller/output/player.rb +2 -2
  21. data/lib/adhearsion/call_controller/record.rb +16 -13
  22. data/lib/adhearsion/call_controller/utility.rb +3 -3
  23. data/lib/adhearsion/calls.rb +21 -8
  24. data/lib/adhearsion/cli_commands/ahn_command.rb +1 -0
  25. data/lib/adhearsion/configuration.rb +2 -2
  26. data/lib/adhearsion/console.rb +3 -2
  27. data/lib/adhearsion/generators.rb +7 -9
  28. data/lib/adhearsion/generators/app/app_generator.rb +12 -2
  29. data/lib/adhearsion/generators/app/templates/Gemfile.erb +7 -9
  30. data/lib/adhearsion/generators/app/templates/README.md +0 -19
  31. data/lib/adhearsion/generators/app/templates/adhearsion.erb +37 -0
  32. data/lib/adhearsion/generators/app/templates/config/environment.rb +6 -1
  33. data/lib/adhearsion/generators/app/templates/events.erb +18 -0
  34. data/lib/adhearsion/generators/app/templates/routes.erb +19 -0
  35. data/lib/adhearsion/generators/app/templates/{lib/simon_game.rb → simon_game.rb} +0 -0
  36. data/lib/adhearsion/generators/app/templates/{spec/call_controllers/simon_game_spec.rb → simon_game_spec.rb} +0 -0
  37. data/lib/adhearsion/generators/controller/controller_generator.rb +2 -2
  38. data/lib/adhearsion/generators/controller/templates/lib/{controller.rb → controller.rb.erb} +0 -0
  39. data/lib/adhearsion/generators/controller/templates/spec/{controller_spec.rb → controller_spec.rb.erb} +0 -0
  40. data/lib/adhearsion/generators/plugin/plugin_generator.rb +16 -15
  41. data/lib/adhearsion/generators/plugin/templates/gitignore +17 -0
  42. data/lib/adhearsion/generators/plugin/templates/spec/plugin-template/controller_methods_spec.rb.tt +1 -1
  43. data/lib/adhearsion/initializer.rb +14 -2
  44. data/lib/adhearsion/logging.rb +1 -0
  45. data/lib/adhearsion/outbound_call.rb +3 -7
  46. data/lib/adhearsion/punchblock_plugin/initializer.rb +3 -2
  47. data/lib/adhearsion/router/openended_route.rb +1 -1
  48. data/lib/adhearsion/router/route.rb +4 -3
  49. data/lib/adhearsion/version.rb +1 -1
  50. data/spec/adhearsion/call_controller/dial_spec.rb +811 -79
  51. data/spec/adhearsion/call_controller/output/formatter_spec.rb +13 -1
  52. data/spec/adhearsion/call_controller/output_spec.rb +35 -1
  53. data/spec/adhearsion/call_controller_spec.rb +174 -18
  54. data/spec/adhearsion/call_spec.rb +423 -39
  55. data/spec/adhearsion/calls_spec.rb +19 -3
  56. data/spec/adhearsion/outbound_call_spec.rb +88 -45
  57. data/spec/adhearsion/punchblock_plugin/initializer_spec.rb +3 -3
  58. data/spec/adhearsion/router/route_spec.rb +2 -2
  59. data/spec/spec_helper.rb +2 -0
  60. metadata +92 -77
  61. data/features/app_generator.feature +0 -49
  62. data/lib/adhearsion/generators/app/templates/config/adhearsion.rb +0 -71
  63. data/lib/adhearsion/generators/plugin/templates/.gitignore +0 -9
@@ -1,49 +0,0 @@
1
- Feature: Adhearsion App Generator
2
- In order to do development on new Adhearsion apps
3
- As an Adhearsion developer
4
- I want to generate an Adhearsion app
5
-
6
- Scenario: Generate application with valid layout
7
- When I run `ahn create path/somewhere`
8
- And I cd to "path/somewhere"
9
- Then the following directories should exist:
10
- | lib |
11
- | config |
12
- | script |
13
- | spec |
14
- | spec/call_controllers |
15
- | spec/support |
16
-
17
- And the following files should exist:
18
- | .gitignore |
19
- | .rspec |
20
- | config/adhearsion.rb |
21
- | config/environment.rb |
22
- | Gemfile |
23
- | lib/simon_game.rb |
24
- | script/ahn |
25
- | spec/spec_helper.rb |
26
- | README.md |
27
- | Rakefile |
28
- | Procfile |
29
-
30
- And the file "config/adhearsion.rb" should contain each of these content parts:
31
- """
32
- Adhearsion.router
33
- Adhearsion.config
34
- logging.level
35
- config.punchblock
36
- """
37
- And the file "README.md" should contain each of these content parts:
38
- """
39
- Start your new app with
40
- AGI(agi
41
- """
42
- And the file "Rakefile" should contain "adhearsion/tasks"
43
- And the file "Gemfile" should contain each of these content parts:
44
- """
45
- source 'https://rubygems.org
46
- gem 'adhearsion-asterisk'
47
- """
48
- And the file "lib/simon_game.rb" should contain "class SimonGame"
49
- And the file "script/ahn" should contain "require 'adhearsion'"
@@ -1,71 +0,0 @@
1
- # encoding: utf-8
2
-
3
- Adhearsion.config do |config|
4
-
5
- # Centralized way to specify any Adhearsion platform or plugin configuration
6
- # - Execute rake config:show to view the active configuration values
7
- #
8
- # To update a plugin configuration you can write either:
9
- #
10
- # * Option 1
11
- # Adhearsion.config.<plugin-name> do |config|
12
- # config.<key> = <value>
13
- # end
14
- #
15
- # * Option 2
16
- # Adhearsion.config do |config|
17
- # config.<plugin-name>.<key> = <value>
18
- # end
19
-
20
- config.development do |dev|
21
- dev.platform.logging.level = :debug
22
- end
23
-
24
- ##
25
- # Use with Rayo (eg Voxeo PRISM or FreeSWITCH mod_rayo)
26
- #
27
- # config.punchblock.username = "" # Your XMPP JID for use with Rayo
28
- # config.punchblock.password = "" # Your XMPP password
29
-
30
- ##
31
- # Use with Asterisk
32
- #
33
- # config.punchblock.platform = :asterisk # Use Asterisk
34
- # config.punchblock.username = "" # Your AMI username
35
- # config.punchblock.password = "" # Your AMI password
36
- # config.punchblock.host = "127.0.0.1" # Your AMI host
37
-
38
- ##
39
- # Use with FreeSWITCH via EventSocket
40
- #
41
- # This configuration is no longer recommended and mod_rayo is preferred
42
- #
43
- # config.punchblock.platform = :freeswitch # Use FreeSWITCH
44
- # config.punchblock.password = "" # Your Inbound EventSocket password
45
- # config.punchblock.host = "127.0.0.1" # Your IES host
46
- end
47
-
48
- Adhearsion::Events.draw do
49
-
50
- # Register global handlers for events
51
- #
52
- # eg. Handling Punchblock events
53
- # punchblock do |event|
54
- # ...
55
- # end
56
- #
57
- # eg Handling PeerStatus AMI events
58
- # ami :name => 'PeerStatus' do |event|
59
- # ...
60
- # end
61
- #
62
- end
63
-
64
- Adhearsion.router do
65
-
66
- #
67
- # Specify your call routes, directing calls with particular attributes to a controller
68
- #
69
-
70
- route 'default', SimonGame
71
- end
@@ -1,9 +0,0 @@
1
- *.swp
2
- *.swo
3
- Gemfile.lock
4
- coverage/
5
- vendor/
6
- .bundle/
7
- .DS_Store
8
- pkg/*
9
- *.gem