This commit is contained in:
sagie gur ari 2020-07-24 20:57:39 +00:00
parent a9be54d91a
commit 53f8597de9
8 changed files with 26 additions and 25 deletions

View file

@ -1,5 +1,9 @@
## CHANGELOG
### v0.6.3 (2020-07-24)
* Reduce rustc minimal version.
### v0.6.2 (2020-07-24)
* New function <scope> annotation #121

View file

@ -71,6 +71,7 @@ Make sure to add ~/.cargo/bin directory to your PATH variable.
<a name="installation-homebrew"></a>
### Homebrew
```sh
brew install duckscript
```

View file

@ -24,6 +24,13 @@ This will install duckscript script runner, the standard duckscript SDK and the
You should then have a **duck** executable in your ~/.cargo/bin directory.<br>
Make sure to add ~/.cargo/bin directory to your PATH variable.
<a name="installation-homebrew"></a>
### Homebrew
```sh
brew install duckscript
```
<a name="installation-binary-release"></a>
### Binary Release
Binary releases are available in the [github releases page](https://github.com/sagiegurari/duckscript/releases).<br>

View file

@ -2,6 +2,7 @@
* [Overview](#overview)
* [Language Goals](#lang-goals)
* [Installation](#installation)
* [Homebrew](#installation-homebrew)
* [Binary Release](#installation-binary-release)
* [Duckscript Tutorial](#tutorial)
* [Hello World Example](#tutorial-hello-world)

View file

@ -13,21 +13,13 @@
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
</pre><div class="example-wrap"><pre class="rust ">
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn</span> <span class="ident">parse</span>(<span class="ident">string</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">modified_string</span> <span class="op">=</span> <span class="ident">string</span>.<span class="ident">trim</span>();
<span class="kw">if</span> <span class="ident">modified_string</span>.<span class="ident">starts_with</span>(<span class="string">&quot;&lt;&quot;</span>) <span class="kw-2">&amp;</span><span class="op">&amp;</span> <span class="ident">modified_string</span>.<span class="ident">ends_with</span>(<span class="string">&quot;&gt;&quot;</span>) {
<span class="ident">modified_string</span> <span class="op">=</span> <span class="ident">modified_string</span>
.<span class="ident">strip_prefix</span>(<span class="string">&quot;&lt;&quot;</span>)
.<span class="ident">unwrap</span>()
.<span class="ident">strip_suffix</span>(<span class="string">&quot;&gt;&quot;</span>)
.<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">values</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">modified_string</span>
<span class="kw">let</span> <span class="ident">modified_string</span> <span class="op">=</span> <span class="ident">string</span>.<span class="ident">trim</span>();
<span class="kw">let</span> <span class="ident">length</span> <span class="op">=</span> <span class="ident">modified_string</span>.<span class="ident">len</span>();
<span class="kw">if</span> <span class="ident">modified_string</span>.<span class="ident">starts_with</span>(<span class="string">&quot;&lt;&quot;</span>) <span class="kw-2">&amp;</span><span class="op">&amp;</span> <span class="ident">modified_string</span>.<span class="ident">ends_with</span>(<span class="string">&quot;&gt;&quot;</span>) <span class="kw-2">&amp;</span><span class="op">&amp;</span> <span class="ident">length</span> <span class="op">&gt;</span> <span class="number">2</span> {
<span class="kw">let</span> <span class="ident">end</span> <span class="op">=</span> <span class="ident">length</span> <span class="op">-</span> <span class="number">1</span>;
<span class="kw">let</span> <span class="ident">values</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">modified_string</span>[<span class="number">1</span>..<span class="ident">end</span>]
.<span class="ident">split</span>(<span class="string">&#39;,&#39;</span>)
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">item</span><span class="op">|</span> <span class="ident">item</span>.<span class="ident">to_string</span>())
.<span class="ident">collect</span>();

View file

@ -1,6 +1,6 @@
[package]
name = "duckscript_cli"
version = "0.6.2"
version = "0.6.3"
authors = ["Sagie Gur-Ari <sagiegurari@gmail.com>"]
description = "The duckscript command line executable."
license = "Apache-2.0"
@ -28,7 +28,7 @@ path = "src/main.rs"
[dependencies]
duckscript = { version = "^0.5.0", path = "../duckscript" }
duckscriptsdk = { version = "^0.6.2", path = "../duckscript_sdk" }
duckscriptsdk = { version = "^0.6.3", path = "../duckscript_sdk" }
[badges.codecov]
branch = "master"

View file

@ -1,6 +1,6 @@
[package]
name = "duckscriptsdk"
version = "0.6.2"
version = "0.6.3"
authors = ["Sagie Gur-Ari <sagiegurari@gmail.com>"]
description = "The duckscript SDK."
license = "Apache-2.0"

View file

@ -1,13 +1,9 @@
pub(crate) fn parse(string: &str) -> Option<Vec<String>> {
let mut modified_string = string.trim();
if modified_string.starts_with("<") && modified_string.ends_with(">") {
modified_string = modified_string
.strip_prefix("<")
.unwrap()
.strip_suffix(">")
.unwrap();
let values: Vec<String> = modified_string
let modified_string = string.trim();
let length = modified_string.len();
if modified_string.starts_with("<") && modified_string.ends_with(">") && length > 2 {
let end = length - 1;
let values: Vec<String> = modified_string[1..end]
.split(',')
.map(|item| item.to_string())
.collect();