@@ -688,84 +688,84 @@ def hello
688688 end
689689 end
690690
691- # context "routes" do
692- # describe "empty api structure" do
693- # it "returns an empty array of routes" do
694- # subject.routes.should == []
695- # end
696- # end
697- # describe "single method api structure" do
698- # before(:each) do
699- # subject.get :ping do
700- # 'pong'
701- # end
702- # end
703- # it "returns one route" do
704- # subject.routes.size.should == 1
705- # route = subject.routes[0]
706- # route.route_version.should be_nil
707- # route.route_path.should == "/ping(.:format)"
708- # route.route_method.should == "GET"
709- # end
710- # end
711- # describe "api structure with two versions and a namespace" do
712- # class TwitterAPI < Grape::API
713- # # version v1
714- # version 'v1', :using => :path
715- # get "version" do
716- # api.version
717- # end
718- # # version v2
719- # version 'v2', :using => :path
720- # prefix 'p'
721- # namespace "n1" do
722- # namespace "n2" do
723- # get "version" do
724- # api.version
725- # end
726- # end
727- # end
728- # end
729- # it "should return versions" do
730- # TwitterAPI::versions.should == [ 'v1', 'v2' ]
731- # end
732- # it "should set route paths" do
733- # TwitterAPI::routes.size.should >= 2
734- # TwitterAPI::routes[0].route_path.should == "/:version/version(.:format)"
735- # TwitterAPI::routes[1].route_path.should == "/p/:version/n1/n2/version(.:format)"
736- # end
737- # it "should set route versions" do
738- # TwitterAPI::routes[0].route_version.should == 'v1'
739- # TwitterAPI::routes[1].route_version.should == 'v2'
740- # end
741- # it "should set a nested namespace" do
742- # TwitterAPI::routes[1].route_namespace.should == "/n1/n2"
743- # end
744- # it "should set prefix" do
745- # TwitterAPI::routes[1].route_prefix.should == 'p'
746- # end
747- # end
748- # describe "api structure with additional parameters" do
749- # before(:each) do
750- # subject.get 'split/:string', { :params => [ "token" ], :optional_params => [ "limit" ] } do
751- # params[:string].split(params[:token], (params[:limit] || 0).to_i)
752- # end
753- # end
754- # it "should split a string" do
755- # get "/split/a,b,c.json", :token => ','
756- # last_response.body.should == '["a","b","c"]'
757- # end
758- # it "should split a string with limit" do
759- # get "/split/a,b,c.json", :token => ',', :limit => '2'
760- # last_response.body.should == '["a","b,c"]'
761- # end
762- # it "should set route_params" do
763- # subject.routes.size.should == 1
764- # subject.routes[0].route_params.should == [ "string", "token" ]
765- # subject.routes[0].route_optional_params.should == [ "limit" ]
766- # end
767- # end
768- # end
691+ context "routes" do
692+ describe "empty api structure" do
693+ it "returns an empty array of routes" do
694+ subject . routes . should == [ ]
695+ end
696+ end
697+ describe "single method api structure" do
698+ before ( :each ) do
699+ subject . get :ping do
700+ 'pong'
701+ end
702+ end
703+ it "returns one route" do
704+ subject . routes . size . should == 1
705+ route = subject . routes [ 0 ]
706+ route . route_version . should be_nil
707+ route . route_path . should == "/ping(.:format)"
708+ route . route_method . should == "GET"
709+ end
710+ end
711+ describe "api structure with two versions and a namespace" do
712+ class TwitterAPI < Grape ::API
713+ # version v1
714+ version 'v1' , :using => :path
715+ get "version" do
716+ api . version
717+ end
718+ # version v2
719+ version 'v2' , :using => :path
720+ prefix 'p'
721+ namespace "n1" do
722+ namespace "n2" do
723+ get "version" do
724+ api . version
725+ end
726+ end
727+ end
728+ end
729+ it "should return versions" do
730+ TwitterAPI ::versions . should == [ 'v1' , 'v2' ]
731+ end
732+ it "should set route paths" do
733+ TwitterAPI ::routes . size . should >= 2
734+ TwitterAPI ::routes [ 0 ] . route_path . should == "/:version/version(.:format)"
735+ TwitterAPI ::routes [ 1 ] . route_path . should == "/p/:version/n1/n2/version(.:format)"
736+ end
737+ it "should set route versions" do
738+ TwitterAPI ::routes [ 0 ] . route_version . should == 'v1'
739+ TwitterAPI ::routes [ 1 ] . route_version . should == 'v2'
740+ end
741+ it "should set a nested namespace" do
742+ TwitterAPI ::routes [ 1 ] . route_namespace . should == "/n1/n2"
743+ end
744+ it "should set prefix" do
745+ TwitterAPI ::routes [ 1 ] . route_prefix . should == 'p'
746+ end
747+ end
748+ describe "api structure with additional parameters" do
749+ before ( :each ) do
750+ subject . get 'split/:string' , { :params => [ "token" ] , :optional_params => [ "limit" ] } do
751+ params [ :string ] . split ( params [ :token ] , ( params [ :limit ] || 0 ) . to_i )
752+ end
753+ end
754+ it "should split a string" do
755+ get "/split/a,b,c.json" , :token => ','
756+ last_response . body . should == '["a","b","c"]'
757+ end
758+ it "should split a string with limit" do
759+ get "/split/a,b,c.json" , :token => ',' , :limit => '2'
760+ last_response . body . should == '["a","b,c"]'
761+ end
762+ it "should set route_params" do
763+ subject . routes . size . should == 1
764+ subject . routes [ 0 ] . route_params . should == [ "string" , "token" ]
765+ subject . routes [ 0 ] . route_optional_params . should == [ "limit" ]
766+ end
767+ end
768+ end
769769
770770 describe ".rescue_from klass, block" do
771771 it 'should rescue Exception' do
0 commit comments