Skip to content

Commit

Permalink
Merge pull request #12772 from emberjs/glimmer-packages
Browse files Browse the repository at this point in the history
Glimmer packages
  • Loading branch information
chancancode committed Jan 29, 2016
2 parents 046e933 + 3d791dd commit b63d5a5
Show file tree
Hide file tree
Showing 8 changed files with 81 additions and 21 deletions.
58 changes: 41 additions & 17 deletions ember-cli-build.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,31 +42,55 @@ function babelConfigFor(environment) {
return { plugins: plugins };
}

var glimmerEngine = require('glimmer-engine/ember-cli-build')();
var find = require('broccoli-stew').find;
var log = require('broccoli-stew').log;

module.exports = function() {
var features = JSON.parse(featuresJson).features;

var vendorPackages = {
'loader': vendoredPackage('loader'),
'rsvp': vendoredES6Package('rsvp'),
'backburner': vendoredES6Package('backburner'),
'router': vendoredES6Package('router.js'),
'dag-map': vendoredES6Package('dag-map'),
'route-recognizer': htmlbarsPackage('route-recognizer', { libPath: 'node_modules/route-recognizer/dist/es6/' }),
'dom-helper': htmlbarsPackage('dom-helper'),
'morph-range': htmlbarsPackage('morph-range'),
'morph-attr': htmlbarsPackage('morph-attr'),
'htmlbars-runtime': htmlbarsPackage('htmlbars-runtime'),
'htmlbars-compiler': htmlbarsPackage('htmlbars-compiler'),
'htmlbars-syntax': htmlbarsPackage('htmlbars-syntax'),
'simple-html-tokenizer': htmlbarsPackage('simple-html-tokenizer'),
'htmlbars-test-helpers': htmlbarsPackage('htmlbars-test-helpers', { singleFile: true }),
'htmlbars-util': htmlbarsPackage('htmlbars-util')
};

var glimmerStatus = features['ember-glimmer'];
if (glimmerStatus === null || glimmerStatus === true) {
vendorPackages['glimmer-engine'] = find(glimmerEngine, {
include: [
'amd/glimmer-common.amd.js',
'amd/glimmer-common.amd.map',
'amd/glimmer-compiler.amd.js',
'amd/glimmer-compiler.amd.map',
'amd/glimmer-runtime.amd.js',
'amd/glimmer-runtime.amd.map',
'amd/glimmer-tests.amd.js',
'amd/glimmer-tests.amd.map'
]
});
}

var emberBuild = new EmberBuild({
babel: {
development: babelConfigFor('development'),
production: babelConfigFor('production')
},
htmlbars: require('htmlbars'),
packages: packages,
vendoredPackages: {
'loader': vendoredPackage('loader'),
'rsvp': vendoredES6Package('rsvp'),
'backburner': vendoredES6Package('backburner'),
'router': vendoredES6Package('router.js'),
'dag-map': vendoredES6Package('dag-map'),
'route-recognizer': htmlbarsPackage('route-recognizer', { libPath: 'node_modules/route-recognizer/dist/es6/' }),
'dom-helper': htmlbarsPackage('dom-helper'),
'morph-range': htmlbarsPackage('morph-range'),
'morph-attr': htmlbarsPackage('morph-attr'),
'htmlbars-runtime': htmlbarsPackage('htmlbars-runtime'),
'htmlbars-compiler': htmlbarsPackage('htmlbars-compiler'),
'htmlbars-syntax': htmlbarsPackage('htmlbars-syntax'),
'simple-html-tokenizer': htmlbarsPackage('simple-html-tokenizer'),
'htmlbars-test-helpers': htmlbarsPackage('htmlbars-test-helpers', { singleFile: true }),
'htmlbars-util': htmlbarsPackage('htmlbars-util')
}
vendoredPackages: vendorPackages
});

return emberBuild.getDistTrees();
Expand Down
3 changes: 2 additions & 1 deletion features.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"ember-contextual-components": true,
"ember-container-inject-owner": true,
"ember-htmlbars-local-lookup": null,
"ember-application-engines": null
"ember-application-engines": null,
"ember-glimmer": null
}
}
15 changes: 14 additions & 1 deletion lib/packages.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
module.exports = {
var fs = require('fs');
var featuresJson = fs.readFileSync('./features.json', { encoding: 'utf8' });
var features = JSON.parse(featuresJson).features;

var packages = {
'container': {trees: null, requirements: []},
'ember-metal': {trees: null, vendorRequirements: ['backburner']},
'ember-metal-views': {trees: null, vendorRequirements: ['dom-helper', 'morph-range', 'morph-attr']},
Expand All @@ -16,3 +20,12 @@ module.exports = {
'ember-application': {trees: null, vendorRequirements: ['dag-map'], requirements: ['ember-routing']},
'ember': {trees: null, requirements: ['ember-application']}
};

var glimmerStatus = features['ember-glimmer'];
if (glimmerStatus === null || glimmerStatus === true) {
packages['ember-glimmer'] = { trees: null, requirements: ['ember-metal'], vendorRequirements: [
'glimmer-engine'
] };
}

module.exports = packages;
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@
"ember-cli-sauce": "^1.4.2",
"ember-cli-yuidoc": "0.7.0",
"ember-publisher": "0.0.7",
"emberjs-build": "0.5.4",
"emberjs-build": "0.6.0",
"express": "^4.5.0",
"finalhandler": "^0.4.0",
"github": "^0.2.3",
"glimmer-engine": "tildeio/glimmer#master",
"glob": "~4.3.2",
"htmlbars": "0.14.13",
"qunit-extras": "^1.4.0",
Expand Down
Empty file.
8 changes: 8 additions & 0 deletions packages/ember-glimmer/tests/dummy_test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
QUnit.module('ember-glimmer: main');

QUnit.test('dummy test', function() {
// The test runner will exit with error if we don't have any tests in the
// package, so this is to convince the runner that everything is okay.
// Remove me once we started testing real things.
ok(true, 'it works');
});
2 changes: 1 addition & 1 deletion testem.dist.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"framework": "qunit",
"test_page": "dist/tests/index.html?hidepassed",
"test_page": "dist/tests/index.html?hidepassed&hideskipped",
"timeout": 540,
"parallel": 4,
"disable_watching": true,
Expand Down
13 changes: 13 additions & 0 deletions tests/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
<meta charset="utf-8">
<title>Ember</title>
<link rel="stylesheet" href="../qunit/qunit.css">
<style type="text/css">
#qunit-tests.hideskipped li.skipped {
display: none;
}
</style>
<script src="../qunit/qunit.js"></script>
<script src="/testem.js"></script>

Expand Down Expand Up @@ -142,6 +147,8 @@

// Tests should time out after 15 seconds
QUnit.config.testTimeout = 15000;
// Hide skipped tests
QUnit.config.urlConfig.push({ id: 'hideskipped', label: "Hide skipped tests"});
// Handle testing feature flags
QUnit.config.urlConfig.push({ id: 'enableoptionalfeatures', label: "Enable Opt Features"});
// Handle extending prototypes
Expand All @@ -151,6 +158,12 @@
// Handle JSHint
QUnit.config.urlConfig.push('nojshint');
QUnit.config.urlConfig.push('forceskip');

QUnit.begin(function() {
if (QUnit.urlParams.hideskipped) {
$('#qunit-tests').addClass('hideskipped');
}
});
})();
</script>

Expand Down

0 comments on commit b63d5a5

Please sign in to comment.