ruby_speech 2.4.0 → 3.0.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 (43) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.travis.yml +11 -23
  4. data/CHANGELOG.md +4 -0
  5. data/README.md +2 -2
  6. data/Rakefile +2 -0
  7. data/lib/ruby_speech/version.rb +1 -1
  8. data/ruby_speech.gemspec +3 -3
  9. data/spec/ruby_speech/grxml/builtins_spec.rb +72 -72
  10. data/spec/ruby_speech/grxml/grammar_spec.rb +37 -37
  11. data/spec/ruby_speech/grxml/item_spec.rb +33 -33
  12. data/spec/ruby_speech/grxml/match_spec.rb +1 -1
  13. data/spec/ruby_speech/grxml/matcher_spec.rb +62 -62
  14. data/spec/ruby_speech/grxml/max_match_spec.rb +2 -2
  15. data/spec/ruby_speech/grxml/no_match_spec.rb +2 -2
  16. data/spec/ruby_speech/grxml/one_of_spec.rb +6 -6
  17. data/spec/ruby_speech/grxml/potential_match_spec.rb +2 -2
  18. data/spec/ruby_speech/grxml/rule_spec.rb +17 -17
  19. data/spec/ruby_speech/grxml/ruleref_spec.rb +10 -10
  20. data/spec/ruby_speech/grxml/tag_spec.rb +5 -5
  21. data/spec/ruby_speech/grxml/token_spec.rb +7 -7
  22. data/spec/ruby_speech/grxml_spec.rb +24 -24
  23. data/spec/ruby_speech/nlsml_spec.rb +11 -11
  24. data/spec/ruby_speech/ssml/audio_spec.rb +19 -19
  25. data/spec/ruby_speech/ssml/break_spec.rb +16 -16
  26. data/spec/ruby_speech/ssml/desc_spec.rb +7 -7
  27. data/spec/ruby_speech/ssml/emphasis_spec.rb +21 -21
  28. data/spec/ruby_speech/ssml/mark_spec.rb +5 -5
  29. data/spec/ruby_speech/ssml/p_spec.rb +17 -17
  30. data/spec/ruby_speech/ssml/phoneme_spec.rb +8 -8
  31. data/spec/ruby_speech/ssml/prosody_spec.rb +61 -61
  32. data/spec/ruby_speech/ssml/s_spec.rb +16 -16
  33. data/spec/ruby_speech/ssml/say_as_spec.rb +9 -9
  34. data/spec/ruby_speech/ssml/speak_spec.rb +29 -29
  35. data/spec/ruby_speech/ssml/sub_spec.rb +7 -7
  36. data/spec/ruby_speech/ssml/voice_spec.rb +31 -31
  37. data/spec/ruby_speech/ssml_spec.rb +20 -20
  38. data/spec/ruby_speech_spec.rb +3 -3
  39. data/spec/spec_helper.rb +0 -1
  40. data/spec/support/grammar_matchers.rb +6 -6
  41. data/spec/support/match_examples.rb +5 -5
  42. data/spec/support/matchers.rb +1 -1
  43. metadata +17 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b584064437c31f1d9a90af218c8624a69c4c5149
4
- data.tar.gz: d60362174787e23a94d6ef4b11449d3cc655febb
2
+ SHA256:
3
+ metadata.gz: 1e98208cd9f5203d85d2612483be8bfc76129aa07c355337a27031dc23170f2c
4
+ data.tar.gz: 91eeff37a2b0554849485ecc1717ac8f501dc056b1f1e5c9f4617f0fa103637c
5
5
  SHA512:
6
- metadata.gz: ea4ced8154768936e7a3a3a7e580ecd1b7cabc0a949fa82f84eae374a17555d0974e4a6e29111fda0a9ea6f0878f27279f137ee15155f553d9a19e8a78813a90
7
- data.tar.gz: 611147c468b4f36bb9cb6d1cbf3e760c055bf2a457e5db1209ce0fe6806171dbd319b90c1c6049fa7af17acbd69740bca0e9866d8e66a0f3ad3fb31da0d49e44
6
+ metadata.gz: 428108a63ca40aaab78165237b4d1bfeb12f7c2097bdc567a234c111b609a5450bfff09ec0e257c91a97405645a0acd8a1c7d5a90754a857d57a2849d4670c48
7
+ data.tar.gz: 158cf43762cf1fc1180edbf5f4acf28f263859d03801eb54b6a62fd05c1fdee9e1eee75b170aac6dee175a4b872a4adc27f8749e10b82779fd43d6348950bd8b
data/.gitignore CHANGED
@@ -2,6 +2,7 @@
2
2
  *.gem
