Merge pull request #1138 from atom/ks-remove-deserializer-shims

Remove deserializer shims
This commit is contained in:
Kevin Sawicki
2013-11-20 14:51:03 -08:00
21 changed files with 44 additions and 52 deletions

View File

@@ -81,7 +81,7 @@
"dev-live-reload": "0.16.0",
"editor-stats": "0.6.0",
"exception-reporting": "0.7.0",
"find-and-replace": "0.44.0",
"find-and-replace": "0.45.0",
"fuzzy-finder": "0.22.0",
"gists": "0.8.0",
"git-diff": "0.14.0",
@@ -91,18 +91,18 @@
"image-view": "0.8.0",
"keybinding-resolver": "0.4.0",
"link": "0.8.0",
"markdown-preview": "0.17.0",
"markdown-preview": "0.18.0",
"metrics": "0.12.0",
"package-generator": "0.20.0",
"release-notes": "0.12.0",
"settings-view": "0.44.0",
"settings-view": "0.45.0",
"snippets": "0.15.0",
"spell-check": "0.14.0",
"status-bar": "0.19.0",
"styleguide": "0.10.0",
"styleguide": "0.11.0",
"symbols-view": "0.21.0",
"tabs": "0.9.0",
"terminal": "0.17.0",
"tabs": "0.10.0",
"terminal": "0.18.0",
"timecop": "0.10.0",
"to-the-hubs": "0.11.0",
"tree-view": "0.34.0",

View File

@@ -14,7 +14,7 @@ describe "the `atom` global", ->
pack = atom.packages.loadPackage('package-with-activation-events')
spyOn(pack, 'activateStylesheets').andCallThrough()
expect(pack.mainModule).toBeNull()
object = deserialize({deserializer: 'Foo', data: 5})
object = atom.deserializers.deserialize({deserializer: 'Foo', data: 5})
expect(pack.mainModule).toBeDefined()
expect(object.constructor.name).toBe 'Foo'
expect(object.data).toBe 5

View File

@@ -20,7 +20,7 @@ describe "DisplayBuffer", ->
displayBuffer.setTabLength(4)
displayBuffer.setEditorWidthInChars(64)
displayBuffer.createFold(2, 4)
displayBuffer2 = deserialize(displayBuffer.serialize())
displayBuffer2 = atom.deserializers.deserialize(displayBuffer.serialize())
expect(displayBuffer2.id).toBe displayBuffer.id
expect(displayBuffer2.buffer).toBe displayBuffer.buffer
expect(displayBuffer2.tokenizedBuffer.buffer).toBe displayBuffer.tokenizedBuffer.buffer

View File

@@ -28,7 +28,7 @@ describe "Editor", ->
editor.foldBufferRow(4)
expect(editor.isFoldedAtBufferRow(4)).toBeTruthy()
editor2 = deserialize(editor.serialize())
editor2 = atom.deserializers.deserialize(editor.serialize())
expect(editor2.id).toBe editor.id
expect(editor2.getBuffer().getPath()).toBe editor.getBuffer().getPath()

View File

@@ -1,5 +1,5 @@
class Foo
registerDeserializer(this)
atom.deserializers.add(this)
@deserialize: ({data}) -> new Foo(data)
constructor: (@data) ->

View File

@@ -9,7 +9,7 @@ describe "PaneContainer", ->
beforeEach ->
class TestView extends View
registerDeserializer(this)
atom.deserializers.add(this)
@deserialize: ({name}) -> new TestView(name)
@content: -> @div tabindex: -1
initialize: (@name) -> @text(@name)
@@ -25,7 +25,7 @@ describe "PaneContainer", ->
pane3 = pane2.splitDown(new TestView('3'))
afterEach ->
unregisterDeserializer(TestView)
atom.deserializers.remove(TestView)
describe ".focusNextPane()", ->
it "focuses the pane following the focused pane or the first pane if no pane has focus", ->
@@ -190,7 +190,7 @@ describe "PaneContainer", ->
describe "serialization", ->
it "can be serialized and deserialized, and correctly adjusts dimensions of deserialized panes after attach", ->
newContainer = deserialize(container.serialize())
newContainer = atom.deserializers.deserialize(container.serialize())
expect(newContainer.find('.row > :contains(1)')).toExist()
expect(newContainer.find('.row > .column > :contains(2)')).toExist()
expect(newContainer.find('.row > .column > :contains(3)')).toExist()
@@ -202,7 +202,7 @@ describe "PaneContainer", ->
xit "removes empty panes on deserialization", ->
# only deserialize pane 1's view successfully
TestView.deserialize = ({name}) -> new TestView(name) if name is '1'
newContainer = deserialize(container.serialize())
newContainer = atom.deserializers.deserialize(container.serialize())
expect(newContainer.find('.row, .column')).not.toExist()
expect(newContainer.find('> :contains(1)')).toExist()

View File

