From dfa66b7b9f9f32fae556935894867f41627db49d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kol=C3=A1rik?= Date: Fri, 20 Jun 2014 21:18:19 +0200 Subject: [PATCH 1/2] Support for imports via --- index.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index a27afa7..e1624a0 100644 --- a/index.js +++ b/index.js @@ -10,15 +10,15 @@ module.exports = function(file) { var source = '' var stream = through( - function write(buf) { - source += buf + function write(buf) { + source += buf }, function end() { try { var component = parseComponentDefinition(source); var script - if (component.script) { + if (component.script || component.imports.length) { script = [ 'var component = module', component.script @@ -29,6 +29,12 @@ module.exports = function(file) { if (component.css) { script.push('component.exports.css = '+toSource(component.css)) } + if (component.imports.length) { + script.push('component.exports.components = {}') + component.imports.forEach(function (comp) { + script.push('component.exports.components[\'' + comp.name + '\'] = Ractive.extend(require(\'' + comp.href + '\'));') + }) + } this.queue(script.join('\n\n')) } else { script = [] From 5e94d6301c2c2c8a73adae172afa810824429493 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kol=C3=A1rik?= Date: Fri, 20 Jun 2014 22:58:59 +0200 Subject: [PATCH 2/2] Add test, check for component.script --- index.js | 8 ++++---- test/simple.js | 8 ++++++++ test/test3.ract | 2 ++ test/test3.ract-output | 9 +++++++++ 4 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 test/test3.ract create mode 100644 test/test3.ract-output diff --git a/index.js b/index.js index e1624a0..44b5eeb 100644 --- a/index.js +++ b/index.js @@ -19,10 +19,10 @@ module.exports = function(file) { var script if (component.script || component.imports.length) { - script = [ - 'var component = module', - component.script - ] + script = [ 'var component = module' ] + if (component.script) { + script.push(component.script) + } if (component.template) { script.push('component.exports.template = '+toSource(component.template)) } diff --git a/test/simple.js b/test/simple.js index e952b49..375cc66 100644 --- a/test/simple.js +++ b/test/simple.js @@ -36,6 +36,14 @@ test('test2.ract', function(done) { }) }) +test('test3.ract', function(done) { + getTransformedOutput(__dirname+"/test3.ract", function(error, output) { + assert.ifError(error); + assert.equal(output, fs.readFileSync('test/test3.ract-output', 'utf8')) + done() + }) +}) + test('Clock-component.ract', function(done) { getTransformedOutput(__dirname+"/Clock-component.ract", function(error, output) { assert.ifError(error) diff --git a/test/test3.ract b/test/test3.ract new file mode 100644 index 0000000..858bca3 --- /dev/null +++ b/test/test3.ract @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/test/test3.ract-output b/test/test3.ract-output new file mode 100644 index 0000000..8675ba4 --- /dev/null +++ b/test/test3.ract-output @@ -0,0 +1,9 @@ +var component = module + +component.exports.template = [ ] + +component.exports.components = {} + +component.exports.components['MyComponent'] = Ractive.extend(require('./component.ract')); + +component.exports.components['component'] = Ractive.extend(require('./component.ract')); \ No newline at end of file