Skip to content

Commit

Permalink
Refactor js tech to new API, add js-i tech
Browse files Browse the repository at this point in the history
  • Loading branch information
arikon committed Aug 3, 2012
1 parent fdabd46 commit 23cbc25
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 38 deletions.
2 changes: 2 additions & 0 deletions blocks-common/i-bem/bem/techs/js-i.js
@@ -0,0 +1,2 @@
exports.baseTechPath = require('bem').require.resolve('./techs/js-i.js');
exports.techMixin = require('./js.js').techMixin;
82 changes: 44 additions & 38 deletions blocks-common/i-bem/bem/techs/js.js
@@ -1,42 +1,48 @@
var BEM = require('bem'),
myPath = BEM.require('./path'),
Template = BEM.require('./template'),
Js = BEM.require('./legacy-techs/js');

exports.techModule = module;

exports.outFile = Js.outFile;

exports.newFileContent = function (vars) {
vars.BemObj = 'BEM' + (/^i-/.test(vars.BlockName) ? '' : '.DOM');
vars.DeclObj = "'" + vars.BlockName + "'";
if (vars.ModName || vars.ModVal) {
vars.DeclObj = "{ block: " + vars.DeclObj +
(vars.ModName? ", modName: '" + vars.ModName + "'" : '') +
(vars.ModVal? ", modVal: '" + vars.ModVal + "'" : '') +
'}';
Template = BEM.require('./template');

exports.baseTechPath = BEM.require.resolve('./techs/js.js');

exports.techMixin = {

getCreateResult : function(path, suffix, vars) {

vars.BemObj = 'BEM' + (/^i-/.test(vars.BlockName) ? '' : '.DOM');
vars.DeclObj = "'" + vars.BlockName + "'";

if (vars.ModName || vars.ModVal) {
vars.DeclObj = "{ block: " + vars.DeclObj +
(vars.ModName? ", modName: '" + vars.ModName + "'" : '') +
(vars.ModVal? ", modVal: '" + vars.ModVal + "'" : '') +
'}';
}

return Template.process([
'/** @requires BEM */',
'/** @requires {{bemBemObj}} */',
'',
'(function(undefined) {',
'',
"{{bemBemObj}}.decl({{bemDeclObj}}, {",
'',
' onSetMod : {',
'',
" 'js' : function() {",
' /* ... */',
' }',
'',
' }',
'',
'}, {',
'',
' live : function() {',
' /* ... */',
' }',
'',
'});',
'',
'})();'], vars);

}

return Template.process([
'/** @requires {{bemBemObj}} */',
'',
'(function() {',
'',
"{{bemBemObj}}.decl({{bemDeclObj}}, {",
'',
' onSetMod : {',
" 'js' : function() {",
' /* ... */',
' }',
' }',
'',
'}, {',
'',
' live : function() {',
' /* ... */',
' }',
'',
'});',
'',
'})();'], vars);
};

0 comments on commit 23cbc25

Please sign in to comment.