Skip to content

Commit b005fa5

Browse files
committed
Update examples on docs
1 parent bed8ee3 commit b005fa5

File tree

2 files changed

+84
-30
lines changed

2 files changed

+84
-30
lines changed

Scripts/GenerateDocumentation.fsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,7 @@ open FSharp.Data
6767
type FsProj = XmlProvider<"../FSharp.Interop.Dynamic/FSharp.Interop.Dynamic.fsproj">
6868
let fsProj = FsProj.GetSample()
6969

70-
let targetFramework = fsProj.PropertyGroup.TargetFrameworks.Split(';')
71-
|> Seq.find (fun x-> x.Contains("net4"))
70+
let targetFramework = "net45"
7271
let projName = "FSharp.Interop.Dynamic"
7372
let configuration = "Release"
7473
let root = Path.Combine(__SOURCE_DIRECTORY__, "..")

docs/index.html

Lines changed: 83 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,8 @@ <h3 class="muted"><a href="/FSharp.Interop.Dynamic/index.html">FSharp.Interop.Dy
3535
<div class="row">
3636
<div class="span9" id="main">
3737

38-
<p><a href="http://issuestats.com/github/fsprojects/FSharp.Interop.Dynamic"><img src="http://issuestats.com/github/fsprojects/FSharp.Dynamic/badge/issue" alt="Issue Stats" /></a>
39-
<a href="http://issuestats.com/github/fsprojects/FSharp.Interop.Dynamic"><img src="http://issuestats.com/github/fsprojects/FSharp.Dynamic/badge/pr" alt="Issue Stats" /></a></p>
4038
<h1>FSharp.Interop.Dynamic <a href="https://www.nuget.org/packages/FSharp.Interop.Dynamic/"><img src="http://img.shields.io/nuget/v/FSharp.Interop.Dynamic.svg?style=flat" alt="NuGet Status" /></a></h1>
41-
<p>The F# Dynamic Operator, powered by the DLR. Available on .NET Standard 1.6, .NET Framework 4.0 and Portable Class Library Profile 47 (WinRT, .NET 4.5, Silverlight 5)</p>
39+
<p>The F# Dynamic Operator, powered by the DLR. Compiled for .NET Standard 2.0, .NET Standard 1.6, .NET Framework 4.5</p>
4240
<p>Install from <a href="https://nuget.org/packages/FSharp.Interop.Dynamic/">NuGet</a></p>
4341
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
4442
</pre></td>
@@ -50,24 +48,20 @@ <h1>Build Status</h1>
5048
<table>
5149
<thead>
5250
<tr class="header">
53-
<th><p>Platofrm</p></th>
51+
<th><p>Platform</p></th>
5452
<th><p>Status</p></th>
5553
</tr>
5654
</thead>
5755
<tbody>
5856
<tr class="odd">
59-
<td><p>Windows</p></td>
57+
<td><p>Nuget Deployment</p></td>
6058
<td><p><a href="https://ci.appveyor.com/project/jbtule/fsharp-dynamic-832/branch/master"><img src="https://ci.appveyor.com/api/projects/status/tbw9put64a0p3j9o/branch/master?svg=true" alt="Build status" /></a></p></td>
6159
</tr>
6260
<tr class="even">
63-
<td><p>Mac</p></td>
64-
<td><p><a href="https://travis-ci.org/fsprojects/FSharp.Interop.Dynamic"><img src="https://travis-matrix-badges.herokuapp.com/repos/fsprojects/FSharp.Interop.Dynamic/branches/master/2" alt="Build Status" /></a></p></td>
61+
<td><p>Mac/Linux/Windows</p></td>
62+
<td><p><a href="https://github.com/fsprojects/FSharp.Interop.Dynamic/actions?workflow=.NET+Core+CI"><img src="https://github.com/fsprojects/FSharp.Interop.Dynamic/workflows/.NET%20Core%20CI/badge.svg" alt="Action Status" /></a></p></td>
6563
</tr>
6664
<tr class="odd">
67-
<td><p>Linux</p></td>
68-
<td><p><a href="https://travis-ci.org/fsprojects/FSharp.Interop.Dynamic"><img src="https://travis-matrix-badges.herokuapp.com/repos/fsprojects/FSharp.Interop.Dynamic/branches/master/1" alt="Build Status" /></a></p></td>
69-
</tr>
70-
<tr class="even">
7165
<td><p>Coverage</p></td>
7266
<td><p><a href="https://codecov.io/gh/fsprojects/FSharp.Interop.Dynamic"><img src="https://codecov.io/gh/fsprojects/FSharp.Interop.Dynamic/branch/master/graph/badge.svg" alt="codecov" /></a> <a href="https://coveralls.io/github/fsprojects/FSharp.Interop.Dynamic?branch=master"><img src="https://coveralls.io/repos/github/fsprojects/FSharp.Interop.Dynamic/badge.svg?branch=master" alt="Coverage Status" /></a></p></td>
7367
</tr>
@@ -93,31 +87,83 @@ <h3>System.Dynamic</h3>
9387
</code></pre></td>
9488
</tr>
9589
</table>
96-
<h3>SignalR</h3>
90+
<h3>MVC ViewBag</h3>
9791
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
98-
<span class="l">2: </span>
99-
<span class="l">3: </span>
100-
<span class="l">4: </span>
101-
<span class="l">5: </span>
92+
</pre></td>
93+
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="o">x</span><span class="pn">.</span><span class="id">ViewBag</span><span class="o">?</span><span class="id">Name</span><span class="k">&lt;-</span><span class="s">&quot;George&quot;</span>
94+
</code></pre></td>
95+
</tr>
96+
</table>
97+
<h3>Dynamitey</h3>
98+
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l"> 1: </span>
99+
<span class="l"> 2: </span>
100+
<span class="l"> 3: </span>
101+
<span class="l"> 4: </span>
102+
<span class="l"> 5: </span>
103+
<span class="l"> 6: </span>
104+
<span class="l"> 7: </span>
105+
<span class="l"> 8: </span>
106+
<span class="l"> 9: </span>
107+
<span class="l">10: </span>
108+
<span class="l">11: </span>
102109
</pre></td>
103110
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">open</span> <span onmouseout="hideTip(event, 'fs1', 10)" onmouseover="showTip(event, 'fs1', 10)" class="id">FSharp</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs2', 11)" onmouseover="showTip(event, 'fs2', 11)" class="id">Interop</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs3', 12)" onmouseover="showTip(event, 'fs3', 12)" class="id">Dynamic</span>
104-
<span class="k">type</span> <span class="rt">MyHub</span> <span class="o">=</span>
105-
<span class="k">inherit</span> <span class="id">Hub</span>
106-
<span class="k">member</span> <span onmouseout="hideTip(event, 'fs5', 13)" onmouseover="showTip(event, 'fs5', 13)" class="id">x</span><span class="pn">.</span><span class="fn">Send</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs6', 14)" onmouseover="showTip(event, 'fs6', 14)" class="id">name</span> <span class="pn">:</span> <span onmouseout="hideTip(event, 'fs7', 15)" onmouseover="showTip(event, 'fs7', 15)" class="rt">string</span><span class="pn">)</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs8', 16)" onmouseover="showTip(event, 'fs8', 16)" class="id">message</span> <span class="pn">:</span> <span onmouseout="hideTip(event, 'fs7', 17)" onmouseover="showTip(event, 'fs7', 17)" class="rt">string</span><span class="pn">)</span> <span class="o">=</span>
107-
<span class="k">base</span><span class="pn">.</span><span class="id">Clients</span><span class="pn">.</span><span class="id">All</span><span class="o">?</span><span class="id">addMessage</span><span class="pn">(</span><span onmouseout="hideTip(event, 'fs6', 18)" onmouseover="showTip(event, 'fs6', 18)" class="id">name</span><span class="pn">,</span><span onmouseout="hideTip(event, 'fs8', 19)" onmouseover="showTip(event, 'fs8', 19)" class="id">message</span><span class="pn">)</span> <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs9', 20)" onmouseover="showTip(event, 'fs9', 20)" class="fn">ignore</span>
111+
<span class="k">open</span> <span class="id">Dynamitey</span><span class="pn">.</span><span class="id">DynamicObjects</span>
112+
113+
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs5', 13)" onmouseover="showTip(event, 'fs5', 13)" class="id">ComBinder</span> <span class="o">=</span> <span class="id">LateType</span><span class="pn">(</span><span class="s">&quot;System.Dynamic.ComBinder, System.Dynamic, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot;</span><span class="pn">)</span>
114+
115+
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs6', 14)" onmouseover="showTip(event, 'fs6', 14)" class="fn">getPropertyNames</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs7', 15)" onmouseover="showTip(event, 'fs7', 15)" class="id">target</span><span class="pn">:</span><span onmouseout="hideTip(event, 'fs8', 16)" onmouseover="showTip(event, 'fs8', 16)" class="rt">obj</span><span class="pn">)</span> <span class="o">=</span>
116+
<span onmouseout="hideTip(event, 'fs9', 17)" onmouseover="showTip(event, 'fs9', 17)" class="k">seq</span> <span class="pn">{</span>
117+
<span class="k">yield!</span> <span onmouseout="hideTip(event, 'fs7', 18)" onmouseover="showTip(event, 'fs7', 18)" class="fn">target</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs10', 19)" onmouseover="showTip(event, 'fs10', 19)" class="id">GetType</span><span class="pn">(</span><span class="pn">)</span><span class="pn">.</span><span class="id">GetTypeInfo</span><span class="pn">(</span><span class="pn">)</span><span class="pn">.</span><span class="id">GetProperties</span><span class="pn">(</span><span class="pn">)</span><span class="pn">.</span><span class="id">Select</span><span class="pn">(</span><span class="k">fun</span> <span class="id">it</span> <span class="k">-&gt;</span> <span class="id">it</span><span class="pn">.</span><span class="id">Name</span><span class="pn">)</span>
118+
<span class="k">if</span> <span class="pn">(</span><span onmouseout="hideTip(event, 'fs5', 20)" onmouseover="showTip(event, 'fs5', 20)" class="id">ComBinder</span><span class="pn">.</span><span class="id">IsAvailable</span><span class="pn">)</span> <span class="k">then</span>
119+
<span class="k">yield!</span> <span onmouseout="hideTip(event, 'fs5', 21)" onmouseover="showTip(event, 'fs5', 21)" class="id">ComBinder</span><span class="o">?</span><span class="id">GetDynamicDataMemberNames</span><span class="pn">(</span><span onmouseout="hideTip(event, 'fs7', 22)" onmouseover="showTip(event, 'fs7', 22)" class="id">target</span><span class="pn">)</span>
120+
<span class="pn">}</span>
108121
</code></pre></td>
109122
</tr>
110123
</table>
111-
<h3>MVC ViewBag</h3>
124+
<h3>Python Interop</h3>
125+
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l"> 1: </span>
126+
<span class="l"> 2: </span>
127+
<span class="l"> 3: </span>
128+
<span class="l"> 4: </span>
129+
<span class="l"> 5: </span>
130+
<span class="l"> 6: </span>
131+
<span class="l"> 7: </span>
132+
<span class="l"> 8: </span>
133+
<span class="l"> 9: </span>
134+
<span class="l">10: </span>
135+
</pre></td>
136+
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">open</span> <span class="id">Python</span><span class="pn">.</span><span class="id">Runtime</span>
137+
<span class="k">open</span> <span onmouseout="hideTip(event, 'fs1', 23)" onmouseover="showTip(event, 'fs1', 23)" class="id">FSharp</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs2', 24)" onmouseover="showTip(event, 'fs2', 24)" class="id">Interop</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs3', 25)" onmouseover="showTip(event, 'fs3', 25)" class="id">Dynamic</span>
138+
<span class="k">open</span> <span onmouseout="hideTip(event, 'fs1', 26)" onmouseover="showTip(event, 'fs1', 26)" class="id">FSharp</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs2', 27)" onmouseover="showTip(event, 'fs2', 27)" class="id">Interop</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs3', 28)" onmouseover="showTip(event, 'fs3', 28)" class="id">Dynamic</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs11', 29)" onmouseover="showTip(event, 'fs11', 29)" class="id">Operators</span>
139+
<span class="k">do</span>
140+
<span class="k">use</span> <span onmouseout="hideTip(event, 'fs12', 30)" onmouseover="showTip(event, 'fs12', 30)" class="id">__</span> <span class="o">=</span> <span class="id">Py</span><span class="pn">.</span><span class="id">GIL</span><span class="pn">(</span><span class="pn">)</span>
141+
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs13', 31)" onmouseover="showTip(event, 'fs13', 31)" class="id">math</span> <span class="o">=</span> <span class="id">Py</span><span class="pn">.</span><span class="id">Import</span><span class="pn">(</span>
142+
<span onmouseout="hideTip(event, 'fs13', 32)" onmouseover="showTip(event, 'fs13', 32)" class="id">math</span><span class="o">?</span><span onmouseout="hideTip(event, 'fs14', 33)" onmouseover="showTip(event, 'fs14', 33)" class="id">cos</span><span class="pn">(</span><span onmouseout="hideTip(event, 'fs13', 34)" onmouseover="showTip(event, 'fs13', 34)" class="id">math</span><span class="o">?</span><span class="id">pi</span> <span class="o">?*?</span> <span class="n">2</span><span class="pn">)</span> <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs15', 35)" onmouseover="showTip(event, 'fs15', 35)" class="fn">printfn</span>
143+
<span class="k">let</span> <span onmouseout="hideTip(event, 'fs16', 36)" onmouseover="showTip(event, 'fs16', 36)" class="id">sin</span> <span class="o">=</span> <span onmouseout="hideTip(event, 'fs13', 37)" onmouseover="showTip(event, 'fs13', 37)" class="id">math</span><span class="o">?</span><span onmouseout="hideTip(event, 'fs16', 38)" onmouseover="showTip(event, 'fs16', 38)" class="id">sin</span>
144+
<span onmouseout="hideTip(event, 'fs16', 39)" onmouseover="showTip(event, 'fs16', 39)" class="fn">sin</span> <span class="n">5</span> <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs15', 40)" onmouseover="showTip(event, 'fs15', 40)" class="fn">printfn</span>
145+
<span class="id">math</span><span class="o">?</span><span onmouseout="hideTip(event, 'fs14', 41)" onmouseover="showTip(event, 'fs14', 41)" class="id">cos</span><span class="pn">(</span><span class="n">5</span><span class="pn">)</span> <span class="o">?+?</span> <span onmouseout="hideTip(event, 'fs16', 42)" onmouseover="showTip(event, 'fs16', 42)" class="id">sin</span><span class="pn">(</span><span class="n">5</span><span class="pn">)</span> <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs15', 43)" onmouseover="showTip(event, 'fs15', 43)" class="id">printfn</span>
146+
</code></pre></td>
147+
</tr>
148+
</table>
149+
<h3>SignalR (.net framework version)</h3>
112150
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
151+
<span class="l">2: </span>
152+
<span class="l">3: </span>
153+
<span class="l">4: </span>
154+
<span class="l">5: </span>
113155
</pre></td>
114-
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span onmouseout="hideTip(event, 'fs5', 21)" onmouseover="showTip(event, 'fs5', 21)" class="o">x</span><span class="pn">.</span><span class="id">ViewBag</span><span class="o">?</span><span class="id">Name</span><span class="k">&lt;-</span><span class="s">&quot;George&quot;</span>
156+
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="k">open</span> <span onmouseout="hideTip(event, 'fs1', 44)" onmouseover="showTip(event, 'fs1', 44)" class="id">FSharp</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs2', 45)" onmouseover="showTip(event, 'fs2', 45)" class="id">Interop</span><span class="pn">.</span><span onmouseout="hideTip(event, 'fs3', 46)" onmouseover="showTip(event, 'fs3', 46)" class="id">Dynamic</span>
157+
<span class="k">type</span> <span class="id">MyHub</span> <span class="o">=</span>
158+
<span class="k">inherit</span> <span class="id">Hub</span>
159+
<span class="k">member</span> <span class="id">x</span><span class="pn">.</span><span class="id">Send</span> <span class="pn">(</span><span class="id">name</span> <span class="pn">:</span> <span onmouseout="hideTip(event, 'fs17', 47)" onmouseover="showTip(event, 'fs17', 47)" class="id">string</span><span class="pn">)</span> <span class="pn">(</span><span class="id">message</span> <span class="pn">:</span> <span onmouseout="hideTip(event, 'fs17', 48)" onmouseover="showTip(event, 'fs17', 48)" class="id">string</span><span class="pn">)</span> <span class="o">=</span>
160+
<span class="k">base</span><span class="pn">.</span><span class="id">Clients</span><span class="pn">.</span><span class="id">All</span><span class="o">?</span><span class="id">addMessage</span><span class="pn">(</span><span class="id">name</span><span class="pn">,</span><span class="id">message</span><span class="pn">)</span> <span class="o">|&gt;</span> <span onmouseout="hideTip(event, 'fs18', 49)" onmouseover="showTip(event, 'fs18', 49)" class="id">ignore</span>
115161
</code></pre></td>
116162
</tr>
117163
</table>
118164
<h1>Caveats:</h1>
119165
<p>The <code>DLR</code> is incompatible with interface explicit members, so are these operators, <a href="http://stackoverflow.com/questions/22514892/iterate-through-a-dictionary-inserted-in-a-asp-net-mvc4-pages-viewdata-via-f-c">just like C#'s <code>dynamic</code> keyword</a>.</p>
120-
<p><a href="https://github.com/fsprojects/FSharp.Interop.Dynamic/issues/11">.NET Core 2.0.0 to 2.0.2 had a major bug in the C# dynamic keyword with nested classes inside of generic classes.</a>. You will know it from a substring argument length exception. .NET Framework 4.0+, .NET Core 1.x and .NET Core 2.0.3+ are unaffected.</p>
166+
<p><a href="https://github.com/fsprojects/FSharp.Interop.Dynamic/issues/11">.NET Core 2.0.0 to 2.0.2 had a major bug in the C# dynamic keyword with nested classes inside of generic classes.</a>. You will know it from a substring argument length exception. .NET Framework 4.0+, .NET Core 1.x and .NET Core 2.0.3+ and later are unaffected.</p>
121167
<h2>Maintainer(s)</h2>
122168
<ul>
123169
<li><a href="https://github.com/jbtule">@jbtule</a></li>
@@ -129,11 +175,20 @@ <h2>Maintainer(s)</h2>
129175
<div class="tip" id="fs2">namespace FSharp.Interop</div>
130176
<div class="tip" id="fs3">namespace FSharp.Interop.Dynamic</div>
131177
<div class="tip" id="fs4">val ex1 : obj</div>
132-
<div class="tip" id="fs5">val x : MyHub</div>
133-
<div class="tip" id="fs6">val name : string</div>
134-
<div class="tip" id="fs7">Multiple items<br />val string : value:&#39;T -&gt; string<br /><br />--------------------<br />type string = System.String</div>
135-
<div class="tip" id="fs8">val message : string</div>
136-
<div class="tip" id="fs9">val ignore : value:&#39;T -&gt; unit</div>
178+
<div class="tip" id="fs5">val ComBinder : obj</div>
179+
<div class="tip" id="fs6">val getPropertyNames : target:obj -&gt; seq&lt;&#39;a&gt;</div>
180+
<div class="tip" id="fs7">val target : obj</div>
181+
<div class="tip" id="fs8">type obj = System.Object</div>
182+
<div class="tip" id="fs9">Multiple items<br />val seq : sequence:seq&lt;&#39;T&gt; -&gt; seq&lt;&#39;T&gt;<br /><br />--------------------<br />type seq&lt;&#39;T&gt; = System.Collections.Generic.IEnumerable&lt;&#39;T&gt;</div>
183+
<div class="tip" id="fs10">System.Object.GetType() : System.Type</div>
184+
<div class="tip" id="fs11">module Operators<br /><br />from FSharp.Interop.Dynamic</div>
185+
<div class="tip" id="fs12">val __ : &#39;a (requires &#39;a :&gt; System.IDisposable)</div>
186+
<div class="tip" id="fs13">val math : &#39;a</div>
187+
<div class="tip" id="fs14">val cos : value:&#39;T -&gt; &#39;T (requires member Cos)</div>
188+
<div class="tip" id="fs15">val printfn : format:Printf.TextWriterFormat&lt;&#39;T&gt; -&gt; &#39;T</div>
189+
<div class="tip" id="fs16">val sin : value:&#39;T -&gt; &#39;T (requires member Sin)</div>
190+
<div class="tip" id="fs17">Multiple items<br />val string : value:&#39;T -&gt; string<br /><br />--------------------<br />type string = System.String</div>
191+
<div class="tip" id="fs18">val ignore : value:&#39;T -&gt; unit</div>
137192

138193
</div>
139194
<div class="span3">

0 commit comments

Comments
 (0)