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
|
||||
|
||||
|
||||
|
@@ -127,6 +127,29 @@ class Aviator::Test
|
||||
end
|
||||
|
||||
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
|
||||
|
Reference in New Issue
Block a user