Class: VersionCake::VersionContextService

Inherits:
Object
  • Object
show all
Defined in:
lib/versioncake/version_context_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ VersionContextService

Returns a new instance of VersionContextService.



4
5
6
7
8
# 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

Instance Method Details

#create_context(uri, version) ⇒ Object



29
30
31
32
33
34
35
# 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) ⇒ Object



37
38
39
40
41
# 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) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 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