12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <html>
- <head>
- <style type="text/css">
- <!--
- pre { font-family: monospace; color: #d0d0d0; background-color: #121212; }
- * { font-size: 1em; }
- .Statement { color: #d7005f; font-weight: bold; }
- .String { color: #afaf87; }
- .Conditional { color: #d7005f; font-weight: bold; }
- .Function { color: #87ff00; }
- .Boolean { color: #af5fff; }
- .Operator { color: #d7005f; }
- .LineNr { color: #bcbcbc; background-color: #303030; padding-bottom: 1px; }
- .Keyword { color: #d7005f; font-weight: bold; }
- .Comment { color: #5f5f5f; }
- .Type { color: #5fd7ff; }
- -->
- </style>
- </head>
- <pre id='vimCodeElement'>
- <span id="L1" class="LineNr"> 1 </span><span class="Statement">package</span> main
- <span id="L2" class="LineNr"> 2 </span>
- <span id="L3" class="LineNr"> 3 </span><span class="Statement">import</span> (
- <span id="L4" class="LineNr"> 4 </span> <span class="String">"flow/registry"</span>
- <span id="L5" class="LineNr"> 5 </span> <span class="String">"flowserver"</span>
- <span id="L6" class="LineNr"> 6 </span> <span class="String">"io/ioutil"</span>
- <span id="L7" class="LineNr"> 7 </span> <span class="String">"log"</span>
- <span id="L8" class="LineNr"> 8 </span> <span class="String">"math"</span>
- <span id="L9" class="LineNr"> 9 </span> <span class="String">"net/http"</span>
- <span id="L10" class="LineNr">10 </span> <span class="String">"strings"</span>
- <span id="L11" class="LineNr">11 </span>)
- <span id="L12" class="LineNr">12 </span>
- <span id="L13" class="LineNr">13 </span><span class="Keyword">func</span> <span class="Function">main</span>() {
- <span id="L14" class="LineNr">14 </span>
- <span id="L15" class="LineNr">15 </span> r <span class="Operator">:=</span> registry.New()
- <span id="L16" class="LineNr">16 </span> r.Register(<span class="String">"hello"</span>, <span class="Keyword">func</span>() <span class="Type">string</span> {
- <span id="L17" class="LineNr">17 </span> <span class="Statement">return</span> <span class="String">"hello world"</span>
- <span id="L18" class="LineNr">18 </span> })
- <span id="L19" class="LineNr">19 </span> r.Add(strings.Split, strings.Join)
- <span id="L20" class="LineNr">20 </span>
- <span id="L21" class="LineNr">21 </span> fns, err <span class="Operator">:=</span> r.Add(math.Exp, math.Sin, math.Cos)
- <span id="L22" class="LineNr">22 </span> <span class="Conditional">if</span> err <span class="Operator">!=</span> <span class="Boolean">nil</span> {
- <span id="L23" class="LineNr">23 </span> log.Fatal(err)
- <span id="L24" class="LineNr">24 </span> }
- <span id="L25" class="LineNr">25 </span><span class="Comment"> //Describing groups of functions</span>
- <span id="L26" class="LineNr">26 </span> fns.Tags(<span class="String">"math"</span>)
- <span id="L27" class="LineNr">27 </span> fns.Extra(<span class="String">"style"</span>, registry.M{<span class="String">"color"</span>: <span class="String">"#F00"</span>})
- <span id="L28" class="LineNr">28 </span>
- <span id="L29" class="LineNr">29 </span><span class="Comment"> // Describing a function</span>
- <span id="L30" class="LineNr">30 </span> registry.Describer(
- <span id="L31" class="LineNr">31 </span> r.MustAdd(http.Get).Inputs(<span class="String">"url"</span>),
- <span id="L32" class="LineNr">32 </span> r.MustAdd(responseReader).Inputs(<span class="String">"response"</span>),
- <span id="L33" class="LineNr">33 </span> ).Tags(<span class="String">"http"</span>).Extra(<span class="String">"style"</span>, registry.M{<span class="String">"color"</span>: <span class="String">"#00F"</span>})
- <span id="L34" class="LineNr">34 </span>
- <span id="L35" class="LineNr">35 </span> http.ListenAndServe(<span class="String">":5000"</span>, flowserver.New(r, <span class="String">"storename"</span>))
- <span id="L36" class="LineNr">36 </span>
- <span id="L37" class="LineNr">37 </span>}
- <span id="L38" class="LineNr">38 </span><span class="Keyword">func</span> <span class="Function">responseReader</span>(r <span class="Operator">*</span>http.Response) (<span class="Type">string</span>, <span class="Type">error</span>) {
- <span id="L39" class="LineNr">39 </span> <span class="Statement">defer</span> r.Body.Close()
- <span id="L40" class="LineNr">40 </span> res, err <span class="Operator">:=</span> ioutil.ReadAll(r.Body)
- <span id="L41" class="LineNr">41 </span> <span class="Statement">return</span> <span class="Type">string</span>(res), err
- <span id="L42" class="LineNr">42 </span>}
- </pre>
- <img src="c3.jpg">
- </body>
- </html
|