рдмрдЪреНрдЪреЗ: рдордХреНрдЦреА рдкрд░ рдбреЛрдо рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг

рдПрдХ рд╢рд╛рдо рд╢рд░рдж рдЛрддреБ рдХреА рд╢рд╛рдо, рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рд╣реБрдЖ рдХрд┐ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг-рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡рд┐рдХрд╛рд╕ (рдЯреАрдбреАрдбреА) рдХреЗ рдХреИрдирди рдХреЗ рдмрд╛рдж рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХрднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рдкрд░реЗрд╢рд╛рдиреА рд╢реБрд░реВ! рдкрд░рд┐рдгрд╛рдо "JSON рдЗрдирдкреБрдЯ, HTMLElement рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд╕рд┐рд░реНрдл рдПрдХ DOM рдСрдмреНрдЬреЗрдХреНрдЯ" рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдерд╛ред

рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ: CoffeeScript , QUnit , PhantomJS , Google рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░ , рдФрд░ рдпрд╣ рд╕рдм рдЕрдЪреНрдЫреЗ рдкреБрд░рд╛рдиреЗ GNU рдореЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд▓реЗрдЦ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рддрдХрдиреАрдХреЛрдВ рд╕реЗ рд╕рддрд╣реА рд░реВрдк рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд╛рдо рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред


рдкрд░рд┐рдгрд╛рдо рдХреНрдпрд╛ рд╣реИ?


elem = kidomi( ['div#main.content', ['span', {style: {color: 'blue'}}, 'Select file'], ['form', { name: 'inputName', action: 'getform.php', method: 'get'}, 'Username: ', ['input', {'type': 'text', 'name': 'user'}], ['input', {'type': 'submit', 'value': 'Submit'}]]]) 

elem рдПрдХ HTMLElement рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рджрд┐рдЦрддрд╛ рд╣реИ:

 <div id="main" class="content"> <span style="color: blue;">Select file</span> <form name="inputName" action="getform.php" method="get"> Username: <input type="text" name="user"></input> <input type="submit" value="Submit"></input> </form> </div> 

рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рддрддреНрд╡ рдкрд╣рд▓реА рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ , onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
 ,  onclick   ,       : 

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!

, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!

, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!

, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!

, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
 ,  onclick   ,       : 

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
 ,  onclick   ,       : 

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
 ,  onclick   ,       : 

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
 ,  onclick   ,       : 

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!

, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!

, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
 ,  onclick   ,       : 

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
 ,  onclick   ,       : 

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
 ,  onclick   ,       : 

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
  1. , onclick , :

    button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
    jquery-haml , kidomi ClojureScript- dommy .

    -?
    kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

    CoffeeScript
    :

    window['kidomi'] = kidomi = (data) -> ...
    , CoffeeScript: - - . --bare , ?

    (function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

    :

    window['kidomi'] = # window.kidomi =
    Google Closure, "" , window.kidomi =

    , :

    kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

    , , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


    TDD? , - . , TDD !

    , kidomi QUnit . :

    test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

    :

    kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

    , kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

    de=k=function(a){return"string"===typeof a||a instanceof String};
    , . , qunit.js - , test , module , ok .. .

    , , min.js , - . - .

    kidomi 3 :

    kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

    PhantomJS
    , PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


    Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

    Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


    , - . kidomi . . , , !
    !
  2. , onclick , :

    button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
    jquery-haml , kidomi ClojureScript- dommy .

    -?
    kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

    CoffeeScript
    :

    window['kidomi'] = kidomi = (data) -> ...
    , CoffeeScript: - - . --bare , ?

    (function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

    :

    window['kidomi'] = # window.kidomi =
    Google Closure, "" , window.kidomi =

    , :

    kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

    , , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


    TDD? , - . , TDD !

    , kidomi QUnit . :

    test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

    :

    kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

    , kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

    de=k=function(a){return"string"===typeof a||a instanceof String};
    , . , qunit.js - , test , module , ok .. .

    , , min.js , - . - .

    kidomi 3 :

    kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

    PhantomJS
    , PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


    Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

    Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


    , - . kidomi . . , , !
    !
  3. , onclick , :

    button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
    jquery-haml , kidomi ClojureScript- dommy .

    -?
    kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

    CoffeeScript
    :

    window['kidomi'] = kidomi = (data) -> ...
    , CoffeeScript: - - . --bare , ?

    (function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

    :

    window['kidomi'] = # window.kidomi =
    Google Closure, "" , window.kidomi =

    , :

    kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

    , , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


    TDD? , - . , TDD !

    , kidomi QUnit . :

    test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

    :

    kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

    , kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

    de=k=function(a){return"string"===typeof a||a instanceof String};
    , . , qunit.js - , test , module , ok .. .

    , , min.js , - . - .

    kidomi 3 :

    kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

    PhantomJS
    , PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


    Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

    Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


    , - . kidomi . . , , !
    !
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!
, onclick , :

button = kidomi(['a.button', {href: '#'}]); button.onclick = function() { alert('Hello world!'); }; elem = kidomi(['div', ['span', 'Click this button:'], button]);
jquery-haml , kidomi ClojureScript- dommy .

-?
kidomi CoffeeScript. Google Closure (ADVANCED_MODE) . -. .. PhantomJS. make.

CoffeeScript
:

window['kidomi'] = kidomi = (data) -> ...
, CoffeeScript: - - . --bare , ?

(function() { /* ... */ window['kidomi'] = kidomi = function(data) { /* ... */ } /* ... */ }).call(this);

:

window['kidomi'] = # window.kidomi =
Google Closure, "" , window.kidomi =

, :

kidomi.makeElementFromTagData = makeElementFromTagData = (tagData) -> # ... kidomi.addAttributes = addAttributes = (elem, data) -> # ... # ..

, , "" - kidomi . : ( CoffeeScript @name , this.name ). A , . kidomi.functionName .


TDD? , - . , TDD !

, kidomi QUnit . :

test('isString', -> ok(kidomi.isString('')) ok(not kidomi.isString({})) ok(not kidomi.isString([])) ok(not kidomi.isString(10)))

:

kidomi.isString = isString = (s) -> typeof(s) == 'string' or s instanceof(String);

, kidomi.js, Closure kidomi.min.js. - . , kidomi . , isString(s)

de=k=function(a){return"string"===typeof a||a instanceof String};
, . , qunit.js - , test , module , ok .. .

, , min.js , - . - .

kidomi 3 :

kidomi.js. . kidomi.js. . kidomi() kidomi.min.js. .

PhantomJS
, PhantomJS - WebKit JS-API. PhantomJS QUnit : 0 () 1 () . , .


Rake , Maven , Grunt .., "" (, JavaScript). Make , , "!".

Makefile (build targets): ${BUILD_DIR}, $(BUILD_DIR)/kidomi.js $(BUILD_DIR)/kidomi.min.js ( all, clean, .PHONY ..). Makefile' Makefile.testsuite.mk .


, - . kidomi . . , , !
!

Source: https://habr.com/ru/post/In204506/


All Articles