class VersionCake::VersionContextService
Public Class Methods
new(config)
click to toggle source
# File lib/versioncake/version_context_service.rb, line 4 def initialize(config) @versioned_resources = config.versioned_resources @default_version = config.default_version @strategies = config.extraction_strategies end
Public Instance Methods
create_context(uri, version)
click to toggle source
# File lib/versioncake/version_context_service.rb, line 29 def create_context(uri, version) return unless resource = find_resource(uri) result = check_version(resource, version) VersionCake::VersionContext.new(version, resource, result) end
create_context_from_context(context, version)
click to toggle source
# File lib/versioncake/version_context_service.rb, line 37 def create_context_from_context(context, version) result = check_version(context.resource, version) VersionCake::VersionContext.new(version, context.resource, result) end
create_context_from_request(raw_request)
click to toggle source
# File lib/versioncake/version_context_service.rb, line 10 def create_context_from_request(raw_request) return unless resource = find_resource(raw_request.path) request = VersionCake::VersionedRequest.new( raw_request, @strategies, @default_version ) request.execute result = if request.failed :version_invalid else check_version(resource, request.version) end VersionCake::VersionContext.new(request.version, resource, result) end
Private Instance Methods
check_version(resource, version)
click to toggle source
# File lib/versioncake/version_context_service.rb, line 45 def check_version(resource, version) VersionCake::VersionChecker.new(version, resource).execute end
find_resource(uri)
click to toggle source
# File lib/versioncake/version_context_service.rb, line 49 def find_resource(uri) @versioned_resources.find { |resource| resource.uri.match uri } end