mustermann19 0.4.1 → 0.4.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/mustermann/grape.rb +1 -1
- data/lib/mustermann/version.rb +1 -1
- data/spec/grape_spec.rb +30 -30
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0213dc6d9a2c7638cac33790888dfaaa7da56258
|
4
|
+
data.tar.gz: 2c5628b7ce6f0d6c83693f714de0b6b634a411c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4adbeefe8e9c58a9478dbe235029d55234aba29c70bea436b9ae8bdf1a1f03c031fb80ec92bf2d6ad7401ee4180b9ea3d690b4554032ee6e14644066661976da
|
7
|
+
data.tar.gz: 95c9a1d24af3a7823469cc04bb22fda9a3232723d0c7b3a6f7cbf6cb1dfd0d588b6f5138e3e035413a1636b421d190f5faa43d5f396632462c9c70c921de0bdd
|
data/lib/mustermann/grape.rb
CHANGED
@@ -14,7 +14,7 @@ module Mustermann
|
|
14
14
|
on(nil, ??, ?)) { |c| unexpected(c) }
|
15
15
|
|
16
16
|
on(?*) { |c| scan(/\w+/) ? node(:named_splat, buffer.matched) : node(:splat) }
|
17
|
-
on(?:) { |c| node(:capture) { scan(/\w+/) } }
|
17
|
+
on(?:) { |c| node(:capture, constraint: "[^/\\?#\.]") { scan(/\w+/) } }
|
18
18
|
on(?\\) { |c| node(:char, expect(/./)) }
|
19
19
|
on(?() { |c| node(:optional, node(:group) { read unless scan(?)) }) }
|
20
20
|
on(?|) { |c| node(:or) }
|
data/lib/mustermann/version.rb
CHANGED
data/spec/grape_spec.rb
CHANGED
@@ -41,10 +41,10 @@ describe Mustermann::Grape do
|
|
41
41
|
pattern '/:foo' do
|
42
42
|
it { should match('/foo') .capturing foo: 'foo' }
|
43
43
|
it { should match('/bar') .capturing foo: 'bar' }
|
44
|
-
it { should match('/foo.bar') .capturing foo: 'foo.bar' }
|
45
44
|
it { should match('/%0Afoo') .capturing foo: '%0Afoo' }
|
46
45
|
it { should match('/foo%2Fbar') .capturing foo: 'foo%2Fbar' }
|
47
46
|
|
47
|
+
it { should_not match('/foo.bar') }
|
48
48
|
it { should_not match('/foo?') }
|
49
49
|
it { should_not match('/foo/bar') }
|
50
50
|
it { should_not match('/') }
|
@@ -59,10 +59,10 @@ describe Mustermann::Grape do
|
|
59
59
|
|
60
60
|
pattern "/:foo/:bar" do
|
61
61
|
it { should match('/foo/bar') .capturing foo: 'foo', bar: 'bar' }
|
62
|
-
it {
|
63
|
-
it {
|
64
|
-
it {
|
65
|
-
it {
|
62
|
+
it { should_not match('/foo.bar/bar.foo') }
|
63
|
+
it { should_not match('/user@example.com/name') }
|
64
|
+
it { should_not match('/10.1/te.st') }
|
65
|
+
it { should_not match('/10.1.2/te.st') }
|
66
66
|
|
67
67
|
it { should_not match('/foo%2Fbar') }
|
68
68
|
it { should_not match('/foo%2fbar') }
|
@@ -267,9 +267,9 @@ describe Mustermann::Grape do
|
|
267
267
|
it { should match('/pony%e6%ad%a3%2ejpg') .capturing file: 'pony%e6%ad%a3', ext: 'jpg' }
|
268
268
|
it { should match('/pony正%2Ejpg') .capturing file: 'pony正', ext: 'jpg' }
|
269
269
|
it { should match('/pony正%2ejpg') .capturing file: 'pony正', ext: 'jpg' }
|
270
|
-
it { should match('/pony正..jpg') .capturing file: 'pony正.', ext: 'jpg' }
|
271
270
|
|
272
|
-
it { should_not match('
|
271
|
+
it { should_not match('/pony正..jpg') }
|
272
|
+
it { should_not match('/.jpg') }
|
273
273
|
end
|
274
274
|
|
275
275
|
pattern '/(:a)x?' do
|
@@ -283,8 +283,8 @@ describe Mustermann::Grape do
|
|
283
283
|
|
284
284
|
pattern '/:user(@:host)?' do
|
285
285
|
it { should match('/foo@bar') .capturing user: 'foo', host: 'bar' }
|
286
|
-
it {
|
287
|
-
it {
|
286
|
+
it { should_not match('/foo.foo@bar') }
|
287
|
+
it { should_not match('/foo@bar.bar') }
|
288
288
|
|
289
289
|
it { should generate_template('/{user}') }
|
290
290
|
it { should generate_template('/{user}@{host}') }
|
@@ -295,9 +295,9 @@ describe Mustermann::Grape do
|
|
295
295
|
it { should match('/pony.jpg') .capturing file: 'pony', ext: 'jpg' }
|
296
296
|
it { should match('/pony%2Ejpg') .capturing file: 'pony', ext: 'jpg' }
|
297
297
|
it { should match('/pony%2ejpg') .capturing file: 'pony', ext: 'jpg' }
|
298
|
-
it {
|
299
|
-
it {
|
300
|
-
it { should_not match('/.jpg')
|
298
|
+
it { should_not match('/pony.png.jpg') }
|
299
|
+
it { should_not match('/pony.') }
|
300
|
+
it { should_not match('/.jpg') }
|
301
301
|
|
302
302
|
it { should generate_template('/{file}') }
|
303
303
|
it { should generate_template('/{file}.{ext}') }
|
@@ -314,24 +314,24 @@ describe Mustermann::Grape do
|
|
314
314
|
|
315
315
|
pattern '/10/:id' do
|
316
316
|
it { should match('/10/test') .capturing id: 'test' }
|
317
|
-
it {
|
317
|
+
it { should_not match('/10/te.st') }
|
318
318
|
end
|
319
319
|
|
320
320
|
pattern '/10.1/:id' do
|
321
321
|
it { should match('/10.1/test') .capturing id: 'test' }
|
322
|
-
it {
|
322
|
+
it { should_not match('/10.1/te.st') }
|
323
323
|
end
|
324
324
|
|
325
325
|
pattern '/:foo.:bar/:id' do
|
326
|
-
it {
|
327
|
-
it {
|
326
|
+
it { should_not match('/10.1/te.st') }
|
327
|
+
it { should_not match('/10.1.2/te.st') }
|
328
328
|
end
|
329
329
|
|
330
330
|
pattern '/:a/:b.?:c?' do
|
331
331
|
it { should match('/a/b') .capturing a: 'a', b: 'b', c: nil }
|
332
332
|
it { should match('/a/b.c') .capturing a: 'a', b: 'b', c: 'c' }
|
333
|
-
it {
|
334
|
-
it {
|
333
|
+
it { should_not match('/a.b/c') }
|
334
|
+
it { should_not match('/a.b/c.d') }
|
335
335
|
it { should_not match('/a.b/c.d/e') }
|
336
336
|
end
|
337
337
|
|
@@ -554,23 +554,23 @@ describe Mustermann::Grape do
|
|
554
554
|
it { should match('/pony.png') .capturing file: 'pony', ext: 'png' }
|
555
555
|
it { should match('/pony%2Epng') .capturing file: 'pony', ext: 'png' }
|
556
556
|
it { should match('/pony%2epng') .capturing file: 'pony', ext: 'png' }
|
557
|
-
it {
|
558
|
-
it {
|
559
|
-
it {
|
560
|
-
it {
|
561
|
-
it { should_not match('.jpg')
|
557
|
+
it { should_not match('/pony.png.jpg') }
|
558
|
+
it { should_not match('/pony.jpg.png') }
|
559
|
+
it { should_not match('/pony.gif') }
|
560
|
+
it { should_not match('/pony.') }
|
561
|
+
it { should_not match('.jpg') }
|
562
562
|
end
|
563
563
|
|
564
564
|
pattern '/:file:ext?', capture: { ext: ['.jpg', '.png', '.tar.gz'] } do
|
565
565
|
it { should match('/pony') .capturing file: 'pony', ext: nil }
|
566
566
|
it { should match('/pony.jpg') .capturing file: 'pony', ext: '.jpg' }
|
567
567
|
it { should match('/pony.png') .capturing file: 'pony', ext: '.png' }
|
568
|
-
it { should match('/pony.
|
569
|
-
it {
|
570
|
-
it {
|
571
|
-
it {
|
572
|
-
it {
|
573
|
-
it { should_not match('/.jpg')
|
568
|
+
it { should match('/pony.tar.gz') .capturing file: 'pony', ext: '.tar.gz' }
|
569
|
+
it { should_not match('/pony.png.jpg') }
|
570
|
+
it { should_not match('/pony.jpg.png') }
|
571
|
+
it { should_not match('/pony.gif') }
|
572
|
+
it { should_not match('/pony.') }
|
573
|
+
it { should_not match('/.jpg') }
|
574
574
|
end
|
575
575
|
|
576
576
|
pattern '/:a(@:b)?', capture: { b: /\d+/ } do
|
@@ -587,7 +587,7 @@ describe Mustermann::Grape do
|
|
587
587
|
pattern '/:file(.:ext)?', greedy: false do
|
588
588
|
it { should match('/pony') .capturing file: 'pony', ext: nil }
|
589
589
|
it { should match('/pony.jpg') .capturing file: 'pony', ext: 'jpg' }
|
590
|
-
it {
|
590
|
+
it { should_not match('/pony.png.jpg') }
|
591
591
|
end
|
592
592
|
|
593
593
|
pattern '/auth/*', except: '/auth/login' do
|