3
3
  *.bundle
4
4
  *.jar
5
+ *.so
5
6
  Gemfile.lock
6
7
  pkg/*
7
8
  spec/reports
@@ -1,27 +1,17 @@
1
1
  language: ruby
2
-
2
+ rvm:
3
+ - 2.1.10
4
+ - 2.2.10
5
+ - 2.3.7
6
+ - 2.4.4
7
+ - jruby-9.1.17.0
8
+ - jruby-head
9
+ - rbx-3
10
+ - ruby-head
11
+ jdk:
12
+ - openjdk8 # for jruby
3
13
  matrix:
4
- include:
5
- - rvm: 1.9.3
6
- - rvm: 2.0.0
7
- - rvm: 2.1.0
8
- - rvm: 2.2.0
9
- - rvm: 2.3.0
10
- - rvm: rbx-2
11
- - rvm: rbx-3
12
- - rvm: ruby-head
13
- - rvm: jruby-1.7
14
- jdk: openjdk7
15
- - rvm: jruby-1.7
16
- jdk: oraclejdk8
17
- - rvm: jruby-head
18
- jdk: oraclejdk8
19
- - rvm: jruby-9.1.13.0
20
- jdk: openjdk7
21
- - rvm: jruby-9.1.13.0
22
- jdk: oraclejdk8
23
14
  allow_failures:
24
- - rvm: rbx-2
25
15
  - rvm: rbx-3
26
16
  - rvm: ruby-head
27
17
  sudo: false
@@ -32,7 +22,5 @@ addons:
32
22
  - libpcre3-dev
33
23
  before_install:
34
24
  - gem install bundler
35
- env: JRUBY_OPTS="--server --debug -J-Xss1024k -J-Xmx652m -J-XX:+UseConcMarkSweepGC"
36
-
37
25
  notifications:
38
26
  irc: "irc.freenode.org#adhearsion"
@@ -1,5 +1,9 @@
1
1
  # [develop](https://github.com/benlangfeld/ruby_speech)
2
2
 
3
+ # [3.0.0](https://github.com/benlangfeld/ruby_speech/compare/v2.4.0...v3.0.0) - [2018-07-10](https://rubygems.org/gems/ruby_speech/versions/3.0.0)
4
+ * Feature: Loosen and bump Nokogiri version to ~>1.8, >=1.8.3
5
+ * Feature: Bump RSpec to 3.x and convert specs with Transpec
6
+
3
7
  # [2.4.0](https://github.com/benlangfeld/ruby_speech/compare/v2.3.2...v2.4.0) - [2018-02-23](https://rubygems.org/gems/ruby_speech/versions/2.4.0)
4
8
  * Feature: Permit percentage rate values for prosody tags
5
9
  * Bugfix: Rulerefs referenced n-levels deep under Rulerefs should be expanded.
data/README.md CHANGED
@@ -30,8 +30,8 @@ sudo yum install pcre-devel
30
30
  gem install ruby_speech
31
31
 
32
32
  ## Ruby Version Compatability
33
- * CRuby 1.9.3+ (1.9.2 is unofficially supported, but not regularly tested)
34
- * JRuby 1.7+
33
+ * CRuby 2.1+
34
+ * JRuby 9.1+
35
35
 
36
36
  ## Library
37
37
 
data/Rakefile CHANGED
@@ -25,6 +25,8 @@ if RUBY_PLATFORM =~ /java/
25
25
  require 'rake/javaextensiontask'
26
26
  Rake::JavaExtensionTask.new 'ruby_speech' do |ext|
27
27
  ext.lib_dir = 'lib/ruby_speech'
28
+ ext.source_version = '1.6'
29
+ ext.target_version = '1.6'
28
30
  end
29
31
  else
30
32
  require 'rake/extensiontask'
@@ -1,3 +1,3 @@
1
1
  module RubySpeech
2
- VERSION = "2.4.0"
2
+ VERSION = "3.0.0"
3
3
  end
@@ -27,15 +27,15 @@ Gem::Specification.new do |s|
27
27
  s.extensions = ['ext/ruby_speech/extconf.rb']
28
28
  end
29
29
 
30
- s.add_runtime_dependency %q<nokogiri>, ["~> 1.6.0"]
30
+ s.add_runtime_dependency %q<nokogiri>, ["~> 1.8", ">= 1.8.3"]
31
31
  s.add_runtime_dependency %q<activesupport>, [">= 3.0.7", "< 5.0.0"]
32
32
 
33
33
  s.add_development_dependency %q<bundler>, [">= 1.0.0"]
34
- s.add_development_dependency %q<rspec>, ["~> 2.99.0"]
34
+ s.add_development_dependency %q<rspec>, ["~> 3.0"]
35
35
  s.add_development_dependency %q<rspec-its>, [">= 0"]
36
36
  s.add_development_dependency %q<ci_reporter>, ["~> 1.6"]
37
37
  s.add_development_dependency %q<yard>, [">= 0.7.0"]
38
- s.add_development_dependency %q<rake>, ["< 11.0"]
38
+ s.add_development_dependency %q<rake>, [">= 0"]
39
39
  s.add_development_dependency %q<guard>, [">= 0.9.0"]
40
40
  s.add_development_dependency %q<guard-rspec>, [">= 0"]
41
41
  s.add_development_dependency %q<listen>, ["< 3.1.0"]
@@ -4,22 +4,22 @@ describe RubySpeech::GRXML::Builtins do
4
4
  describe "boolean" do
5
5
  subject(:grammar) { described_class.boolean }
6
6
 
7
- it { should max_match('1').and_interpret_as('true') }
8
- it { should max_match('2').and_interpret_as('false') }
7
+ it { is_expected.to max_match('1').and_interpret_as('true') }
8
+ it { is_expected.to max_match('2').and_interpret_as('false') }
9
9
 
10
- it { should not_match('0') }
11
- it { should not_match('3') }
12
- it { should not_match('10') }
10
+ it { is_expected.to not_match('0') }
11
+ it { is_expected.to not_match('3') }
12
+ it { is_expected.to not_match('10') }
13
13
 
14
14
  context "with the true/false digits parameterized" do
15
15
  subject { described_class.boolean y: 3, n: 7 }
16
16
 
17
- it { should max_match('3').and_interpret_as('true') }
18
- it { should max_match('7').and_interpret_as('false') }
17
+ it { is_expected.to max_match('3').and_interpret_as('true') }
18
+ it { is_expected.to max_match('7').and_interpret_as('false') }
19
19
 
20
- it { should not_match('1') }
21
- it { should not_match('2') }
22
- it { should not_match('4') }
20
+ it { is_expected.to not_match('1') }
21
+ it { is_expected.to not_match('2') }
22
+ it { is_expected.to not_match('4') }
23
23
 
24
24
  context "both the same" do
25
25
  it "should raise ArgumentError" do
@@ -32,54 +32,54 @@ describe RubySpeech::GRXML::Builtins do
32
32
  describe "date" do
33
33
  subject(:grammar) { described_class.date }
34
34
 
35
- it { should max_match('20130929').and_interpret_as('dtmf-2 dtmf-0 dtmf-1 dtmf-3 dtmf-0 dtmf-9 dtmf-2 dtmf-9') }
35
+ it { is_expected.to max_match('20130929').and_interpret_as('dtmf-2 dtmf-0 dtmf-1 dtmf-3 dtmf-0 dtmf-9 dtmf-2 dtmf-9') }
36
36
 
37
- it { should potentially_match('130929') }
38
- it { should potentially_match('0929') }
39
- it { should potentially_match('29') }
40
- it { should potentially_match('1') }
37
+ it { is_expected.to potentially_match('130929') }
38
+ it { is_expected.to potentially_match('0929') }
39
+ it { is_expected.to potentially_match('29') }
40
+ it { is_expected.to potentially_match('1') }
41
41
  end
42
42
 
43
43
  describe "digits" do
44
44
  subject(:grammar) { described_class.digits }
45
45
 
46
- it { should match('1').and_interpret_as('dtmf-1') }
47
- it { should match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
48
- it { should match('1').and_interpret_as('dtmf-1') }
46
+ it { is_expected.to match('1').and_interpret_as('dtmf-1') }
47
+ it { is_expected.to match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
48
+ it { is_expected.to match('1').and_interpret_as('dtmf-1') }
49
49
 
50
50
  context "with a minimum length" do
51
51
  subject { described_class.digits minlength: 3 }
52
52
 
53
- it { should match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
54
- it { should match('1234567890').and_interpret_as('dtmf-1 dtmf-2 dtmf-3 dtmf-4 dtmf-5 dtmf-6 dtmf-7 dtmf-8 dtmf-9 dtmf-0') }
53
+ it { is_expected.to match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
54
+ it { is_expected.to match('1234567890').and_interpret_as('dtmf-1 dtmf-2 dtmf-3 dtmf-4 dtmf-5 dtmf-6 dtmf-7 dtmf-8 dtmf-9 dtmf-0') }
55
55
 
56
- it { should potentially_match('1') }
57
- it { should potentially_match('11') }
58
- it { should potentially_match('4') }
56
+ it { is_expected.to potentially_match('1') }
57
+ it { is_expected.to potentially_match('11') }
58
+ it { is_expected.to potentially_match('4') }
59
59
  end
60
60
 
61
61
  context "with a maximum length" do
62
62
  subject { described_class.digits maxlength: 3 }
63
63
 
64
- it { should match('1').and_interpret_as('dtmf-1') }
65
- it { should match('12').and_interpret_as('dtmf-1 dtmf-2') }
66
- it { should match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
64
+ it { is_expected.to match('1').and_interpret_as('dtmf-1') }
65
+ it { is_expected.to match('12').and_interpret_as('dtmf-1 dtmf-2') }
66
+ it { is_expected.to match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
67
67
 
68
- it { should not_match('1111') }
69
- it { should not_match('1111111') }
68
+ it { is_expected.to not_match('1111') }
69
+ it { is_expected.to not_match('1111111') }
70
70
  end
71
71
 
72
72
  context "with an absolute length" do
73
73
  subject { described_class.digits length: 3 }
74
74
 
75
- it { should max_match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
76
- it { should max_match('111').and_interpret_as('dtmf-1 dtmf-1 dtmf-1') }
75
+ it { is_expected.to max_match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
76
+ it { is_expected.to max_match('111').and_interpret_as('dtmf-1 dtmf-1 dtmf-1') }
77
77
 
78
- it { should potentially_match('1') }
79
- it { should potentially_match('12') }
78
+ it { is_expected.to potentially_match('1') }
79
+ it { is_expected.to potentially_match('12') }
80
80
 
81
- it { should not_match('1234') }
82
- it { should not_match('12345') }
81
+ it { is_expected.to not_match('1234') }
82
+ it { is_expected.to not_match('12345') }
83
83
  end
84
84
 
85
85
  context "when the min and max lengths are swapped" do
@@ -104,71 +104,71 @@ describe RubySpeech::GRXML::Builtins do
104
104
  describe "currency" do
105
105
  subject(:grammar) { described_class.currency }
106
106
 
107
- it { should max_match('1*01').and_interpret_as('dtmf-1 dtmf-star dtmf-0 dtmf-1') }
108
- it { should max_match('01*00').and_interpret_as('dtmf-0 dtmf-1 dtmf-star dtmf-0 dtmf-0') }
109
- it { should max_match('100000000000*00').and_interpret_as('dtmf-1 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-star dtmf-0 dtmf-0') }
110
- it { should max_match('0*08').and_interpret_as('dtmf-0 dtmf-star dtmf-0 dtmf-8') }
111
- it { should max_match('*59').and_interpret_as('dtmf-star dtmf-5 dtmf-9') }
107
+ it { is_expected.to max_match('1*01').and_interpret_as('dtmf-1 dtmf-star dtmf-0 dtmf-1') }
108
+ it { is_expected.to max_match('01*00').and_interpret_as('dtmf-0 dtmf-1 dtmf-star dtmf-0 dtmf-0') }
109
+ it { is_expected.to max_match('100000000000*00').and_interpret_as('dtmf-1 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-0 dtmf-star dtmf-0 dtmf-0') }
110
+ it { is_expected.to max_match('0*08').and_interpret_as('dtmf-0 dtmf-star dtmf-0 dtmf-8') }
111
+ it { is_expected.to max_match('*59').and_interpret_as('dtmf-star dtmf-5 dtmf-9') }
112
112
 
113
- it { should match('0').and_interpret_as('dtmf-0') }
114
- it { should match('0*0').and_interpret_as('dtmf-0 dtmf-star dtmf-0') }
115
- it { should match('10*5').and_interpret_as('dtmf-1 dtmf-0 dtmf-star dtmf-5') }
116
- it { should match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
117
- it { should match('123*').and_interpret_as('dtmf-1 dtmf-2 dtmf-3 dtmf-star') }
113
+ it { is_expected.to match('0').and_interpret_as('dtmf-0') }
114
+ it { is_expected.to match('0*0').and_interpret_as('dtmf-0 dtmf-star dtmf-0') }
115
+ it { is_expected.to match('10*5').and_interpret_as('dtmf-1 dtmf-0 dtmf-star dtmf-5') }
116
+ it { is_expected.to match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
117
+ it { is_expected.to match('123*').and_interpret_as('dtmf-1 dtmf-2 dtmf-3 dtmf-star') }
118
118
 
119
- it { should not_match('#') }
119
+ it { is_expected.to not_match('#') }
120
120
  end
121
121
 
122
122
  describe 'number' do
123
123
  subject(:grammar) { described_class.number }
124
124
 
125
- it { should match('0').and_interpret_as 'dtmf-0' }
126
- it { should match('123').and_interpret_as 'dtmf-1 dtmf-2 dtmf-3' }
127
- it { should match('1*01').and_interpret_as dtmf_seq %w(1 star 0 1) }
128
- it { should match('01*00').and_interpret_as dtmf_seq %w(0 1 star 0 0) }
125
+ it { is_expected.to match('0').and_interpret_as 'dtmf-0' }
126
+ it { is_expected.to match('123').and_interpret_as 'dtmf-1 dtmf-2 dtmf-3' }
127
+ it { is_expected.to match('1*01').and_interpret_as dtmf_seq %w(1 star 0 1) }
128
+ it { is_expected.to match('01*00').and_interpret_as dtmf_seq %w(0 1 star 0 0) }
129
129
  it do
130
- should match('100000000000*00')
130
+ is_expected.to match('100000000000*00')
131
131
  .and_interpret_as dtmf_seq %w(1 0 0 0 0 0 0 0 0 0 0 0 star 0 0)
132
132
  end
133
- it { should match('0*08').and_interpret_as dtmf_seq %w(0 star 0 8) }
134
- it { should match('*59').and_interpret_as 'dtmf-star dtmf-5 dtmf-9' }
135
- it { should match('0*0').and_interpret_as 'dtmf-0 dtmf-star dtmf-0' }
136
- it { should match('10*5').and_interpret_as dtmf_seq %w(1 0 star 5) }
137
- it { should match('123*').and_interpret_as dtmf_seq %w(1 2 3 star) }
133
+ it { is_expected.to match('0*08').and_interpret_as dtmf_seq %w(0 star 0 8) }
134
+ it { is_expected.to match('*59').and_interpret_as 'dtmf-star dtmf-5 dtmf-9' }
135
+ it { is_expected.to match('0*0').and_interpret_as 'dtmf-0 dtmf-star dtmf-0' }
136
+ it { is_expected.to match('10*5').and_interpret_as dtmf_seq %w(1 0 star 5) }
137
+ it { is_expected.to match('123*').and_interpret_as dtmf_seq %w(1 2 3 star) }
138
138
  it do
139
- should match('123*2342').and_interpret_as dtmf_seq %w(1 2 3 star 2 3 4 2)
139
+ is_expected.to match('123*2342').and_interpret_as dtmf_seq %w(1 2 3 star 2 3 4 2)
140
140
  end
141
141
 
142
- it { should potentially_match '*' }
142
+ it { is_expected.to potentially_match '*' }
143
143
 
144
- it { should not_match '#' }
145
- it { should not_match '**' }
146
- it { should not_match '0123*456*789' }
144
+ it { is_expected.to not_match '#' }
145
+ it { is_expected.to not_match '**' }
146
+ it { is_expected.to not_match '0123*456*789' }
147
147
  end
148
148
 
149
149
  describe "phone" do
150
150
  subject(:grammar) { described_class.phone }
151
151
 
152
- it { should match('0').and_interpret_as('dtmf-0') }
153
- it { should match('0123').and_interpret_as('dtmf-0 dtmf-1 dtmf-2 dtmf-3') }
154
- it { should match('0123*456').and_interpret_as('dtmf-0 dtmf-1 dtmf-2 dtmf-3 dtmf-star dtmf-4 dtmf-5 dtmf-6') }
152
+ it { is_expected.to match('0').and_interpret_as('dtmf-0') }
153
+ it { is_expected.to match('0123').and_interpret_as('dtmf-0 dtmf-1 dtmf-2 dtmf-3') }
154
+ it { is_expected.to match('0123*456').and_interpret_as('dtmf-0 dtmf-1 dtmf-2 dtmf-3 dtmf-star dtmf-4 dtmf-5 dtmf-6') }
155
155
 
156
- it { should potentially_match('') }
156
+ it { is_expected.to potentially_match('') }
157
157
 
158
- it { should not_match('#') }
159
- it { should not_match('0123*456*789') }
158
+ it { is_expected.to not_match('#') }
159
+ it { is_expected.to not_match('0123*456*789') }
160
160
  end
161
161
 
162
162
  describe "time" do
163
163
  subject(:grammar) { described_class.time }
164
164
 
165
- it { should max_match('1235').and_interpret_as('dtmf-1 dtmf-2 dtmf-3 dtmf-5') }
165
+ it { is_expected.to max_match('1235').and_interpret_as('dtmf-1 dtmf-2 dtmf-3 dtmf-5') }
166
166
 
167
- it { should match('12').and_interpret_as('dtmf-1 dtmf-2') }
168
- it { should match('4').and_interpret_as('dtmf-4') }
169
- it { should match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
167
+ it { is_expected.to match('12').and_interpret_as('dtmf-1 dtmf-2') }
168
+ it { is_expected.to match('4').and_interpret_as('dtmf-4') }
169
+ it { is_expected.to match('123').and_interpret_as('dtmf-1 dtmf-2 dtmf-3') }
170
170
 
171
- it { should not_match('*') }
172
- it { should not_match('#') }
171
+ it { is_expected.to not_match('*') }
172
+ it { is_expected.to not_match('#') }
173
173
  end
174
174
  end
@@ -7,7 +7,7 @@ module RubySpeech
7
7
 
8
8
  subject { described_class.new doc }
9
9
 
10
- it { should be_a_valid_grxml_document }
10
+ it { is_expected.to be_a_valid_grxml_document }
11
11
 
12
12
  its(:name) { should == 'grammar' }
13
13
  its(:language) { should == 'en-US' }
@@ -36,7 +36,7 @@ module RubySpeech
36
36
  end
37
37
 
38
38
  it 'registers itself' do
39
- Element.class_from_registration(:grammar).should == Grammar
39
+ expect(Element.class_from_registration(:grammar)).to eq(Grammar)
40
40
  end
41
41
 
42
42
  describe "from a document" do
@@ -48,7 +48,7 @@ module RubySpeech
48
48
 
49
49
  subject { Element.import document }
50
50
 
51
- it { should be_instance_of Grammar }
51
+ it { is_expected.to be_instance_of Grammar }
52
52
 
53
53
  its(:language) { should == 'jp' }
54
54
  its(:base_uri) { should == 'blah' }
@@ -70,24 +70,24 @@ module RubySpeech
70
70
 
71
71
  describe "comparing objects" do
72
72
  it "should be equal if the content, language and base uri are the same" do
73
- Grammar.new(doc, :language => 'en-GB', :base_uri => 'blah', :content => "Hello there").should == Grammar.new(doc, :language => 'en-GB', :base_uri => 'blah', :content => "Hello there")
73
+ expect(Grammar.new(doc, :language => 'en-GB', :base_uri => 'blah', :content => "Hello there")).to eq(Grammar.new(doc, :language => 'en-GB', :base_uri => 'blah', :content => "Hello there"))
74
74
  end
75
75
 
76
76
  describe "when the content is different" do
77
77
  it "should not be equal" do
78
- Grammar.new(doc, :content => "Hello").should_not == Grammar.new(doc, :content => "Hello there")
78
+ expect(Grammar.new(doc, :content => "Hello")).not_to eq(Grammar.new(doc, :content => "Hello there"))
79
79
  end
80
80
  end
81
81
 
82
82
  describe "when the language is different" do
83
83
  it "should not be equal" do
84
- Grammar.new(doc, :language => 'en-US').should_not == Grammar.new(doc, :language => 'en-GB')
84
+ expect(Grammar.new(doc, :language => 'en-US')).not_to eq(Grammar.new(doc, :language => 'en-GB'))
85
85
  end
86
86
  end
87
87
 
88
88
  describe "when the base URI is different" do
89
89
  it "should not be equal" do
90
- Grammar.new(doc, :base_uri => 'foo').should_not == Grammar.new(doc, :base_uri => 'bar')
90
+ expect(Grammar.new(doc, :base_uri => 'foo')).not_to eq(Grammar.new(doc, :base_uri => 'bar'))
91
91
  end
92
92
  end
93
93
 
@@ -98,7 +98,7 @@ module RubySpeech
98
98
  g2 = Grammar.new doc
99
99
  g2 << Rule.new(doc, :id => 'main2')
100
100
 
101
- g1.should_not == g2
101
+ expect(g1).not_to eq(g2)
102
102
  end
103
103
  end
104
104
  end
@@ -108,32 +108,32 @@ module RubySpeech
108
108
  g.rule :id => :main, :scope => 'public'
109
109
  expected_g = Grammar.new doc
110
110
  expected_g << Rule.new(doc, :id => :main, :scope => 'public')
111
- g.should == expected_g
111
+ expect(g).to eq(expected_g)
112
112
  end
113
113
 
114
114
  describe "<<" do
115
115
  it "should accept Rule" do
116
- lambda { subject << Rule.new(doc) }.should_not raise_error
116
+ expect { subject << Rule.new(doc) }.not_to raise_error
117
117
  end
118
118
 
119
119
  it "should accept Tag" do
120
- lambda { subject << Tag.new(doc) }.should_not raise_error
120
+ expect { subject << Tag.new(doc) }.not_to raise_error
121
121
  end
122
122
 
123
123
  it "should raise InvalidChildError with non-acceptable objects" do
124
- lambda { subject << 1 }.should raise_error(InvalidChildError, "A Grammar can only accept Rule and Tag as children")
124
+ expect { subject << 1 }.to raise_error(InvalidChildError, "A Grammar can only accept Rule and Tag as children")
125
125
  end
126
126
  end
127
127
 
128
128
  describe "#to_doc" do
129
129
  it "should create an XML document from the grammar" do
130
- subject.to_doc.should == subject.document
130
+ expect(subject.to_doc).to eq(subject.document)
131
131
  end
132
132
  end
133
133
 
134
134
  describe "#tag_format" do
135
135
  it "should allow setting tag-format identifier" do
136
- lambda { subject.tag_format = "semantics/1.0" }.should_not raise_error
136
+ expect { subject.tag_format = "semantics/1.0" }.not_to raise_error
137
137
  end
138
138
  end
139
139
 
@@ -152,11 +152,11 @@ module RubySpeech
152
152
  expected_concat << Rule.new(doc, :id => 'millie', :scope => 'public', :content => "Hi Millie")
153
153
 
154
154
  concat = grammar1 + grammar2
155
- grammar1.to_s.should == grammar1_string
156
- grammar2.to_s.should == grammar2_string
157
- concat.should == expected_concat
158
- concat.document.root.should == concat
159
- concat.to_s.should_not include('default')
155
+ expect(grammar1.to_s).to eq(grammar1_string)
156
+ expect(grammar2.to_s).to eq(grammar2_string)
157
+ expect(concat).to eq(expected_concat)
158
+ expect(concat.document.root).to eq(concat)
159
+ expect(concat.to_s).not_to include('default')
160
160
  end
161
161
  end
162
162
 
@@ -167,7 +167,7 @@ module RubySpeech
167
167
  foo = GRXML::Rule.new doc, :id => 'foo'
168
168
  grammar << foo
169
169
 
170
- grammar.root_rule.should == foo
170
+ expect(grammar.root_rule).to eq(foo)
171
171
  end
172
172
 
173
173
  describe "inlining rule references" do
@@ -224,13 +224,13 @@ module RubySpeech
224
224
  end
225
225
 
226
226
  it "should be possible in a non-destructive manner" do
227
- grammar.inline.should == inline_grammar
228
- grammar.should_not == inline_grammar
227
+ expect(grammar.inline).to eq(inline_grammar)
228
+ expect(grammar).not_to eq(inline_grammar)
229
229
  end
230
230
 
231
231
  it "should be possible in a destructive manner" do
232
- grammar.inline!.should == inline_grammar
233
- grammar.should == inline_grammar
232
+ expect(grammar.inline!).to eq(inline_grammar)
233
+ expect(grammar).to eq(inline_grammar)
234
234
  end
235
235
 
236
236
  context 'nested' do
@@ -254,7 +254,7 @@ module RubySpeech
254
254
  end.inline
255
255
  end
256
256
 
257
- it { should eq expected_doc }
257
+ it { is_expected.to eq expected_doc }
258
258
  end
259
259
 
260
260
  context '2 levels deep' do
@@ -272,7 +272,7 @@ module RubySpeech
272
272
  end.inline
273
273
  end
274
274
 
275
- it { should eq expected_doc }
275
+ it { is_expected.to eq expected_doc }
276
276
  end
277
277
 
278
278
  context '3 levels deep' do
@@ -293,7 +293,7 @@ module RubySpeech
293
293
  end.inline
294
294
  end
295
295
 
296
- it { should eq expected_doc }
296
+ it { is_expected.to eq expected_doc }
297
297
  end
298
298
 
299
299
  context 'in a self-referencial infinite loop' do
@@ -393,7 +393,7 @@ module RubySpeech
393
393
  let(:tokens) { 'hello' }
394
394
 
395
395
  it "should tokenize correctly" do
396
- should == tokenized_version
396
+ is_expected.to eq(tokenized_version)
397
397
  end
398
398
  end
399
399
 
@@ -402,7 +402,7 @@ module RubySpeech
402
402
  let(:tokens) { ['2'] }
403
403
 
404
404
  it "should tokenize correctly" do
405
- should == tokenized_version
405
+ is_expected.to eq(tokenized_version)
406
406
  end
407
407
  end
408
408
 
@@ -411,7 +411,7 @@ module RubySpeech
411
411
  let(:tokens) { ['San Francisco'] }
412
412
 
413
413
  it "should tokenize correctly" do
414
- should == tokenized_version
414
+ is_expected.to eq(tokenized_version)
415
415
  end
416
416
  end
417
417
 
@@ -420,7 +420,7 @@ module RubySpeech
420
420
  let(:tokens) { ['hello'] }
421
421
 
422
422
  it "should tokenize correctly" do
423
- should == tokenized_version
423
+ is_expected.to eq(tokenized_version)
424
424
  end
425
425
  end
426
426
 
@@ -429,7 +429,7 @@ module RubySpeech
429
429
  let(:tokens) { ['bon', 'voyage'] }
430
430
 
431
431
  it "should tokenize correctly" do
432
- should == tokenized_version
432
+ is_expected.to eq(tokenized_version)
433
433
  end
434
434
  end
435
435
 
@@ -438,7 +438,7 @@ module RubySpeech
438
438
  let(:tokens) { ['this', 'is', 'a', 'test'] }
439
439
 
440
440
  it "should tokenize correctly" do
441
- should == tokenized_version
441
+ is_expected.to eq(tokenized_version)
442
442
  end
443
443
  end
444
444
 
@@ -447,7 +447,7 @@ module RubySpeech
447
447
  let(:tokens) { ['San Francisco'] }
448
448
 
449
449
  it "should tokenize correctly" do
450
- should == tokenized_version
450
+ is_expected.to eq(tokenized_version)
451
451
  end
452
452
  end
453
453
 
@@ -462,7 +462,7 @@ module RubySpeech
462
462
  let(:tokens) { ['Welcome', 'to', 'San Francisco', 'Have Fun!'] }
463
463
 
464
464
  it "should tokenize correctly" do
465
- should == tokenized_version
465
+ is_expected.to eq(tokenized_version)
466
466
  end
467
467
  end
468
468
  end
@@ -483,9 +483,9 @@ module RubySpeech
483
483
  end
484
484
  end
485
485
 
486
- grammar.should_not == normalized_grammar
486
+ expect(grammar).not_to eq(normalized_grammar)
487
487
  grammar.normalize_whitespace
488
- grammar.should == normalized_grammar
488
+ expect(grammar).to eq(normalized_grammar)
489
489
  end
490
490
  end
491
491
  end # Grammar