@@ -16,7 +16,7 @@ describe "Pane", ->
isEqual: (other) -> @id == other.id and @text == other.text
beforeEach ->
registerDeserializer(TestView)
atom.deserializers.add(TestView)
container = new PaneContainer
view1 = new TestView(id: 'view-1', text: 'View 1')
view2 = new TestView(id: 'view-2', text: 'View 2')
@@ -26,7 +26,7 @@ describe "Pane", ->
container.setRoot(pane)
afterEach ->
unregisterDeserializer(TestView)
atom.deserializers.remove(TestView)
describe ".initialize(items...)", ->
it "displays the first item in the pane", ->
@@ -678,12 +678,12 @@ describe "Pane", ->
describe "serialization", ->
it "can serialize and deserialize the pane and all its items", ->
newPane = deserialize(pane.serialize())
newPane = atom.deserializers.deserialize(pane.serialize())
expect(newPane.getItems()).toEqual [view1, editor1, view2, editor2]
it "restores the active item on deserialization", ->
pane.showItem(editor2)
newPane = deserialize(pane.serialize())
newPane = atom.deserializers.deserialize(pane.serialize())
expect(newPane.activeItem).toEqual editor2
it "does not show items that cannot be deserialized", ->
@@ -693,7 +693,7 @@ describe "Pane", ->
paneState = pane.serialize()
paneState.get('items').set(pane.items.indexOf(view2), {deserializer: 'Bogus'}) # nuke serialized state of active item
newPane = deserialize(paneState)
newPane = atom.deserializers.deserialize(paneState)
expect(newPane.activeItem).toEqual pane.items[0]
expect(newPane.items.length).toBe pane.items.length - 1
@@ -704,7 +704,7 @@ describe "Pane", ->
container.remove()
project.destroy()
window.project = projectReplica
container = deserialize(containerState)
container = atom.deserializers.deserialize(containerState)
pane = container.getRoot()
container.attachToDom()

View File

@@ -67,7 +67,7 @@ describe "Project", ->
expect(project.getEditSessions().length).toBe 1
expect(project.getEditSessions()[0]).toBe editor1
editor2 = deserialize(editor1.serialize())
editor2 = atom.deserializers.deserialize(editor1.serialize())
expect(handler.callCount).toBe 2
expect(project.getEditSessions().length).toBe 2
expect(project.getEditSessions()[0]).toBe editor1

View File

@@ -25,7 +25,7 @@ describe "RootView", ->
rootView.remove()
project.destroy()
window.project = project2
window.rootView = deserialize(rootViewState)
window.rootView = atom.deserializers.deserialize(rootViewState)
rootView.attachToDom()
describe "when the serialized RootView has an unsaved buffer", ->

View File

@@ -15,7 +15,7 @@ describe "the `syntax` global", ->
filePath = '/foo/bar/file.js'
expect(atom.syntax.selectGrammar(filePath).name).not.toBe 'Ruby'
atom.syntax.setGrammarOverrideForPath(filePath, 'source.ruby')
syntax2 = deserialize(atom.syntax.serialize())
syntax2 = atom.deserializers.deserialize(atom.syntax.serialize())
syntax2.addGrammar(grammar) for grammar in atom.syntax.grammars when grammar isnt atom.syntax.nullGrammar
expect(syntax2.selectGrammar(filePath).name).toBe 'Ruby'

View File

@@ -22,7 +22,7 @@ describe "TokenizedBuffer", ->
it "constructs a tokenized buffer with the same buffer and tabLength setting", ->
buffer = project.bufferForPathSync('sample.js')
tokenizedBuffer1 = new TokenizedBuffer(buffer: buffer, tabLength: 4)
tokenizedBuffer2 = deserialize(tokenizedBuffer1.serialize())
tokenizedBuffer2 = atom.deserializers.deserialize(tokenizedBuffer1.serialize())
expect(tokenizedBuffer2.buffer).toBe tokenizedBuffer1.buffer
expect(tokenizedBuffer2.getTabLength()).toBe tokenizedBuffer1.getTabLength()

View File

@@ -61,7 +61,7 @@ class Atom
@contextMenu = new ContextMenuManager(devMode)
@menu = new MenuManager({resourcePath})
@pasteboard = new Pasteboard()
@syntax = deserialize(@getWindowState('syntax')) ? new Syntax()
@syntax = @deserializers.deserialize(@getWindowState('syntax')) ? new Syntax()
# Private:
setBodyPlatformClass: ->
@@ -127,7 +127,7 @@ class Atom
deserializeRootView: ->
RootView = require './root-view'
state = @getWindowState()
@rootView = deserialize(state.get('rootView'))
@rootView = @deserializers.deserialize(state.get('rootView'))
unless @rootView?
@rootView = new RootView()
state.set('rootView', @rootView.getState())

View File

@@ -18,7 +18,7 @@ class DisplayBuffer
_.extend @prototype, ConfigObserver
@acceptsDocuments: true
registerDeserializer(this)
atom.deserializers.add(this)
@version: 2
@deserialize: (state) -> new this(state)
@@ -27,7 +27,7 @@ class DisplayBuffer
if optionsOrState instanceof telepath.Document
@state = optionsOrState
@id = @state.get('id')
@tokenizedBuffer = deserialize(@state.get('tokenizedBuffer'))
@tokenizedBuffer = atom.deserializers.deserialize(@state.get('tokenizedBuffer'))
@buffer = @tokenizedBuffer.buffer
else
{@buffer, softWrap, editorWidthInChars} = optionsOrState

