ruby_speech 2.4.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
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