spec/syntax/versions/aliases_spec.rb in regexp_parser-1.5.0 vs spec/syntax/versions/aliases_spec.rb in regexp_parser-1.5.1
- old
+ new
@@ -1,116 +1,32 @@
require 'spec_helper'
RSpec.describe(Regexp::Syntax) do
- specify('syntax alias 1 8 6') do
- syntax = Regexp::Syntax.new('ruby/1.8.6')
-
- expect(syntax).to be_a(Regexp::Syntax::V1_8_6)
+ RSpec.shared_examples 'syntax alias' do |string, klass|
+ it "aliases #{string} to #{klass}" do
+ syntax = Regexp::Syntax.new(string)
+ expect(syntax).to be_a klass
+ end
end
- specify('syntax alias 1 8 alias') do
- syntax = Regexp::Syntax.new('ruby/1.8')
-
- expect(syntax).to be_a(Regexp::Syntax::V1_8_6)
- end
-
- specify('syntax alias 1 9 1') do
- syntax = Regexp::Syntax.new('ruby/1.9.1')
-
- expect(syntax).to be_a(Regexp::Syntax::V1_9_1)
- end
-
- specify('syntax alias 1 9 alias') do
- syntax = Regexp::Syntax.new('ruby/1.9')
-
- expect(syntax).to be_a(Regexp::Syntax::V1_9_3)
- end
-
- specify('syntax alias 2 0 0') do
- syntax = Regexp::Syntax.new('ruby/2.0.0')
-
- expect(syntax).to be_a(Regexp::Syntax::V1_9)
- end
-
- specify('syntax alias 2 0 alias') do
- syntax = Regexp::Syntax.new('ruby/2.0')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_0_0)
- end
-
- specify('syntax alias 2 1 alias') do
- syntax = Regexp::Syntax.new('ruby/2.1')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_0_0)
- end
-
- specify('syntax alias 2 2 0') do
- syntax = Regexp::Syntax.new('ruby/2.2.0')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_0_0)
- end
-
- specify('syntax alias 2 2 10') do
- syntax = Regexp::Syntax.new('ruby/2.2.10')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_0_0)
- end
-
- specify('syntax alias 2 2 alias') do
- syntax = Regexp::Syntax.new('ruby/2.2')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_0_0)
- end
-
- specify('syntax alias 2 3 0') do
- syntax = Regexp::Syntax.new('ruby/2.3.0')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_3_0)
- end
-
- specify('syntax alias 2 3') do
- syntax = Regexp::Syntax.new('ruby/2.3')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_3_0)
- end
-
- specify('syntax alias 2 4 0') do
- syntax = Regexp::Syntax.new('ruby/2.4.0')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_4_0)
- end
-
- specify('syntax alias 2 4 1') do
- syntax = Regexp::Syntax.new('ruby/2.4.1')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_4_1)
- end
-
- specify('syntax alias 2 5 0') do
- syntax = Regexp::Syntax.new('ruby/2.5.0')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_4_1)
- expect(syntax).to be_a(Regexp::Syntax::V2_5_0)
- end
-
- specify('syntax alias 2 5') do
- syntax = Regexp::Syntax.new('ruby/2.5')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_5_0)
- end
-
- specify('syntax alias 2 6 0') do
- syntax = Regexp::Syntax.new('ruby/2.6.0')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_5_0)
- expect(syntax).to be_a(Regexp::Syntax::V2_6_0)
- end
-
- specify('syntax alias 2 6') do
- syntax = Regexp::Syntax.new('ruby/2.6')
-
- expect(syntax).to be_a(Regexp::Syntax::V2_5_0)
- end
+ include_examples 'syntax alias', 'ruby/1.8.6', Regexp::Syntax::V1_8_6
+ include_examples 'syntax alias', 'ruby/1.8', Regexp::Syntax::V1_8_6
+ include_examples 'syntax alias', 'ruby/1.9.1', Regexp::Syntax::V1_9_1
+ include_examples 'syntax alias', 'ruby/1.9', Regexp::Syntax::V1_9_3
+ include_examples 'syntax alias', 'ruby/2.0.0', Regexp::Syntax::V1_9
+ include_examples 'syntax alias', 'ruby/2.0', Regexp::Syntax::V2_0_0
+ include_examples 'syntax alias', 'ruby/2.1', Regexp::Syntax::V2_0_0
+ include_examples 'syntax alias', 'ruby/2.2.0', Regexp::Syntax::V2_0_0
+ include_examples 'syntax alias', 'ruby/2.2.10', Regexp::Syntax::V2_0_0
+ include_examples 'syntax alias', 'ruby/2.2', Regexp::Syntax::V2_0_0
+ include_examples 'syntax alias', 'ruby/2.3.0', Regexp::Syntax::V2_3_0
+ include_examples 'syntax alias', 'ruby/2.3', Regexp::Syntax::V2_3_0
+ include_examples 'syntax alias', 'ruby/2.4.0', Regexp::Syntax::V2_4_0
+ include_examples 'syntax alias', 'ruby/2.4.1', Regexp::Syntax::V2_4_1
+ include_examples 'syntax alias', 'ruby/2.5.0', Regexp::Syntax::V2_4_1
+ include_examples 'syntax alias', 'ruby/2.5', Regexp::Syntax::V2_5_0
+ include_examples 'syntax alias', 'ruby/2.6.0', Regexp::Syntax::V2_5_0
+ include_examples 'syntax alias', 'ruby/2.6', Regexp::Syntax::V2_5_0
specify('future alias warning') do
expect { Regexp::Syntax.new('ruby/5.0') }
.to output(/This library .* but you are running .* \(feature set of .*\)/)
.to_stderr