View File

@@ -42,7 +42,7 @@ class Editor
@acceptsDocuments: true
registerDeserializer(this)
atom.deserializers.add(this)
@version: 5
@@ -67,7 +67,7 @@ class Editor
if optionsOrState instanceof telepath.Document
@state = optionsOrState
@id = @state.get('id')
displayBuffer = deserialize(@state.get('displayBuffer'))
displayBuffer = atom.deserializers.deserialize(@state.get('displayBuffer'))
@setBuffer(displayBuffer.buffer)
@setDisplayBuffer(displayBuffer)
for marker in @findMarkers(@getSelectionMarkerAttributes())

View File

@@ -12,7 +12,8 @@ class PaneAxis extends View
initialize: (args...) ->
if args[0] instanceof telepath.Document
@state = args[0]
@state.get('children').each (child, index) => @addChild(deserialize(child), index, updateState: false)
@state.get('children').each (child, index) =>
@addChild(atom.deserializers.deserialize(child), index, updateState: false)
else
@state = atom.site.createDocument(deserializer: @className(), children: [])
@addChild(child) for child in args
@@ -22,7 +23,7 @@ class PaneAxis extends View
for childState in removedValues
@removeChild(@children(":eq(#{index})").view(), updateState: false)
for childState, i in insertedValues
@addChild(deserialize(childState), index + i, updateState: false)
@addChild(atom.deserializers.deserialize(childState), index + i, updateState: false)
addChild: (child, index=@children().length, options={}) ->
@insertAt(index, child)

View File

@@ -5,7 +5,7 @@ telepath = require 'telepath'
# Private: Manages the list of panes within a {RootView}
module.exports =
class PaneContainer extends View
registerDeserializer(this)
atom.deserializers.add(this)
### Internal ###
@acceptsDocuments: true
@@ -23,7 +23,7 @@ class PaneContainer extends View
if state instanceof telepath.Document
@state = state
@setRoot(deserialize(@state.get('root')))
@setRoot(atom.deserializers.deserialize(@state.get('root')))
else
@state = atom.site.createDocument(deserializer: 'PaneContainer')
@@ -89,10 +89,10 @@ class PaneContainer extends View
reopenItem: ->
if lastItemState = @destroyedItemStates.pop()
if activePane = @getActivePane()
activePane.showItem(deserialize(lastItemState))
activePane.showItem(atom.deserializers.deserialize(lastItemState))
true
else
newPane = new Pane(deserialize(lastItemState))
newPane = new Pane(atom.deserializers.deserialize(lastItemState))
@setRoot(newPane)
newPane.focus()

View File

@@ -33,7 +33,8 @@ class Pane extends View
initialize: (args...) ->
if args[0] instanceof telepath.Document
@state = args[0]
@items = _.compact(@state.get('items').map (item) -> deserialize(item))
@items = _.compact @state.get('items').map (item) ->
atom.deserializers.deserialize(item)
else
@items = args
@state = atom.site.createDocument
@@ -45,7 +46,7 @@ class Pane extends View
for itemState in removedValues
@removeItemAtIndex(index, updateState: false)
for itemState, i in insertedValues
@addItem(deserialize(itemState), index + i, updateState: false)
@addItem(atom.deserializers.deserialize(itemState), index + i, updateState: false)
@subscribe @state, 'changed', ({newValues, siteId}) =>
return if siteId is @state.siteId
@@ -416,7 +417,7 @@ class Pane extends View
# Private:
copyActiveItem: ->
@activeItem.copy?() ? deserialize(@activeItem.serialize())
@activeItem.copy?() ? atom.deserializers.deserialize(@activeItem.serialize())
# Private:
remove: (selector, keepData) ->

View File

@@ -69,7 +69,7 @@ class RootView extends View
if state instanceof telepath.Document
@state = state
panes = deserialize(state.get('panes'))
panes = atom.deserializers.deserialize(state.get('panes'))
else
panes = new PaneContainer
@state = atom.site.createDocument

View File

@@ -11,7 +11,7 @@ module.exports =
class Syntax
Emitter.includeInto(this)
registerDeserializer(this)
atom.deserializers.add(this)
@deserialize: ({grammarOverridesByPath}) ->
syntax = new Syntax()

View File

@@ -21,7 +21,7 @@ class TokenizedBuffer
visible: false
@acceptsDocuments: true
registerDeserializer(this)
atom.deserializers.add(this)
@deserialize: (state) ->
new this(state)

View File

@@ -93,16 +93,6 @@ window.deserializeEditorWindow = ->
window.onerror = ->
atom.openDevTools()
#TODO remove once all packages use the atom global
window.registerDeserializer = (args...) ->
atom.deserializers.add(args...)
window.unregisterDeserializer = (args...) ->
atom.deserializers.remove(args...)
window.deserialize = (args...) ->
atom.deserializers.deserialize(args...)
window.requireWithGlobals = (args...) ->
atom.requireWithGlobals(args...)
# Public: Measure how long a function takes to run.
#
# * description: