punchblock 1.5.1 → 1.5.2

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.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # [develop](https://github.com/adhearsion/punchblock)
2
2
 
3
+ # [v1.5.2](https://github.com/adhearsion/punchblock/compare/v1.5.1...v1.5.2) - [2012-10-25](https://rubygems.org/gems/punchblock/versions/1.5.2)
4
+ * Bugfix: Use correct GRXML content type
5
+ * Bugfix: Fix UniMRCP for documents containing commas
6
+ * Bugfix: Bump Celluloid dependency to avoid issues with serialising AMI
7
+
3
8
  # [v1.5.1](https://github.com/adhearsion/punchblock/compare/v1.5.0...v1.5.1) - [2012-10-11](https://rubygems.org/gems/punchblock/versions/1.5.1)
4
9
  * Update: Bump Celluloid dependency
5
10
  * Bugfix: Input grammars referenced by URL now no longer specify a content type
@@ -254,7 +254,7 @@ module Punchblock
254
254
  private
255
255
 
256
256
  def grxml_content_type
257
- 'application/grammar+grxml'
257
+ 'application/srgs+xml'
258
258
  end
259
259
 
260
260
  def grxml?
@@ -53,7 +53,7 @@ module Punchblock
53
53
  playback opts
54
54
  when :unimrcp
55
55
  send_ref
56
- @call.send_agi_action! 'EXEC MRCPSynth', escaped_doc, mrcpsynth_options do |complete_event|
56
+ @call.send_agi_action! 'EXEC MRCPSynth', escape_commas(escaped_doc), mrcpsynth_options do |complete_event|
57
57
  output_component.send_complete_event! success_reason
58
58
  end
59
59
  when :swift
@@ -97,6 +97,11 @@ module Punchblock
97
97
  @component_node.ssml.to_s.squish.gsub(/["\\]/) { |m| "\\#{m}" }
98
98
  end
99
99
 
100
+ def escape_commas(text)
101
+ text.gsub(/,/, '\\,')
102
+ end
103
+
104
+
100
105
  def mrcpsynth_options
101
106
  [].tap do |opts|
102
107
  opts << 'i=any' if [:any, :dtmf].include? @component_node.interrupt_on
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Punchblock
4
- VERSION = "1.5.1"
4
+ VERSION = "1.5.2"
5
5
  end
data/punchblock.gemspec CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
28
28
  s.add_runtime_dependency %q<state_machine>, ["~> 1.0"]
29
29
  s.add_runtime_dependency %q<future-resource>, ["~> 1.0"]
30
30
  s.add_runtime_dependency %q<has-guarded-handlers>, ["~> 1.3"]
31
- s.add_runtime_dependency %q<celluloid>, ["~> 0.12", ">= 0.12.1"]
31
+ s.add_runtime_dependency %q<celluloid>, ["~> 0.12", ">= 0.12.3"]
32
32
  s.add_runtime_dependency %q<ruby_ami>, ["~> 1.2", ">= 1.2.1"]
33
33
  s.add_runtime_dependency %q<ruby_fs>, ["~> 1.0"]
34
34
  s.add_runtime_dependency %q<ruby_speech>, ["~> 1.0"]
@@ -80,7 +80,7 @@ module Punchblock
80
80
  describe Input::Grammar do
81
81
  describe "when not passing a content type" do
82
82
  subject { Input::Grammar.new :value => grxml_doc }
83
- its(:content_type) { should be == 'application/grammar+grxml' }
83
+ its(:content_type) { should be == 'application/srgs+xml' }
84
84
  end
85
85
 
86
86
  describe 'with a simple grammar' do
@@ -94,9 +94,9 @@ module Punchblock
94
94
  end
95
95
 
96
96
  describe 'with a GRXML grammar' do
97
- subject { Input::Grammar.new :value => grxml_doc, :content_type => 'application/grammar+grxml' }
97
+ subject { Input::Grammar.new :value => grxml_doc, :content_type => 'application/srgs+xml' }
98
98
 
99
- its(:content_type) { should be == 'application/grammar+grxml' }
99
+ its(:content_type) { should be == 'application/srgs+xml' }
100
100
 
101
101
  let(:expected_message) { "<![CDATA[ #{grxml_doc} ]]>" }
102
102
 
@@ -162,6 +162,22 @@ module Punchblock
162
162
  subject.execute
163
163
  end
164
164
 
165
+ context "when the SSML document contains commas" do
166
+ let :ssml_doc do
167
+ RubySpeech::SSML.draw do
168
+ string "this, here, is a test"
169
+ end
170
+ end
171
+
172
+ it 'should escape TTS strings containing a comma' do
173
+ mock_call.expects(:send_agi_action!).once.with do |*args|
174
+ args[0].should be == 'EXEC MRCPSynth'
175
+ args[1].should match(/this\\, here\\, is a test/)
176
+ end
177
+ subject.execute
178
+ end
179
+ end
180
+
165
181
  it 'should send a complete event when MRCPSynth completes' do
166
182
  def mock_call.send_agi_action!(*args, &block)
167
183
  block.call Punchblock::Component::Asterisk::AGI::Command::Complete::Success.new(:code => 200, :result => 1)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: punchblock
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-10-11 00:00:00.000000000 Z
14
+ date: 2012-10-25 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: niceogiri
@@ -119,7 +119,7 @@ dependencies:
119
119
  version: '0.12'
120
120
  - - ! '>='
121
121
  - !ruby/object:Gem::Version
122
- version: 0.12.1
122
+ version: 0.12.3
123
123
  type: :runtime
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
@@ -130,7 +130,7 @@ dependencies:
130
130
  version: '0.12'
131
131
  - - ! '>='
132
132
  - !ruby/object:Gem::Version
133
- version: 0.12.1
133
+ version: 0.12.3
134
134
  - !ruby/object:Gem::Dependency
135
135
  name: ruby_ami
136
136
  requirement: !ruby/object:Gem::Requirement
@@ -515,7 +515,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
515
515
  version: '0'
516
516
  segments:
517
517
  - 0
518
- hash: -2734494276677076274
518
+ hash: 1038933123642374556
519
519
  required_rubygems_version: !ruby/object:Gem::Requirement
520
520
  none: false
521
521
  requirements: