From ec203fd7a67abc783e54962f66a57639a614ba8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jure=20=C5=A0orn?= Date: Thu, 4 Jul 2019 18:23:53 +0200 Subject: [PATCH] Duck types table --- index.html | 16 ++++++++-------- parse.js | 21 +++++++++++++++++++++ web/script_2.js | 21 +++++++++++++++++++++ 3 files changed, 50 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index a9d40ba..1f00f4b 100644 --- a/index.html +++ b/index.html @@ -1071,14 +1071,14 @@ Z = dataclasses.make_dataclass('Z', [return self.a[i]

Table of provided methods:

-
+------------+----------+------------+----------+--------------+
-|            | iterable | collection | sequence | abc.Sequence |
-+------------+----------+------------+----------+--------------+
-| iter()     |   yes    |    yes     |   yes    |     yes      |
-| len()      |          |    yes     |   yes    |     yes      |
-| getitem()  |          |            |   yes    |     yes      |
-| contains() |          |    yes     |          |     yes      |
-+------------+----------+------------+----------+--------------+
+
┏━━━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━━━━━┓
+┃            │ iterable │ collection │ sequence │ abc.Sequence ┃
+┠────────────┼──────────┼────────────┼──────────┼──────────────┨
+┃ iter()     │    ✓     │     ✓      │    ✓     │      ✓       ┃
+┃ len()      │          │     ✓      │    ✓     │      ✓       ┃
+┃ getitem()  │          │            │    ✓     │      ✓       ┃
+┃ contains() │          │     ✓      │          │      ✓       ┃
+┗━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━━━┛
 

Iterator

class Counter:
diff --git a/parse.js b/parse.js
index a4fe208..e0ba51f 100755
--- a/parse.js
+++ b/parse.js
@@ -140,6 +140,26 @@ const DIAGRAM_5_B =
   "┃  567.89        │  '5.7e+02'   │    '567.89'   │   '5.68e+02'  │  '56789.00%'  ┃\n" +
   "┗━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛\n";
 
+const DIAGRAM_6_A =
+  '+------------+----------+------------+----------+--------------+\n' +
+  '|            | iterable | collection | sequence | abc.Sequence |\n' +
+  '+------------+----------+------------+----------+--------------+\n' +
+  '| iter()     |   yes    |    yes     |   yes    |     yes      |\n' +
+  '| len()      |          |    yes     |   yes    |     yes      |\n' +
+  '| getitem()  |          |            |   yes    |     yes      |\n' +
+  '| contains() |          |    yes     |          |     yes      |\n' +
+  '+------------+----------+------------+----------+--------------+\n';
+
+const DIAGRAM_6_B =
+  '┏━━━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━━━━━┓\n' +
+  '┃            │ iterable │ collection │ sequence │ abc.Sequence ┃\n' +
+  '┠────────────┼──────────┼────────────┼──────────┼──────────────┨\n' +
+  '┃ iter()     │    ✓     │     ✓      │    ✓     │      ✓       ┃\n' +
+  '┃ len()      │          │     ✓      │    ✓     │      ✓       ┃\n' +
+  '┃ getitem()  │          │            │    ✓     │      ✓       ┃\n' +
+  '┃ contains() │          │     ✓      │          │      ✓       ┃\n' +
+  '┗━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━━━┛\n';
+
 
 function main() {
   const html = getMd();
@@ -172,6 +192,7 @@ function switchClassDiagrams(readme) {
   readme = readme.replace(DIAGRAM_3_A, DIAGRAM_3_B)
   readme = readme.replace(DIAGRAM_4_A, DIAGRAM_4_B)
   readme = readme.replace(DIAGRAM_5_A, DIAGRAM_5_B)
+  readme = readme.replace(DIAGRAM_6_A, DIAGRAM_6_B)
   return readme
 }
 
diff --git a/web/script_2.js b/web/script_2.js
index 801bb8c..22cdc65 100644
--- a/web/script_2.js
+++ b/web/script_2.js
@@ -108,6 +108,26 @@ const DIAGRAM_5_B =
   "┃  567.89        │  '5.7e+02'   │    '567.89'   │   '5.68e+02'  │  '56789.00%'  ┃\n" +
   "┗━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━┛\n";
 
+const DIAGRAM_6_A =
+  '+------------+----------+------------+----------+--------------+\n' +
+  '|            | iterable | collection | sequence | abc.Sequence |\n' +
+  '+------------+----------+------------+----------+--------------+\n' +
+  '| iter()     |   yes    |    yes     |   yes    |     yes      |\n' +
+  '| len()      |          |    yes     |   yes    |     yes      |\n' +
+  '| getitem()  |          |            |   yes    |     yes      |\n' +
+  '| contains() |          |    yes     |          |     yes      |\n' +
+  '+------------+----------+------------+----------+--------------+\n';
+
+const DIAGRAM_6_B =
+  '┏━━━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━━━┯━━━━━━━━━━┯━━━━━━━━━━━━━━┓\n' +
+  '┃            │ iterable │ collection │ sequence │ abc.Sequence ┃\n' +
+  '┠────────────┼──────────┼────────────┼──────────┼──────────────┨\n' +
+  '┃ iter()     │    ✓     │     ✓      │    ✓     │      ✓       ┃\n' +
+  '┃ len()      │          │     ✓      │    ✓     │      ✓       ┃\n' +
+  '┃ getitem()  │          │            │    ✓     │      ✓       ┃\n' +
+  '┃ contains() │          │     ✓      │          │      ✓       ┃\n' +
+  '┗━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━━━┛\n';
+
 
 // isFontAvailable:
 (function(d){function c(c){b.style.fontFamily=c;e.appendChild(b);f=b.clientWidth;e.removeChild(b);return f}var f,e=d.body,b=d.createElement("span");b.innerHTML=Array(100).join("wi");b.style.cssText=["position:absolute","width:auto","font-size:128px","left:-99999px"].join(" !important;");var g=c("monospace"),h=c("serif"),k=c("sans-serif");window.isFontAvailable=function(b){return g!==c(b+",monospace")||k!==c(b+",sans-serif")||h!==c(b+",serif")}})(document);
@@ -118,6 +138,7 @@ if (!isFontAvailable('Menlo')) {
   $(`code:contains(${DIAGRAM_3_B})`).html(DIAGRAM_3_A);
   $(`code:contains(${DIAGRAM_4_B})`).html(DIAGRAM_4_A);
   $(`code:contains(${DIAGRAM_5_B})`).html(DIAGRAM_5_A);
+  $(`code:contains(${DIAGRAM_6_B})`).html(DIAGRAM_6_A);
   // var htmlString = $('code:contains(ᴺᴱᵂ)').html().replace(/ᴺᴱᵂ/g, '');
   // $('code:contains(ᴺᴱᵂ)').html(htmlString);
 }