Add Service::request_classes
This commit is contained in:
		@@ -85,8 +85,8 @@ module Aviator
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def requests
 | 
			
		||||
      @requests
 | 
			
		||||
    def request_classes
 | 
			
		||||
      @request_classes
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
@@ -168,6 +168,14 @@ module Aviator
 | 
			
		||||
                           )
 | 
			
		||||
 | 
			
		||||
      request_file_paths.each{ |path| require path }
 | 
			
		||||
      
 | 
			
		||||
      constant_parts = request_file_paths
 | 
			
		||||
                        .map{|rf| rf.to_s.match(/#{provider}\/#{service}\/([\w\/]+)\.rb$/) }
 | 
			
		||||
                        .map{|rf| rf[1].split('/').map{|c| c.camelize }.join('::') }
 | 
			
		||||
      
 | 
			
		||||
      @request_classes = constant_parts.map do |cp| 
 | 
			
		||||
        "Aviator::#{provider.camelize}::#{service.camelize}::#{cp}".constantize
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
 
 | 
			
		||||
@@ -129,6 +129,29 @@ class Aviator::Test
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
    describe '#request_classes' do
 | 
			
		||||
      
 | 
			
		||||
      it 'returns an array of the request classes' do
 | 
			
		||||
        provider_name = config[:provider]
 | 
			
		||||
        service_name  = config[:auth_service][:name]
 | 
			
		||||
        service_path  = Pathname.new(__FILE__).join(
 | 
			
		||||
                          '..', '..', '..', '..', 'lib', 'aviator', provider_name, service_name
 | 
			
		||||
                        ).expand_path
 | 
			
		||||
                       
 | 
			
		||||
        request_files = Pathname.glob(service_path.join('**', '*.rb'))
 | 
			
		||||
                          .map{|rf| rf.to_s.match(/#{provider_name}\/#{service_name}\/([\w\/]+)\.rb$/) }
 | 
			
		||||
                          .map{|rf| rf[1].split('/').map{|c| c.camelize }.join('::') }
 | 
			
		||||
        
 | 
			
		||||
        classes = request_files.map do |rf| 
 | 
			
		||||
          "Aviator::#{provider_name.camelize}::#{service_name.camelize}::#{rf}".constantize
 | 
			
		||||
        end
 | 
			
		||||
        
 | 
			
		||||
        service.request_classes.must_equal classes
 | 
			
		||||
      end
 | 
			
		||||
      
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    describe '#default_session_data=' do
 | 
			
		||||
 | 
			
		||||
      it 'sets the service\'s default session data' do
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user