regal 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: db4e4203da5b1a0bec0c51c723f9b568ce05156e
4
- data.tar.gz: cbf14817181216d249f47bd98911a82e76037f46
2
+ SHA256:
3
+ metadata.gz: 45ac2e7667747b949959086c13d4e1f9d8aafe68324c2c0124ad52ba34f7f99c
4
+ data.tar.gz: f48537179e64376e9d616859883e9ce88f016f79f1b99ece62cd009ec265597c
5
5
  SHA512:
6
- metadata.gz: c7872761ee284242b04d66a6d9a69bcdd63e34c7db5385188c92db0c0221f21927983f367d7eb8520acfc748226337c5e001e95e57ceffd171d184d2904f67d9
7
- data.tar.gz: 13f6d5b016259691a1f8d7f6bb8fe29c80543c2b395c95a4e847bbaf418f006a0156cb87085f4e4d1a47b354d76648a74f65c7e5c359c63dee800d6ed0a5f387
6
+ metadata.gz: 15d39814b9bc1b8f9b80e1a937c7b6dc5d9f26afd6d228d54dc4fa655e7043d87eeab8d5477d3cd711a7261172e06bba6f4ffb73ffecbfed4a06d2b3966184ff
7
+ data.tar.gz: 1f16718c266cbac372fa03c1ad99843de49b75eb15123945194d62f056ac1a8d8749adba34d03d51eeaac216490717c433469ca223d2edd842845843900bb5fb
@@ -58,6 +58,7 @@ module Regal
58
58
  MountGraft.new(app, route)
59
59
  end
60
60
  routes.merge!(mounted_routes)
61
+ routes.default = mounted_routes.default
61
62
  end
62
63
  @routes.each do |path, cls|
63
64
  routes[path] = cls.new(attributes)
@@ -1,4 +1,4 @@
1
1
  module Regal
2
2
  # @private
3
- VERSION = '0.2.1'.freeze
3
+ VERSION = '0.3.0'.freeze
4
4
  end
@@ -592,6 +592,27 @@ module Regal
592
592
  end
593
593
  end
594
594
 
595
+ context 'an app that has a top-level capturing route' do
596
+ let :app do
597
+ App.new do
598
+ route :foo do
599
+ get do
600
+ 'whatever'
601
+ end
602
+ end
603
+ end
604
+ end
605
+
606
+ it 'matches anything for the capture route' do
607
+ get '/something'
608
+ expect(last_response.status).to eq(200)
609
+ expect(last_response.body).to eq('whatever')
610
+ get '/something-else'
611
+ expect(last_response.status).to eq(200)
612
+ expect(last_response.body).to eq('whatever')
613
+ end
614
+ end
615
+
595
616
  context 'an app that mounts another app' do
596
617
  GoodbyeApp = App.create do
597
618
  route 'goodbye' do
@@ -701,6 +722,87 @@ module Regal
701
722
  end
702
723
  end
703
724
 
725
+ context 'an app that has an mounted capturing route' do
726
+ let :app do
727
+ InnerApp = App.create do
728
+ route 'static' do
729
+ get do
730
+ 'static'
731
+ end
732
+ end
733
+
734
+ route :bar do
735
+ get do
736
+ 'inside'
737
+ end
738
+ end
739
+ end
740
+
741
+ App.new do
742
+ route 'foo' do
743
+ mount InnerApp
744
+ end
745
+
746
+ route :outside do
747
+ get do
748
+ 'outside'
749
+ end
750
+ end
751
+ end
752
+ end
753
+
754
+ it 'prioritizes the static route' do
755
+ get '/foo/static'
756
+ expect(last_response.status).to eq(200)
757
+ expect(last_response.body).to eq('static')
758
+ end
759
+
760
+ it 'matches anything for the mounted capture route' do
761
+ get '/foo/this'
762
+ expect(last_response.status).to eq(200)
763
+ expect(last_response.body).to eq('inside')
764
+ end
765
+
766
+ it 'still matches anything for the parent capture route' do
767
+ get '/this'
768
+ expect(last_response.status).to eq(200)
769
+ expect(last_response.body).to eq('outside')
770
+ end
771
+ end
772
+
773
+ context 'an app that has two mounted capturing routes' do
774
+ let :app do
775
+ InnerApp1 = App.create do
776
+ route :bar do
777
+ get do
778
+ 'inside 1'
779
+ end
780
+ end
781
+ end
782
+
783
+ InnerApp2 = App.create do
784
+ route :bar do
785
+ get do
786
+ 'inside 2'
787
+ end
788
+ end
789
+ end
790
+
791
+ App.new do
792
+ route 'foo' do
793
+ mount InnerApp1
794
+ mount InnerApp2
795
+ end
796
+ end
797
+ end
798
+
799
+ it 'last capture route replaces earlier mounted capture route' do
800
+ get '/foo/this'
801
+ expect(last_response.status).to eq(200)
802
+ expect(last_response.body).to eq('inside 2')
803
+ end
804
+ end
805
+
704
806
  context 'an app that groups routes together in scopes' do
705
807
  let :app do
706
808
  App.new do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: regal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Theo Hultberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-29 00:00:00.000000000 Z
11
+ date: 2019-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.5'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.5'
26
+ version: '2.0'
27
27
  description: ''
28
28
  email:
29
29
  - theo@iconara.net
@@ -61,14 +61,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  requirements: []
64
- rubyforge_project:
65
- rubygems_version: 2.4.5
64
+ rubygems_version: 3.0.1
66
65
  signing_key:
67
66
  specification_version: 4
68
67
  summary: ''
69
68
  test_files:
70
- - spec/regal/app_spec.rb
69
+ - spec/spec_helper.rb
71
70
  - spec/regal/request_spec.rb
72
71
  - spec/regal/response_spec.rb
73
- - spec/spec_helper.rb
74
- has_rdoc:
72
+ - spec/regal/app_spec.rb