mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-27 09:35:39 -05:00
Finally got the demo view working (mostly). Need to turn off third party ajax requests.
This commit is contained in:
parent
1013f52c14
commit
4932317982
4 changed files with 17 additions and 8 deletions
|
@ -2,7 +2,7 @@ CocoView = require 'views/kinds/CocoView'
|
||||||
template = require 'templates/demo'
|
template = require 'templates/demo'
|
||||||
requireUtils = require 'lib/requireUtils'
|
requireUtils = require 'lib/requireUtils'
|
||||||
|
|
||||||
DEMO_REQUIRE_PREFIX = 'demo/app/'
|
DEMO_REQUIRE_PREFIX = 'test/demo/'
|
||||||
DEMO_URL_PREFIX = '/demo/'
|
DEMO_URL_PREFIX = '/demo/'
|
||||||
|
|
||||||
###
|
###
|
||||||
|
@ -37,7 +37,8 @@ module.exports = DemoView = class DemoView extends CocoView
|
||||||
loadDemoingLibs: ->
|
loadDemoingLibs: ->
|
||||||
@queue = new createjs.LoadQueue()
|
@queue = new createjs.LoadQueue()
|
||||||
@queue.on('complete', @scriptsLoaded, @)
|
@queue.on('complete', @scriptsLoaded, @)
|
||||||
for f in ['jasmine', 'jasmine-html', 'boot', 'mock-ajax', 'demo-app']
|
window.jasmine = {} # so that mock-ajax properly loads. It expects jasmine to be loaded
|
||||||
|
for f in ['mock-ajax', 'demo-app']
|
||||||
@queue.loadFile({
|
@queue.loadFile({
|
||||||
src: "/javascripts/#{f}.js"
|
src: "/javascripts/#{f}.js"
|
||||||
type: createjs.LoadQueue.JAVASCRIPT
|
type: createjs.LoadQueue.JAVASCRIPT
|
||||||
|
@ -64,7 +65,7 @@ module.exports = DemoView = class DemoView extends CocoView
|
||||||
initDemoFiles: ->
|
initDemoFiles: ->
|
||||||
@demoFiles = @getAllDemoFiles()
|
@demoFiles = @getAllDemoFiles()
|
||||||
if @subPath
|
if @subPath
|
||||||
prefix = TEST_REQUIRE_PREFIX + @subPath
|
prefix = DEMO_REQUIRE_PREFIX + @subPath
|
||||||
@demoFiles = (f for f in @demoFiles when f.startsWith prefix)
|
@demoFiles = (f for f in @demoFiles when f.startsWith prefix)
|
||||||
|
|
||||||
runDemo: ->
|
runDemo: ->
|
||||||
|
@ -75,11 +76,13 @@ module.exports = DemoView = class DemoView extends CocoView
|
||||||
if not _.isFunction(demoFunc)
|
if not _.isFunction(demoFunc)
|
||||||
console.error "Demo files must export a function. #{requirePath} does not."
|
console.error "Demo files must export a function. #{requirePath} does not."
|
||||||
return
|
return
|
||||||
|
|
||||||
|
jasmine.Ajax.install()
|
||||||
view = demoFunc()
|
view = demoFunc()
|
||||||
return unless view
|
return unless view
|
||||||
@$el.find('#demo-area').empty().append(view.el)
|
@$el.find('#demo-area').empty().append(view.$el)
|
||||||
# TODO, maybe handle root views differently than modal views differently than everything else?
|
# TODO, maybe handle root views differently than modal views differently than everything else?
|
||||||
|
|
||||||
getAllDemoFiles = ->
|
getAllDemoFiles: ->
|
||||||
allFiles = window.require.list()
|
allFiles = window.require.list()
|
||||||
(f for f in allFiles when f.indexOf('.demo') > -1)
|
(f for f in allFiles when f.indexOf('.demo') > -1)
|
|
@ -5,7 +5,6 @@ startsWith = (string, substring) ->
|
||||||
exports.config =
|
exports.config =
|
||||||
paths:
|
paths:
|
||||||
'public': 'public'
|
'public': 'public'
|
||||||
'watched': ['app', 'test', 'vendor', 'demo', 'bower_components']
|
|
||||||
conventions:
|
conventions:
|
||||||
ignored: (path) -> startsWith(sysPath.basename(path), '_')
|
ignored: (path) -> startsWith(sysPath.basename(path), '_')
|
||||||
sourceMaps: true
|
sourceMaps: true
|
||||||
|
@ -36,7 +35,7 @@ exports.config =
|
||||||
(bower_components[\/\\]aether[\/\\]build[\/\\]aether.js)
|
(bower_components[\/\\]aether[\/\\]build[\/\\]aether.js)
|
||||||
)///
|
)///
|
||||||
'javascripts/test-app.js': /^test[\/\\]app/
|
'javascripts/test-app.js': /^test[\/\\]app/
|
||||||
'javascripts/demo-app.js': /^demo/
|
'javascripts/demo-app.js': /^test[\/\\]demo/
|
||||||
|
|
||||||
order:
|
order:
|
||||||
before: [
|
before: [
|
||||||
|
|
|
@ -17,5 +17,12 @@ class BlandModel extends CocoModel
|
||||||
|
|
||||||
module.exports = ->
|
module.exports = ->
|
||||||
model = new BlandModel({_id:'12345'})
|
model = new BlandModel({_id:'12345'})
|
||||||
new PatchesView(model)
|
v = new PatchesView(model)
|
||||||
|
v.load()
|
||||||
|
|
||||||
|
# doesn't quite work yet. Intercepts a mixpanel request instead
|
||||||
|
r = jasmine.Ajax.requests.mostRecent()
|
||||||
|
r.send({statusCode:200, responseText:"[]"})
|
||||||
|
v.render()
|
||||||
|
v
|
||||||
|
|
Loading…
Reference in a new issue