Allow metadata to be loaded independently

This commit is contained in:
Kevin Sawicki 2013-05-21 17:15:15 -07:00
parent 37b1d4e77d
commit 63bfca3d09
2 changed files with 10 additions and 8 deletions

View File

@ -20,7 +20,7 @@ class AtomPackage extends Package
load: ->
try
@loadMetadata()
@metadata = Package.loadMetadata(@path)
@loadKeymaps()
@loadStylesheets()
@loadGrammars()
@ -60,12 +60,6 @@ class AtomPackage extends Package
syntax.addGrammar(grammar) for grammar in @grammars
syntax.addProperties(path, selector, properties) for [path, selector, properties] in @scopedProperties
loadMetadata: ->
if metadataPath = CSON.resolve(fsUtils.join(@path, 'package'))
@metadata = CSON.readFileSync(metadataPath)
@metadata ?= {}
@metadata.name = @name
loadKeymaps: ->
@keymaps = @getKeymapPaths().map (path) -> [path, CSON.readFileSync(path)]

View File

@ -1,4 +1,5 @@
{basename} = require 'path'
CSON = require 'season'
{basename, join} = require 'path'
### Internal ###
module.exports =
@ -17,6 +18,13 @@ class Package
pack.load(options)
pack
@loadMetadata: (path) ->
if metadataPath = CSON.resolve(join(path, 'package'))
metadata = CSON.readFileSync(metadataPath)
metadata ?= {}
metadata.name = basename(path)
metadata
name: null
path: null