ecma-re-validator 0.1.1 → 0.1.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.
- checksums.yaml +4 -4
- data/lib/ecma-re-validator.rb +2 -2
- data/lib/ecma-re-validator/version.rb +1 -1
- data/spec/anchors_spec.rb +45 -15
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 052e537ab03509e84cc428edf02258ee8c852b8b
|
4
|
+
data.tar.gz: 79b4cec8335b67f6b46e149b7267d6c807118edf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c29be446bc18b0dd381baa35d2ee190bd1cbcf97eb311e2d0f8239e34836ca8490b2a4282b4d421a5dc32d7a62f04ea2309392b8b520c98b5f9c2c9641c2391a
|
7
|
+
data.tar.gz: 3ba486142599c4e8ea56a6efc9af557c7d30c68c7fcb0f4c8df8cd6465b1393c649dd4c37dca4047e965d3b015bf4b2456db426e78fa9dee20bb640af85fd2d9
|
data/lib/ecma-re-validator.rb
CHANGED
@@ -11,8 +11,8 @@ module EcmaReValidator
|
|
11
11
|
UNICODE_CHARACTERS = Regexp::Syntax::Token::UnicodeProperty::All
|
12
12
|
|
13
13
|
INVALID_REGEXP = [
|
14
|
-
# JS doesn't have \A
|
15
|
-
:bos, :eos_ob_eol,
|
14
|
+
# JS doesn't have \A, \Z, \z
|
15
|
+
:bos, :eos_ob_eol, :eos,
|
16
16
|
# JS doesn't have lookbehinds
|
17
17
|
:lookbehind, :nlookbehind,
|
18
18
|
# JS doesn't have atomic grouping
|
data/spec/anchors_spec.rb
CHANGED
@@ -1,62 +1,92 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'EcmaReValidator::Anchors' do
|
4
|
+
it 'should pass if regexp has ^' do
|
5
|
+
re = '^anchor'
|
6
|
+
|
7
|
+
expect(EcmaReValidator.valid?(re)).to eql(true)
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should pass if regexp has $' do
|
11
|
+
re = 'anchor$'
|
12
|
+
|
13
|
+
expect(EcmaReValidator.valid?(re)).to eql(true)
|
14
|
+
end
|
15
|
+
|
4
16
|
it 'should pass if regexp has no \A' do
|
5
|
-
re = '
|
17
|
+
re = 'anchor'
|
6
18
|
|
7
19
|
expect(EcmaReValidator.valid?(re)).to eql(true)
|
8
20
|
end
|
9
21
|
|
10
22
|
it 'should pass if regexp is escaped \A' do
|
11
|
-
re = '
|
23
|
+
re = 'anchor\\\\A'
|
12
24
|
|
13
25
|
expect(EcmaReValidator.valid?(re)).to eql(true)
|
14
26
|
end
|
15
27
|
|
16
28
|
it 'should fail if regexp is not escaped \A' do
|
17
|
-
re = '
|
29
|
+
re = 'anchor\\A'
|
18
30
|
|
19
31
|
expect(EcmaReValidator.valid?(re)).to eql(false)
|
20
32
|
end
|
21
33
|
|
22
34
|
it 'should fail if regexp is not escaped \A, despite backslashes' do
|
23
|
-
re = '
|
35
|
+
re = 'anchor\\\\\\A'
|
24
36
|
|
25
37
|
expect(EcmaReValidator.valid?(re)).to eql(false)
|
26
38
|
end
|
27
39
|
|
28
40
|
it 'should pass if regexp is escaped \A, with many backslashes' do
|
29
|
-
re = '
|
30
|
-
|
31
|
-
expect(EcmaReValidator.valid?(re)).to eql(true)
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'should pass if regexp has no \Z' do
|
35
|
-
re = 'dick'
|
41
|
+
re = 'anchor\\\\\\\\A'
|
36
42
|
|
37
43
|
expect(EcmaReValidator.valid?(re)).to eql(true)
|
38
44
|
end
|
39
45
|
|
40
46
|
it 'should pass if regexp is escaped \Z' do
|
41
|
-
re = '
|
47
|
+
re = 'anchor\\\\Z'
|
42
48
|
|
43
49
|
expect(EcmaReValidator.valid?(re)).to eql(true)
|
44
50
|
end
|
45
51
|
|
46
52
|
it 'should fail if regexp is not escaped \Z' do
|
47
|
-
re = '
|
53
|
+
re = 'anchor\\Z'
|
48
54
|
|
49
55
|
expect(EcmaReValidator.valid?(re)).to eql(false)
|
50
56
|
end
|
51
57
|
|
52
58
|
it 'should fail if regexp is not escaped \Z, despite backslashes' do
|
53
|
-
re = '
|
59
|
+
re = 'anchor\\\\\\Z'
|
54
60
|
|
55
61
|
expect(EcmaReValidator.valid?(re)).to eql(false)
|
56
62
|
end
|
57
63
|
|
58
64
|
it 'should pass if regexp is escaped \Z, with many backslashes' do
|
59
|
-
re = '
|
65
|
+
re = 'anchor\\\\\\\\Z'
|
66
|
+
|
67
|
+
expect(EcmaReValidator.valid?(re)).to eql(true)
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'should pass if regexp is escaped \z' do
|
71
|
+
re = 'anchor\\\\z'
|
72
|
+
|
73
|
+
expect(EcmaReValidator.valid?(re)).to eql(true)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should fail if regexp is not escaped \z' do
|
77
|
+
re = 'anchor\\z'
|
78
|
+
|
79
|
+
expect(EcmaReValidator.valid?(re)).to eql(false)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'should fail if regexp is not escaped \z, despite backslashes' do
|
83
|
+
re = 'anchor\\\\\\z'
|
84
|
+
|
85
|
+
expect(EcmaReValidator.valid?(re)).to eql(false)
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'should pass if regexp is escaped \z, with many backslashes' do
|
89
|
+
re = 'anchor\\\\\\\\z'
|
60
90
|
|
61
91
|
expect(EcmaReValidator.valid?(re)).to eql(true)
|
62
92
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecma-re-validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garen Torikian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: regexp_parser
|