From 8d0d990825f9619d34c155195bc3227f5a4d41ce Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Tue, 9 Jul 2013 15:38:09 +0200 Subject: [PATCH] Remove DS.Store --- assets/scripts/app/store.coffee | 176 -------------------------------- 1 file changed, 176 deletions(-) delete mode 100644 assets/scripts/app/store.coffee diff --git a/assets/scripts/app/store.coffee b/assets/scripts/app/store.coffee deleted file mode 100644 index 101b5ae5..00000000 --- a/assets/scripts/app/store.coffee +++ /dev/null @@ -1,176 +0,0 @@ -require 'store/rest_adapter' - -coerceId = (id) -> if id == null then null else id+'' - -Travis.Store = DS.Store.extend - revision: 12 - adapter: Travis.RestAdapter.create() - - init: -> - @_super.apply this, arguments - @_loadedData = {} - @clientIdToComplete = {} - - load: (type, data, prematerialized) -> - result = @_super.apply this, arguments - - if result && result.clientId && @clientIdToComplete[result.clientId] == undefined - # I assume that everything that goes through load is complete record - # representation, incomplete hashes from pusher go through merge() - @clientIdToComplete[result.clientId] = true - - result - - # TODO use isUpdating once we've upgraded ember-data - loadMany: (type, ids, hashes) -> - result = @_super.apply this, arguments - array.set('isLoaded', true) for array in @typeMapFor(type).recordArrays - result - - merge: (type, data, incomplete) -> - id = coerceId data.id - - typeMap = @typeMapFor(type) - clientId = typeMap.idToCid[id] - record = @recordCache[clientId] - if record - @get('adapter').merge(this, record, data) - else - if (savedData = @clientIdToData[clientId]) && savedData.id? - $.extend(savedData, data) - else - result = @load(type, data, {id: data.id}) - - if result && result.clientId - clientId = result.clientId - if incomplete - @clientIdToComplete[result.clientId] = false - - { clientId: clientId, id: id } - - isInStore: (type, id) -> - !!@typeMapFor(type).idToCid[id] - - receive: (event, data) -> - [name, type] = event.split(':') - - mappings = @adapter.get('mappings') - type = mappings[name] - - - if event == 'build:started' && data.build.commit - # TODO: commit should be a sideload record on build, not mixed with it - build = data.build - commit = { - id: build.commit_id - author_email: build.author_email - author_name: build.author_name - branch: build.branch - committed_at: build.committed_at - committer_email: build.committer_email - committer_name: build.committer_name - compare_url: build.compare_url - message: build.message - sha: build.commit - } - delete(data.build.commit) - @loadIncomplete(Travis.Commit, commit) - - - if event == 'job:log' - console.log 'store: received job:log event', data if Log.DEBUG - data = data.job - job = @find(Travis.Job, data.id) - job.appendLog(number: parseInt(data.number), content: data._log, final: data.final) - else if data[type.singularName()] - @_loadOne(this, type, data) - else if data[type.pluralName()] - @_loadMany(this, type, data) - else - throw "can't load data for #{name}" unless type - - _loadOne: (store, type, json) -> - root = type.singularName() - # we get other types of records only in a few situations and - # it's not always needed to update data, so I'm specyfing which - # things I want to update here: - if type == Travis.Build && (json.repository || json.repo) - @loadIncomplete(Travis.Repo, json.repository || json.repo) - - result = @loadIncomplete(type, json[root]) - if result.id - @find(type, result.id) - - addLoadedData: (type, clientId, hash) -> - id = hash.id - @_loadedData[type.toString()] ||= {} - loadedData = (@_loadedData[type][clientId] ||= []) - - serializer = @get('adapter.serializer') - - Ember.get(type, 'attributes').forEach( (name, meta) -> - value = @extractAttribute(type, hash, name) - if value != undefined - loadedData.pushObject name unless loadedData.contains(name) - , serializer) - - Ember.get(type, 'relationshipsByName').forEach( (name, relationship) -> - key = @_keyForBelongsTo(type, relationship.key) - value = @extractBelongsTo(type, hash, key) - if value != undefined - loadedData.pushObject name unless loadedData.contains(name) - , serializer) - - isDataLoadedFor: (type, clientId, key) -> - if recordsData = @_loadedData[type.toString()] - if data = recordsData[clientId] - data.contains(key) - - loadIncomplete: (type, hash, options) -> - options ?= {} - - id = coerceId hash.id - - typeMap = @typeMapFor(type) - cidToData = @clientIdToData - clientId = typeMap.idToCid[id] - - if clientId && cidToData[clientId] && options.skipIfExists - return - - result = @merge(type, hash, true) - if result && result.clientId - @addLoadedData(type, result.clientId, hash) - #@_updateRelationships(type, hash) - - result - - materializeRecord: (type, clientId, id) -> - record = @_super.apply this, arguments - - if @clientIdToComplete[clientId] != undefined && !@clientIdToComplete[clientId] - record.set 'incomplete', true - else - record.set 'incomplete', false - - record - - _loadMany: (store, type, json) -> - root = type.pluralName() - @adapter.sideload(store, type, json, root) - @loadMany(type, json[root]) - - _updateRelationships: (type, data) -> - Em.get(type, 'relationshipsByName').forEach (key, meta) => - if meta.kind == 'belongsTo' - id = data["#{key}_id"] - if clientId = @typeMapFor(meta.type).idToCid[id] - if parent = this.findByClientId(meta.type, clientId, id) - dataProxy = parent.get('data') - if ids = dataProxy['hasMany'][type.pluralName()] - unless data.id in ids - state = parent.get('stateManager.currentState.path') - unless state == "rootState.loaded.materializing" - parent.send('materializingData') - ids.pushObject(data.id) - parent.notifyPropertyChange('data')