fluentnode
Version:
Fluent apis for node (based on the concepts used in C#'s FluentSharp
553 lines (369 loc) • 19.9 kB
HTML
<html>
<head>
<title>Object.litcoffee</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
<link rel="stylesheet" media="all" href="docco.css" />
</head>
<body>
<div id="container">
<div id="background"></div>
<ul id="jump_to">
<li>
<a class="large" href="javascript:void(0);">Jump To …</a>
<a class="small" href="javascript:void(0);">+</a>
<div id="jump_wrapper">
<div id="jump_page">
<a class="source" href="assert_Array.html">
assert_Array.litcoffee
</a>
<a class="source" href="assert_Boolean.html">
assert_Boolean.litcoffee
</a>
<a class="source" href="assert_Function.html">
assert_Function.litcoffee
</a>
<a class="source" href="assert_Number.html">
assert_Number.litcoffee
</a>
<a class="source" href="assert_Object.html">
assert_Object.litcoffee
</a>
<a class="source" href="assert_String.html">
assert_String.litcoffee
</a>
<a class="source" href="fluentnode.html">
fluentnode.coffee
</a>
<a class="source" href="index.html">
index.md
</a>
<a class="source" href="Array.html">
Array.litcoffee
</a>
<a class="source" href="Boolean.html">
Boolean.litcoffee
</a>
<a class="source" href="Function.html">
Function.litcoffee
</a>
<a class="source" href="Number.html">
Number.litcoffee
</a>
<a class="source" href="Object.html">
Object.litcoffee
</a>
<a class="source" href="String.html">
String.litcoffee
</a>
<a class="source" href="console.html">
console.litcoffee
</a>
<a class="source" href="crypto.html">
crypto.litcoffee
</a>
<a class="source" href="fs.html">
fs.litcoffee
</a>
<a class="source" href="http.GET.html">
http.GET.litcoffee
</a>
<a class="source" href="http.POST.html">
http.POST.litcoffee
</a>
<a class="source" href="http.Server.html">
http.Server.litcoffee
</a>
<a class="source" href="http.html">
http.litcoffee
</a>
<a class="source" href="path.html">
path.litcoffee
</a>
<a class="source" href="process.html">
process.litcoffee
</a>
<a class="source" href="encoding.html">
encoding.litcoffee
</a>
<a class="source" href="globals.html">
globals.litcoffee
</a>
<a class="source" href="assert_Array.test.html">
assert_Array.test.coffee
</a>
<a class="source" href="assert_Boolean.test.html">
assert_Boolean.test.coffee
</a>
<a class="source" href="assert_Function.test.html">
assert_Function.test.coffee
</a>
<a class="source" href="assert_Number.test.html">
assert_Number.test.coffee
</a>
<a class="source" href="assert_Object.test.html">
assert_Object.test.coffee
</a>
<a class="source" href="assert_String.test.html">
assert_String.test.coffee
</a>
<a class="source" href="fluentnode.test.html">
fluentnode.test.coffee
</a>
<a class="source" href="Array.test.html">
Array.test.coffee
</a>
<a class="source" href="Boolean.test.html">
Boolean.test.coffee
</a>
<a class="source" href="Function.test.html">
Function.test.coffee
</a>
<a class="source" href="Number.test.html">
Number.test.coffee
</a>
<a class="source" href="Object.test.html">
Object.test.coffee
</a>
<a class="source" href="String.test.html">
String.test.coffee
</a>
<a class="source" href="console.test.html">
console.test.coffee
</a>
<a class="source" href="crypto.test.html">
crypto.test.coffee
</a>
<a class="source" href="fs.test.html">
fs.test.coffee
</a>
<a class="source" href="http.GET.test.html">
http.GET.test.coffee
</a>
<a class="source" href="http.POST.test.html">
http.POST.test.coffee
</a>
<a class="source" href="http.Server.test.html">
http.Server.test.coffee
</a>
<a class="source" href="http.test.html">
http.test.coffee
</a>
<a class="source" href="path.test.html">
path.test.coffee
</a>
<a class="source" href="process.test.html">
process.test.coffee
</a>
<a class="source" href="encoding.test.html">
encoding.test.coffee
</a>
<a class="source" href="globals.test.html">
globals.test.coffee
</a>
</div>
</li>
</ul>
<ul class="sections">
<li id="title">
<div class="annotation">
<h1>Object.litcoffee</h1>
</div>
</li>
<li id="section-1">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-1">¶</a>
</div>
<p>These Object prototypes have to be written using Object.defineProperty so that we can set the
enumerable value to false (otherwise ‘for item of xyz’ would include these methods)</p>
<p>todo: add check for already mapped methods. once that is done we should be able to add this method safely</p>
<p>@.<strong>str</strong></p>
<p>Returns the <code>toString</code> result of the @ object</p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'str'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function">-></span>
<span class="hljs-keyword">return</span> @.toString()</pre></div></div>
</li>
<li id="section-2">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-2">¶</a>
</div>
<p>@.<strong>json_Str</strong></p>
<p>Returns the JSON.stringify of the @ object</p>
<p>Note: Returns ‘’ if there is a error stringifying @</p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'json_Str'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function">-></span>
<span class="hljs-keyword">try</span>
JSON.stringify(@)
<span class="hljs-keyword">catch</span>
<span class="hljs-string">''</span></pre></div></div>
</li>
<li id="section-3">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-3">¶</a>
</div>
<p>@.<strong>json_Pretty</strong></p>
<p>twin method: json_pretty (legacy)</p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'json_Pretty'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function">-></span>
<span class="hljs-keyword">try</span>
JSON.stringify(@,<span class="hljs-literal">null</span>,<span class="hljs-string">' '</span>)
<span class="hljs-keyword">catch</span>
<span class="hljs-string">''</span>
Object.defineProperty Object.prototype, <span class="hljs-string">'json_pretty'</span>,enumerable : <span class="hljs-literal">false</span>, writable : <span class="hljs-literal">true</span>, <span class="hljs-attribute">value</span>: <span class="hljs-attribute">Object</span>::json_Pretty</pre></div></div>
</li>
<li id="section-4">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-4">¶</a>
</div>
<p><strong>json_Inspect</strong></p>
<p>Returns a json representation of @ (using require(‘util’).inspect which supports recursive objects)</p>
<p>Note: Returns ‘’ if there is a error processing @</p>
<p>twin method: json_inspect (legacy)</p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'json_Inspect'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function">-></span>
<span class="hljs-built_in">require</span>(<span class="hljs-string">'util'</span>).inspect(@)
Object.defineProperty Object.prototype, <span class="hljs-string">'json_inspect'</span>,enumerable : <span class="hljs-literal">false</span>, writable : <span class="hljs-literal">true</span>, <span class="hljs-attribute">value</span>: <span class="hljs-attribute">Object</span>::json_Inspect</pre></div></div>
</li>
<li id="section-5">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-5">¶</a>
</div>
<p><strong>keys</strong></p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'keys'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function">-></span>
<span class="hljs-keyword">return</span> (key <span class="hljs-keyword">for</span> own key <span class="hljs-keyword">of</span> @)</pre></div></div>
</li>
<li id="section-6">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-6">¶</a>
</div>
<p><strong>keys_All</strong></p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'keys_All'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function">-></span>
<span class="hljs-keyword">return</span> (key <span class="hljs-keyword">for</span> key <span class="hljs-keyword">of</span> @)</pre></div></div>
</li>
<li id="section-7">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-7">¶</a>
</div>
<p><strong>values</strong></p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'values'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function">-></span>
<span class="hljs-keyword">return</span> (@[key] <span class="hljs-keyword">for</span> own key <span class="hljs-keyword">of</span> @)</pre></div></div>
</li>
<li id="section-8">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-8">¶</a>
</div>
<p>@.<strong>call_Function</strong></p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'call_Function'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function"><span class="hljs-params">(method, params...)</span>-></span>
callParams = [@]
callParams.push param <span class="hljs-keyword">for</span> param <span class="hljs-keyword">in</span> params
<span class="hljs-keyword">return</span> method.apply(<span class="hljs-literal">null</span>,callParams)</pre></div></div>
</li>
<li id="section-9">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-9">¶</a>
</div>
<p>@.<strong>load_Json</strong> target</p>
<p>Note: returns {} if there is an error parsing @.file_Contents().
Use <strong>json_Valid</strong> to check for valid json content</p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'load_Json'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function"><span class="hljs-params">()</span>-></span>
<span class="hljs-keyword">try</span>
JSON.parse(@.file_Contents())
<span class="hljs-keyword">catch</span>
{}</pre></div></div>
</li>
<li id="section-10">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-10">¶</a>
</div>
<p>@.save_Json target</p>
<p>Note: thows exception if there is a problem parsing json</p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'save_Json'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function"><span class="hljs-params">(target)</span>-></span>
data = JSON.stringify(@,<span class="hljs-literal">null</span>,<span class="hljs-string">' '</span>)
<span class="hljs-keyword">return</span> data.saveAs(target)</pre></div></div>
</li>
<li id="section-11">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-11">¶</a>
</div>
<p><strong>repl_Me</strong></p>
</div>
<div class="content"><div class='highlight'><pre>Object.defineProperty Object.prototype, <span class="hljs-string">'repl_Me'</span>,
enumerable : <span class="hljs-literal">false</span>,
writable : <span class="hljs-literal">true</span>,
<span class="hljs-attribute">value</span>: <span class="hljs-function"><span class="hljs-params">(onExit)</span>-></span>
repl = <span class="hljs-built_in">require</span>(<span class="hljs-string">'repl'</span>)
replServer = repl.start {<span class="hljs-attribute">prompt</span>: <span class="hljs-string">'[fluentnode] repl> '</span>}
replServer.context.that = @
replServer.context.replServer = replServer
replServer.<span class="hljs-literal">on</span> <span class="hljs-string">'exit'</span>, <span class="hljs-function">-></span>
onExit()
replServer</pre></div></div>
</li>
<li id="section-12">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-12">¶</a>
</div>
<hr>
</div>
</li>
<li id="section-13">
<div class="annotation">
<div class="pilwrap ">
<a class="pilcrow" href="#section-13">¶</a>
</div>
<p>back to <a href="index.html">index</a></p>
</div>
</li>
</ul>
</div>
</body>
</html>