Merge pull request #5961 from atom/mb-batch-services-providers-by-package

Batch service providers by package
This commit is contained in:
Max Brunsfeld 2015-03-13 13:28:41 -07:00
commit eb355118ad
5 changed files with 9 additions and 2 deletions

View File

@ -60,7 +60,7 @@
"season": "^5.1.4",
"semver": "~4.2",
"serializable": "^1",
"service-hub": "^0.4.0",
"service-hub": "^0.5.0",
"space-pen": "3.8.2",
"stacktrace-parser": "0.1.1",
"temp": "0.8.1",

View File

@ -3,6 +3,9 @@ module.exports =
deactivate: ->
provideFirstServiceV2: ->
'first-service-v2'
provideFirstServiceV3: ->
'first-service-v3'

View File

@ -5,6 +5,7 @@
"service-1": {
"description": "The first service",
"versions": {
"0.2.9": "provideFirstServiceV2",
"0.3.1": "provideFirstServiceV3",
"0.4.1": "provideFirstServiceV4"
}

View File

@ -522,6 +522,7 @@ describe "PackageManager", ->
atom.packages.activatePackage("package-with-provided-services")
runs ->
expect(consumerModule.consumeFirstServiceV3.callCount).toBe(1)
expect(consumerModule.consumeFirstServiceV3).toHaveBeenCalledWith('first-service-v3')
expect(consumerModule.consumeFirstServiceV4).toHaveBeenCalledWith('first-service-v4')
expect(consumerModule.consumeSecondService).toHaveBeenCalledWith('second-service')

View File

@ -223,8 +223,10 @@ class Package
activateServices: ->
for name, {versions} of @metadata.providedServices
servicesByVersion = {}
for version, methodName of versions
@activationDisposables.add atom.packages.serviceHub.provide(name, version, @mainModule[methodName]())
servicesByVersion[version] = @mainModule[methodName]()
@activationDisposables.add atom.packages.serviceHub.provide(name, servicesByVersion)
for name, {versions} of @metadata.consumedServices
for version, methodName of versions