ArtSembly
Arturo VM Bytecode assembler for Arturo
What does this package do?
This package features a bytecode "assembler" for the Arturo programming language. In a few words, it allows to write bytecode for the Arturo VM directly, only in a friendly, Assembly-style fashion.
Warning
This package is to be considered mostly an - adventurous - experiment, highlighting what is possible and is not meant to be neither a replacement of Arturo nor a 100% functional bytecode assembler that aims to cover everything!
How do I use it?
All you have to do is import
it and then pass a block (or text) of valid ArtSembly code. The returned value is always a Bytecode object, which means that you can either run it directly (via do
) or manipulate it further, if you wish.
Example
import "artsembly"!
+Artsembly • Arturo Packager ArtSembly
Arturo VM Bytecode assembler for Arturo
What does this package do?This package features a bytecode "assembler" for the Arturo programming language. In a few words, it allows to write bytecode for the Arturo VM directly, only in a friendly, Assembly-style fashion.
Warning
This package is to be considered mostly an - adventurous - experiment, highlighting what is possible and is not meant to be neither a replacement of Arturo nor a 100% functional bytecode assembler that aims to cover everything!
How do I use it?All you have to do is import
it and then pass a block (or text) of valid ArtSembly code. The returned value is always a Bytecode object, which means that you can either run it directly (via do
) or manipulate it further, if you wish.
Exampleimport "artsembly"!
do assemble {
push 0 ; x: 0
@@ -31,7 +31,7 @@
3
4
finished!
-
Available commandsName Arguments Description push
:any push a value onto the stack store
:literal, :string store topmost stack item to given symbol load
:literal, :string push given symbol value to stack call
:literal, :string call given function by name goto
:literal, :string go to given label jmpIf
:literal, :string jump forward to given label if topmost stack value is true jmpIfNot
:literal, :string jump forward to given label if topmost stack value is not true
Tip
As highlighted in the example above, all commands listed here are to be used solely within an assemble
call.
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.3.0 7 May 2024 28664 / 5 files
No dependencies. ArtSembly
Arturo VM Bytecode assembler for Arturo
What does this package do?This package features a bytecode "assembler" for the Arturo programming language. In a few words, it allows to write bytecode for the Arturo VM directly, only in a friendly, Assembly-style fashion.
Warning
This package is to be considered mostly an - adventurous - experiment, highlighting what is possible and is not meant to be neither a replacement of Arturo nor a 100% functional bytecode assembler that aims to cover everything!
How do I use it?All you have to do is import
it and then pass a block (or text) of valid ArtSembly code. The returned value is always a Bytecode object, which means that you can either run it directly (via do
) or manipulate it further, if you wish.
Exampleimport "artsembly"!
+Artsembly • Arturo Packager ArtSembly
Arturo VM Bytecode assembler for Arturo
What does this package do?This package features a bytecode "assembler" for the Arturo programming language. In a few words, it allows to write bytecode for the Arturo VM directly, only in a friendly, Assembly-style fashion.
Warning
This package is to be considered mostly an - adventurous - experiment, highlighting what is possible and is not meant to be neither a replacement of Arturo nor a 100% functional bytecode assembler that aims to cover everything!
How do I use it?All you have to do is import
it and then pass a block (or text) of valid ArtSembly code. The returned value is always a Bytecode object, which means that you can either run it directly (via do
) or manipulate it further, if you wish.
Exampleimport "artsembly"!
do assemble {
push 0 ; x: 0
@@ -31,7 +31,7 @@
3
4
finished!
-
Available commandsName Arguments Description push
:any push a value onto the stack store
:literal, :string store topmost stack item to given symbol load
:literal, :string push given symbol value to stack call
:literal, :string call given function by name goto
:literal, :string go to given label jmpIf
:literal, :string jump forward to given label if topmost stack value is true jmpIfNot
:literal, :string jump forward to given label if topmost stack value is not true
Tip
As highlighted in the example above, all commands listed here are to be used solely within an assemble
call.
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.3.0 7 May 2024 28664 / 5 files
No dependencies. Chess-aware components / custom types,
and more...
What does this package do?This package includes different useful types for chess programming & analysis: pieces, boards, moves, positions, games. It also comes with FEN & PGN parsing/output capabilities and can - potentially - serve as the foundation of other chess-related apps & packages.
How do I use it?Simply import
it and use any of the provided helper functions or types:
import .withHelpers "fianchetto"!
+
+; Let's create a new chess game!
+game: newGame ø!
+
+; What about showing the FEN string?
+print ["Initial FEN:" game\position]
+
+; Make moves using coordinates
+game\makeMove "e2e4"
+game\makeMove "e7e5"
+game\makeMove "g1f3"
+
+; and... let's print board!
+print "Final position:"
+print game\position\board
+
Will produce:
Initial FEN: rnbkqbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBKQBNR w KQkq - 0 1
+Final position:
++---+---+---+---+---+---+---+---+
+| r | n | b | q | k | b | n | r |
+| p | p | p | p | - | p | p | p |
+| - | - | - | - | - | - | - | - |
+| - | - | - | - | p | - | - | - |
+| - | - | - | - | P | - | - | - |
+| - | - | - | - | - | N | - | - |
+| P | P | P | P | - | P | P | P |
+| R | N | B | Q | K | B | - | R |
++---+---+---+---+---+---+---+---+
+
Type reference
chessCoordsMainly used to hold square coordinates, or a file-rank pair.
constructor
+to :chessCoords [coords :string :block :integer]
+
fields\file
\rank
methods\index
chessPieceThe main chess piece representation
constructor
+to :chessPiece [ch :char :literal :string]
+
fields\color
\kind
methods\white?
\getMovePattern [fromSq :chessCoords, toSq :chessCoords]
chessMoveA move type, encapsulating an origin and a target square.
constructor
+to :chessMove [coordset :string :block]
+
fields\fromSq
\toSq
chessBoardThe main chess board
constructor
+to :chessBoard []
+
fields\squares
methods\getPiece [coords :chessCoords]
\setPiece [coords :chessCoords piece :null :chessPiece]
chessPositionA given chess position
constructor
+to :chessPosition [source :string :null]
+
fields\board
\activeColor
\castling
\enPassant
\halfmove
\fullmove
methods\validateMove [newMove :chessMove]
\applyMove [newMove :chessMove]
Tip
You can initialize a :chessPosition
by directly using a FEN string; or exporting a given position back to FEN, using to :string
. 😉
chessGameThe main chess game container
constructor
+to :chessGame [source :string :null]
+
fields\position
\moves
\result
\metadata
methods\makeMove: [coords :chessMove :string]
Warning
Although the future goal of the :chessGame
constructor is to fully support any type of PGN file input, right now support should be considered extremely limited!
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Last updated:
0.0.1 28 November 2024 47311 / 16 files
tabular 0.0.1
\ No newline at end of file
diff --git a/public/_packages/fianchetto/0.0.1/spec b/public/_packages/fianchetto/0.0.1/spec
new file mode 100644
index 0000000..30c851f
--- /dev/null
+++ b/public/_packages/fianchetto/0.0.1/spec
@@ -0,0 +1,19 @@
+name: "fianchetto"
+description: "Chess-aware custom types, FEN/PGN parsing & more"
+license: "MIT"
+author: "drkameleon"
+version: 0.0.1
+url: "https://api.github.com/repos/drkameleon/fianchetto.art/zipball/v0.0.1"
+entry: "src/fianchetto.art"
+executable: false
+depends: [
+ [
+ tabular
+ >=
+ 0.0.1
+ ]
+ ]
+requires: [
+ >
+ 0.9.83
+ ]
\ No newline at end of file
diff --git a/public/_packages/fianchetto/index.html b/public/_packages/fianchetto/index.html
new file mode 100644
index 0000000..073d8a6
--- /dev/null
+++ b/public/_packages/fianchetto/index.html
@@ -0,0 +1,113 @@
+Fianchetto • Arturo Packager Chess-aware components / custom types,
and more...
What does this package do?This package includes different useful types for chess programming & analysis: pieces, boards, moves, positions, games. It also comes with FEN & PGN parsing/output capabilities and can - potentially - serve as the foundation of other chess-related apps & packages.
How do I use it?Simply import
it and use any of the provided helper functions or types:
import .withHelpers "fianchetto"!
+
+; Let's create a new chess game!
+game: newGame ø!
+
+; What about showing the FEN string?
+print ["Initial FEN:" game\position]
+
+; Make moves using coordinates
+game\makeMove "e2e4"
+game\makeMove "e7e5"
+game\makeMove "g1f3"
+
+; and... let's print board!
+print "Final position:"
+print game\position\board
+
Will produce:
Initial FEN: rnbkqbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBKQBNR w KQkq - 0 1
+Final position:
++---+---+---+---+---+---+---+---+
+| r | n | b | q | k | b | n | r |
+| p | p | p | p | - | p | p | p |
+| - | - | - | - | - | - | - | - |
+| - | - | - | - | p | - | - | - |
+| - | - | - | - | P | - | - | - |
+| - | - | - | - | - | N | - | - |
+| P | P | P | P | - | P | P | P |
+| R | N | B | Q | K | B | - | R |
++---+---+---+---+---+---+---+---+
+
Type reference
chessCoordsMainly used to hold square coordinates, or a file-rank pair.
constructor
+to :chessCoords [coords :string :block :integer]
+
fields\file
\rank
methods\index
chessPieceThe main chess piece representation
constructor
+to :chessPiece [ch :char :literal :string]
+
fields\color
\kind
methods\white?
\getMovePattern [fromSq :chessCoords, toSq :chessCoords]
chessMoveA move type, encapsulating an origin and a target square.
constructor
+to :chessMove [coordset :string :block]
+
fields\fromSq
\toSq
chessBoardThe main chess board
constructor
+to :chessBoard []
+
fields\squares
methods\getPiece [coords :chessCoords]
\setPiece [coords :chessCoords piece :null :chessPiece]
chessPositionA given chess position
constructor
+to :chessPosition [source :string :null]
+
fields\board
\activeColor
\castling
\enPassant
\halfmove
\fullmove
methods\validateMove [newMove :chessMove]
\applyMove [newMove :chessMove]
Tip
You can initialize a :chessPosition
by directly using a FEN string; or exporting a given position back to FEN, using to :string
. 😉
chessGameThe main chess game container
constructor
+to :chessGame [source :string :null]
+
fields\position
\moves
\result
\metadata
methods\makeMove: [coords :chessMove :string]
Warning
Although the future goal of the :chessGame
constructor is to fully support any type of PGN file input, right now support should be considered extremely limited!
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Last updated:
0.0.1 28 November 2024 47311 / 16 files
tabular 0.0.1
\ No newline at end of file
diff --git a/public/_packages/fianchetto/spec b/public/_packages/fianchetto/spec
new file mode 100644
index 0000000..30c851f
--- /dev/null
+++ b/public/_packages/fianchetto/spec
@@ -0,0 +1,19 @@
+name: "fianchetto"
+description: "Chess-aware custom types, FEN/PGN parsing & more"
+license: "MIT"
+author: "drkameleon"
+version: 0.0.1
+url: "https://api.github.com/repos/drkameleon/fianchetto.art/zipball/v0.0.1"
+entry: "src/fianchetto.art"
+executable: false
+depends: [
+ [
+ tabular
+ >=
+ 0.0.1
+ ]
+ ]
+requires: [
+ >
+ 0.9.83
+ ]
\ No newline at end of file
diff --git a/public/_packages/grace/0.0.1/index.html b/public/_packages/grace/0.0.1/index.html
index 470c622..1a67115 100644
--- a/public/_packages/grace/0.0.1/index.html
+++ b/public/_packages/grace/0.0.1/index.html
@@ -1,7 +1,7 @@
Grace • Arturo Packager Minimalistic & Lightweight
code editor written in Arturo
What does this package do?This package include a simple code editor, that should by no means be considered anything other than a very draft example of what we could do with Arturo's UI. :-)
How do I use it?Simply import
it and use the included grace
function:
import "grace"!
grace
-
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.1 12 November 2024 10921128 / 482 files
mimetypes 0.0.4
Minimalistic & Lightweight
code editor written in Arturo
What does this package do?This package include a simple code editor, that should by no means be considered anything other than a very draft example of what we could do with Arturo's UI. :-)
How do I use it?Simply import
it and use the included grace
function:
import "grace"!
grace
-
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.1 12 November 2024 10921128 / 482 files
mimetypes 0.0.4
MIME content type registry & recognition
Mimetypes
MIME content type registry & recognition package for Arturo
What does this package do?This package provides an ample (2000+) entry database of MIME content typse and their corresponding extensions and allows to easily look up the suitable extensions by file extension (or file path). It also supports the reverse operation: look up possible mime types, based on a given extension.
Tip
For the data, the package has been based on the very useful list compiled by the mime-db project.
How do I use it?Simply import
it and use the included mimetype
function:
import "mimetypes"!
+Mimetypes • Arturo Packager MIME content type registry & recognition
Mimetypes
MIME content type registry & recognition package for Arturo
What does this package do?This package provides an ample (2000+) entry database of MIME content typse and their corresponding extensions and allows to easily look up the suitable extensions by file extension (or file path). It also supports the reverse operation: look up possible mime types, based on a given extension.
Tip
For the data, the package has been based on the very useful list compiled by the mime-db project.
How do I use it?Simply import
it and use the included mimetype
function:
import "mimetypes"!
mimetype "jpg" ; => ["image/jpeg"]
mimetype "somefile.jpg" ; => ["image/jpeg"]
@@ -6,9 +6,9 @@
mimetype.extensions "image/jpeg"
; => ["jpe","jpeg","jpg"]
-
Important
In case no suitable MIME type has been found for a given extension/path, or if the given MIME type isn't associated with any known extensions, then mimetype
will return an empty block!
Function referencemimetype
Descriptionget mimetype(s) from given extension/filepath
Usage
+
Important
In case no suitable MIME type has been found for a given extension/path, or if the given MIME type isn't associated with any known extensions, then mimetype
will return an empty block!
Function referencemimetype
Descriptionget mimetype(s) from given extension/filepath
Usage
mimetype location :string
-
AttributesOption Type(s) Description extensions get possible file extensions for given mimetype instead
Returns- :block
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.4 30 September 2024 57444 / 6 files 0.0.3 29 April 2024 57029 / 5 files 0.0.2 17 April 2024 56850 / 5 files 0.0.1 17 April 2024 56846 / 5 files
No dependencies. MIME content type registry & recognition
Mimetypes
MIME content type registry & recognition package for Arturo
What does this package do?This package provides an ample (2000+) entry database of MIME content typse and their corresponding extensions and allows to easily look up the suitable extensions by file extension (or file path). It also supports the reverse operation: look up possible mime types, based on a given extension.
Tip
For the data, the package has been based on the very useful list compiled by the mime-db project.
How do I use it?Simply import
it and use the included mimetype
function:
import "mimetypes"!
+Mimetypes • Arturo Packager MIME content type registry & recognition
Mimetypes
MIME content type registry & recognition package for Arturo
What does this package do?This package provides an ample (2000+) entry database of MIME content typse and their corresponding extensions and allows to easily look up the suitable extensions by file extension (or file path). It also supports the reverse operation: look up possible mime types, based on a given extension.
Tip
For the data, the package has been based on the very useful list compiled by the mime-db project.
How do I use it?Simply import
it and use the included mimetype
function:
import "mimetypes"!
mimetype "jpg" ; => ["image/jpeg"]
mimetype "somefile.jpg" ; => ["image/jpeg"]
@@ -6,9 +6,9 @@
mimetype.extensions "image/jpeg"
; => ["jpe","jpeg","jpg"]
-
Important
In case no suitable MIME type has been found for a given extension/path, or if the given MIME type isn't associated with any known extensions, then mimetype
will return an empty block!
Function referencemimetype
Descriptionget mimetype(s) from given extension/filepath
Usage
+
Important
In case no suitable MIME type has been found for a given extension/path, or if the given MIME type isn't associated with any known extensions, then mimetype
will return an empty block!
Function referencemimetype
Descriptionget mimetype(s) from given extension/filepath
Usage
mimetype location :string
-
AttributesOption Type(s) Description extensions get possible file extensions for given mimetype instead
Returns- :block
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.4 30 September 2024 57444 / 6 files 0.0.3 29 April 2024 57029 / 5 files 0.0.2 17 April 2024 56850 / 5 files 0.0.1 17 April 2024 56846 / 5 files
No dependencies. MIME content type registry & recognition
Mimetypes
MIME content type registry & recognition package for Arturo
What does this package do?This package provides an ample (2000+) entry database of MIME content typse and their corresponding extensions and allows to easily look up the suitable extensions by file extension (or file path). It also supports the reverse operation: look up possible mime types, based on a given extension.
Tip
For the data, the package has been based on the very useful list compiled by the mime-db project.
How do I use it?Simply import
it and use the included mimetype
function:
import "mimetypes"!
+Mimetypes • Arturo Packager MIME content type registry & recognition
Mimetypes
MIME content type registry & recognition package for Arturo
What does this package do?This package provides an ample (2000+) entry database of MIME content typse and their corresponding extensions and allows to easily look up the suitable extensions by file extension (or file path). It also supports the reverse operation: look up possible mime types, based on a given extension.
Tip
For the data, the package has been based on the very useful list compiled by the mime-db project.
How do I use it?Simply import
it and use the included mimetype
function:
import "mimetypes"!
mimetype "jpg" ; => ["image/jpeg"]
mimetype "somefile.jpg" ; => ["image/jpeg"]
@@ -6,9 +6,9 @@
mimetype.extensions "image/jpeg"
; => ["jpe","jpeg","jpg"]
-
Important
In case no suitable MIME type has been found for a given extension/path, or if the given MIME type isn't associated with any known extensions, then mimetype
will return an empty block!
Function referencemimetype
Descriptionget mimetype(s) from given extension/filepath
Usage
+
Important
In case no suitable MIME type has been found for a given extension/path, or if the given MIME type isn't associated with any known extensions, then mimetype
will return an empty block!
Function referencemimetype
Descriptionget mimetype(s) from given extension/filepath
Usage
mimetype location :string
-
AttributesOption Type(s) Description extensions get possible file extensions for given mimetype instead
Returns- :block
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.4 30 September 2024 57444 / 6 files 0.0.3 29 April 2024 57029 / 5 files 0.0.2 17 April 2024 56850 / 5 files 0.0.1 17 April 2024 56846 / 5 files
No dependencies. Mimetypes
MIME content type registry & recognition package for Arturo
What does this package do?This package provides an ample (2000+) entry database of MIME content typse and their corresponding extensions and allows to easily look up the suitable extensions by file extension (or file path). It also supports the reverse operation: look up possible mime types, based on a given extension.
Tip
For the data, the package has been based on the very useful list compiled by the mime-db project.
How do I use it?Simply import
it and use the included mimetype
function:
import "mimetypes"!
+Mimetypes • Arturo Packager Mimetypes
MIME content type registry & recognition package for Arturo
What does this package do?This package provides an ample (2000+) entry database of MIME content typse and their corresponding extensions and allows to easily look up the suitable extensions by file extension (or file path). It also supports the reverse operation: look up possible mime types, based on a given extension.
Tip
For the data, the package has been based on the very useful list compiled by the mime-db project.
How do I use it?Simply import
it and use the included mimetype
function:
import "mimetypes"!
mimetype "jpg" ; => ["image/jpeg"]
mimetype "somefile.jpg" ; => ["image/jpeg"]
@@ -6,9 +6,9 @@
mimetype.extensions "image/jpeg"
; => ["jpe","jpeg","jpg"]
-
Important
In case no suitable MIME type has been found for a given extension/path, or if the given MIME type isn't associated with any known extensions, then mimetype
will return an empty block!
Function referencemimetype
Descriptionget mimetype(s) from given extension/filepath
Usage
+
Important
In case no suitable MIME type has been found for a given extension/path, or if the given MIME type isn't associated with any known extensions, then mimetype
will return an empty block!
Function referencemimetype
Descriptionget mimetype(s) from given extension/filepath
Usage
mimetype location :string
-
AttributesOption Type(s) Description extensions get possible file extensions for given mimetype instead best get only best match for given path
Returns- :block
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.4 30 September 2024 57444 / 6 files 0.0.3 29 April 2024 57029 / 5 files 0.0.2 17 April 2024 56850 / 5 files 0.0.1 17 April 2024 56846 / 5 files
No dependencies. Mimetypes
MIME content type registry & recognition package for Arturo
What does this package do?This package provides an ample (2000+) entry database of MIME content typse and their corresponding extensions and allows to easily look up the suitable extensions by file extension (or file path). It also supports the reverse operation: look up possible mime types, based on a given extension.
Tip
For the data, the package has been based on the very useful list compiled by the mime-db project.
How do I use it?Simply import
it and use the included mimetype
function:
import "mimetypes"!
+Mimetypes • Arturo Packager Mimetypes
MIME content type registry & recognition package for Arturo
What does this package do?This package provides an ample (2000+) entry database of MIME content typse and their corresponding extensions and allows to easily look up the suitable extensions by file extension (or file path). It also supports the reverse operation: look up possible mime types, based on a given extension.
Tip
For the data, the package has been based on the very useful list compiled by the mime-db project.
How do I use it?Simply import
it and use the included mimetype
function:
import "mimetypes"!
mimetype "jpg" ; => ["image/jpeg"]
mimetype "somefile.jpg" ; => ["image/jpeg"]
@@ -6,9 +6,9 @@
mimetype.extensions "image/jpeg"
; => ["jpe","jpeg","jpg"]
-
Important
In case no suitable MIME type has been found for a given extension/path, or if the given MIME type isn't associated with any known extensions, then mimetype
will return an empty block!
Function referencemimetype
Descriptionget mimetype(s) from given extension/filepath
Usage
+
Important
In case no suitable MIME type has been found for a given extension/path, or if the given MIME type isn't associated with any known extensions, then mimetype
will return an empty block!
Function referencemimetype
Descriptionget mimetype(s) from given extension/filepath
Usage
mimetype location :string
-
AttributesOption Type(s) Description extensions get possible file extensions for given mimetype instead best get only best match for given path
Returns- :block
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.4 30 September 2024 57444 / 6 files 0.0.3 29 April 2024 57029 / 5 files 0.0.2 17 April 2024 56850 / 5 files 0.0.1 17 April 2024 56846 / 5 files
No dependencies. Lightning-fast command-line benchmarking tool & library
Lightning-fast command-line
benchmarking tool & library for Arturo
What does this package do?This is a benchmarker tool to help you measure and compare different scripts, in an ultra-customizeable way, see the results in an intuitive way and... even export them (Json & Markdown supported so far!) in case you want to keep them for further processing.
Note
Peregrino has shamelessly been inspired by a tool I personally love: Hyperfine. See it mostly as a double personal challenge: a) see how easily this could be done in Arturo, using what we already have, and... b) make something even better and more user-friendly!
How do I use it?Peregrino comes in a hybrid package; that is: you may use it as a library (via import
), or you can actually run it via the command-line, after installing it.
As a libraryimport {peregrino}!
+Peregrino • Arturo Packager Lightning-fast command-line benchmarking tool & library
Lightning-fast command-line
benchmarking tool & library for Arturo
What does this package do?This is a benchmarker tool to help you measure and compare different scripts, in an ultra-customizeable way, see the results in an intuitive way and... even export them (Json & Markdown supported so far!) in case you want to keep them for further processing.
Note
Peregrino has shamelessly been inspired by a tool I personally love: Hyperfine. See it mostly as a double personal challenge: a) see how easily this could be done in Arturo, using what we already have, and... b) make something even better and more user-friendly!
How do I use it?Peregrino comes in a hybrid package; that is: you may use it as a library (via import
), or you can actually run it via the command-line, after installing it.
As a libraryimport {peregrino}!
P: to :peregrino @["command one", "command two"]!
P\benchmark ; and that's it!
@@ -23,8 +23,8 @@
-h, --help Show this help screen
-v, --version Print version
-
Important
Arturo - and thus Peregrino - use the Nim-inspired way of parsing command-line params. Thus, for setting the --run
param, you should use :
before the value, e.g.:
peregrino --run:10 "some command" "another command" ...
-
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.2 22 May 2024 3410518 / 13 files 0.0.1 11 May 2024 3409021 / 12 files
progressive 0.0.3
Lightning-fast command-line
benchmarking tool & library for Arturo
What does this package do?This is a benchmarker tool to help you measure and compare different scripts, in an ultra-customizeable way, see the results in an intuitive way and... even export them (Json & Markdown supported so far!) in case you want to keep them for further processing.
Note
Peregrino has shamelessly been inspired by a tool I personally love: Hyperfine. See it mostly as a double personal challenge: a) see how easily this could be done in Arturo, using what we already have, and... b) make something even better and more user-friendly!
How do I use it?Peregrino comes in a hybrid package; that is: you may use it as a library (via import
), or you can actually run it via the command-line, after installing it.
As a libraryimport {peregrino}!
+Peregrino • Arturo Packager Lightning-fast command-line
benchmarking tool & library for Arturo
What does this package do?This is a benchmarker tool to help you measure and compare different scripts, in an ultra-customizeable way, see the results in an intuitive way and... even export them (Json & Markdown supported so far!) in case you want to keep them for further processing.
Note
Peregrino has shamelessly been inspired by a tool I personally love: Hyperfine. See it mostly as a double personal challenge: a) see how easily this could be done in Arturo, using what we already have, and... b) make something even better and more user-friendly!
How do I use it?Peregrino comes in a hybrid package; that is: you may use it as a library (via import
), or you can actually run it via the command-line, after installing it.
As a libraryimport {peregrino}!
P: to :peregrino @["command one", "command two"]!
P\benchmark ; and that's it!
@@ -23,8 +23,8 @@
-h, --help Show this help screen
-v, --version Print version
-
Important
Arturo - and thus Peregrino - use the Nim-inspired way of parsing command-line params. Thus, for setting the --run
param, you should use :
before the value, e.g.:
peregrino --run:10 "some command" "another command" ...
-
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.2 22 May 2024 3410518 / 13 files 0.0.1 11 May 2024 3409021 / 12 files
progressive 0.0.3
Lightning-fast command-line
benchmarking tool & library for Arturo
What does this package do?This is a benchmarker tool to help you measure and compare different scripts, in an ultra-customizeable way, see the results in an intuitive way and... even export them (Json & Markdown supported so far!) in case you want to keep them for further processing.
Note
Peregrino has shamelessly been inspired by a tool I personally love: Hyperfine. See it mostly as a double personal challenge: a) see how easily this could be done in Arturo, using what we already have, and... b) make something even better and more user-friendly!
How do I use it?Peregrino comes in a hybrid package; that is: you may use it as a library (via import
), or you can actually run it via the command-line, after installing it.
As a libraryimport {peregrino}!
+Peregrino • Arturo Packager Lightning-fast command-line
benchmarking tool & library for Arturo
What does this package do?This is a benchmarker tool to help you measure and compare different scripts, in an ultra-customizeable way, see the results in an intuitive way and... even export them (Json & Markdown supported so far!) in case you want to keep them for further processing.
Note
Peregrino has shamelessly been inspired by a tool I personally love: Hyperfine. See it mostly as a double personal challenge: a) see how easily this could be done in Arturo, using what we already have, and... b) make something even better and more user-friendly!
How do I use it?Peregrino comes in a hybrid package; that is: you may use it as a library (via import
), or you can actually run it via the command-line, after installing it.
As a libraryimport {peregrino}!
P: to :peregrino @["command one", "command two"]!
P\benchmark ; and that's it!
@@ -23,8 +23,8 @@
-h, --help Show this help screen
-v, --version Print version
-
Important
Arturo - and thus Peregrino - use the Nim-inspired way of parsing command-line params. Thus, for setting the --run
param, you should use :
before the value, e.g.:
peregrino --run:10 "some command" "another command" ...
-
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.2 22 May 2024 3410518 / 13 files 0.0.1 11 May 2024 3409021 / 12 files
progressive 0.0.3
Unicode-friendly string case converter
Recase
Unicode-friendly string case converter for Arturo
What does this package do?This package provides an function (recase
) that allows to convert to and from different case styles, with full support of Unicode characters:
- TitleCase
- camelCase
- snake_case
- kebab-case
Important
All whitespace within the string will be stripped, to allow for a more efficient "word" separation.
How do I use it?Simply import
it and use the included recase
function:
import "recase"!
+Recase • Arturo Packager Unicode-friendly string case converter
Recase
Unicode-friendly string case converter for Arturo
What does this package do?This package provides an function (recase
) that allows to convert to and from different case styles, with full support of Unicode characters:
- TitleCase
- camelCase
- snake_case
- kebab-case
Important
All whitespace within the string will be stripped, to allow for a more efficient "word" separation.
How do I use it?Simply import
it and use the included recase
function:
import "recase"!
recase.snake "This is an example"
; => "this_is_an_example"
@@ -7,7 +7,7 @@
; => "printSQL"
Function referencerecase
Descriptionconvert case of given string
Usage
recase str :string
-
AttributesOption Type(s) Description title convert to TitleCase camel convert to camelCase snake convert to snake_case kebab convert to kebab-case
Returns- :string
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.3 2 September 2024 6739 / 5 files 0.0.2 30 April 2024 6444 / 4 files 0.0.1 23 April 2024 6232 / 4 files
No dependencies. Unicode-friendly string case converter
Recase
Unicode-friendly string case converter for Arturo
What does this package do?This package provides an function (recase
) that allows to convert to and from different case styles, with full support of Unicode characters:
- TitleCase
- camelCase
- snake_case
- kebab-case
Important
All whitespace within the string will be stripped, to allow for a more efficient "word" separation.
How do I use it?Simply import
it and use the included recase
function:
import "recase"!
+Recase • Arturo Packager Unicode-friendly string case converter
Recase
Unicode-friendly string case converter for Arturo
What does this package do?This package provides an function (recase
) that allows to convert to and from different case styles, with full support of Unicode characters:
- TitleCase
- camelCase
- snake_case
- kebab-case
Important
All whitespace within the string will be stripped, to allow for a more efficient "word" separation.
How do I use it?Simply import
it and use the included recase
function:
import "recase"!
recase.snake "This is an example"
; => "this_is_an_example"
@@ -7,7 +7,7 @@
; => "printSQL"
Function referencerecase
Descriptionconvert case of given string
Usage
recase str :string
-
AttributesOption Type(s) Description title convert to TitleCase camel convert to camelCase snake convert to snake_case kebab convert to kebab-case
Returns- :string
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.3 2 September 2024 6739 / 5 files 0.0.2 30 April 2024 6444 / 4 files 0.0.1 23 April 2024 6232 / 4 files
No dependencies. Recase
Unicode-friendly string case converter for Arturo
What does this package do?This package provides an function (recase
) that allows to convert to and from different case styles, with full support of Unicode characters:
- TitleCase
- camelCase
- snake_case
- kebab-case
- plain case
Important
All whitespace within the string will be stripped, to allow for a more efficient "word" separation.
How do I use it?Simply import
it and use the included recase
function:
import "recase"!
+Recase • Arturo Packager Recase
Unicode-friendly string case converter for Arturo
What does this package do?This package provides an function (recase
) that allows to convert to and from different case styles, with full support of Unicode characters:
- TitleCase
- camelCase
- snake_case
- kebab-case
- plain case
Important
All whitespace within the string will be stripped, to allow for a more efficient "word" separation.
How do I use it?Simply import
it and use the included recase
function:
import "recase"!
recase.snake "This is an example"
; => "this_is_an_example"
@@ -7,7 +7,7 @@
; => "printSQL"
Function referencerecase
Descriptionconvert case of given string
Usage
recase str :string
-
AttributesOption Type(s) Description title convert to TitleCase camel convert to camelCase snake convert to snake_case kebab convert to kebab-case plain convert to plain case
Returns- :string
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.3 2 September 2024 6739 / 5 files 0.0.2 30 April 2024 6444 / 4 files 0.0.1 23 April 2024 6232 / 4 files
No dependencies. Recase
Unicode-friendly string case converter for Arturo
What does this package do?This package provides an function (recase
) that allows to convert to and from different case styles, with full support of Unicode characters:
- TitleCase
- camelCase
- snake_case
- kebab-case
- plain case
Important
All whitespace within the string will be stripped, to allow for a more efficient "word" separation.
How do I use it?Simply import
it and use the included recase
function:
import "recase"!
+Recase • Arturo Packager Recase
Unicode-friendly string case converter for Arturo
What does this package do?This package provides an function (recase
) that allows to convert to and from different case styles, with full support of Unicode characters:
- TitleCase
- camelCase
- snake_case
- kebab-case
- plain case
Important
All whitespace within the string will be stripped, to allow for a more efficient "word" separation.
How do I use it?Simply import
it and use the included recase
function:
import "recase"!
recase.snake "This is an example"
; => "this_is_an_example"
@@ -7,7 +7,7 @@
; => "printSQL"
Function referencerecase
Descriptionconvert case of given string
Usage
recase str :string
-
AttributesOption Type(s) Description title convert to TitleCase camel convert to camelCase snake convert to snake_case kebab convert to kebab-case plain convert to plain case
Returns- :string
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.3 2 September 2024 6739 / 5 files 0.0.2 30 April 2024 6444 / 4 files 0.0.1 23 April 2024 6232 / 4 files
No dependencies. :states
:states is a basic Finite State Machine (FSM) package for the Arturo Programming language
At a Glance
InspirationThis package was highly inspired by Harrington Joseph's 1 talk "When Booleans Are Not Enough... State Machines?" 2. By consequence, this is inspired by the pytransitions package.
Tip
If you want to know why you need a FSM, I recommend you to watch his talk first.
Trying :statesDefining a finite state-machine is simple like that:
import {states}!
+States • Arturo Packager :states
:states is a basic Finite State Machine (FSM) package for the Arturo Programming language
At a Glance
InspirationThis package was highly inspired by Harrington Joseph's 1 talk "When Booleans Are Not Enough... State Machines?" 2.
By consequence, this is inspired by the pytransitions package.
Tip
If you want to know why you need a FSM, I recommend you to watch his talk first.
Trying :statesDefining a finite state-machine is simple like that:
import {states}!
turnstile: to :states ['locked [
push / locked ~> locked
@@ -6,7 +6,7 @@
insertCoin / locked ~> unlocked
insertCoin / unlocked ~> unlocked
]]
-
Explanation
- The first parameter is the initial state,
- The second parameter is the definition os the transitions, this must follow the following order: event, source, fate, being or not separated by symbols.
- You can choose what symbol to use to separate them, or even choose by don't use them, making this a trilema.
Getting the current state
To get the current state, you must call the state
method:
turnstile\state
+
Explanation
- The first parameter is the initial state,
- The second parameter is the definition os the transitions,
this must follow the following order: event, source, fate, being or not separated by symbols. - You can choose what symbol to use to separate them, or even choose by don't use them, making this a trilema.
Getting the current state
To get the current state, you must call the state
method:
turnstile\state
; => locked
Transitioning between states
There are two equivalent ways of transitioning between states, you can use <fsm>/<event>
or <fsm>\changeFrom '<event>
:
turnstile\state
; => locked
@@ -21,7 +21,7 @@
; => locked
turnstile\changeFrom 'insertCoin
; => unlocked
-
Background photo on "At a Glance" by Jack Anstey on Unsplash
"When Booleans Are Not Enough... State Machines?" by Harrington Joseph can be found in two places, on the Channel Next Day Video Presented on PyTexas 2019 and on the Channel SF Python presented on SF Python Meetup Feb 2019. ↩
Last updated:
0.1.0 11 February 2024 3199822 / 6 files
No dependencies. :states
:states is a basic Finite State Machine (FSM) package for the Arturo Programming language
At a Glance
InspirationThis package was highly inspired by Harrington Joseph's 1 talk "When Booleans Are Not Enough... State Machines?" 2. By consequence, this is inspired by the pytransitions package.
Tip
If you want to know why you need a FSM, I recommend you to watch his talk first.
Trying :statesDefining a finite state-machine is simple like that:
import {states}!
+States • Arturo Packager :states
:states is a basic Finite State Machine (FSM) package for the Arturo Programming language
At a Glance
InspirationThis package was highly inspired by Harrington Joseph's 1 talk "When Booleans Are Not Enough... State Machines?" 2.
By consequence, this is inspired by the pytransitions package.
Tip
If you want to know why you need a FSM, I recommend you to watch his talk first.
Trying :statesDefining a finite state-machine is simple like that:
import {states}!
turnstile: to :states ['locked [
push / locked ~> locked
@@ -6,7 +6,7 @@
insertCoin / locked ~> unlocked
insertCoin / unlocked ~> unlocked
]]
-
Explanation
- The first parameter is the initial state,
- The second parameter is the definition os the transitions, this must follow the following order: event, source, fate, being or not separated by symbols.
- You can choose what symbol to use to separate them, or even choose by don't use them, making this a trilema.
Getting the current state
To get the current state, you must call the state
method:
turnstile\state
+
Explanation
- The first parameter is the initial state,
- The second parameter is the definition os the transitions,
this must follow the following order: event, source, fate, being or not separated by symbols. - You can choose what symbol to use to separate them, or even choose by don't use them, making this a trilema.
Getting the current state
To get the current state, you must call the state
method:
turnstile\state
; => locked
Transitioning between states
There are two equivalent ways of transitioning between states, you can use <fsm>/<event>
or <fsm>\changeFrom '<event>
:
turnstile\state
; => locked
@@ -21,7 +21,7 @@
; => locked
turnstile\changeFrom 'insertCoin
; => unlocked
-
Background photo on "At a Glance" by Jack Anstey on Unsplash
"When Booleans Are Not Enough... State Machines?" by Harrington Joseph can be found in two places, on the Channel Next Day Video Presented on PyTexas 2019 and on the Channel SF Python presented on SF Python Meetup Feb 2019. ↩
Last updated:
0.1.0 11 February 2024 3199822 / 6 files
No dependencies. Feature-rich ASCII table generator
for Arturo
What does this package do?This package includes a simple - but powerful - ASCII table generator, with all the (tabular) bells and whistles, bundled in an easy-to-use package for Arturo.
How do I use it?Simply import
it and use any of the provided helper functions; mainly, one: tabular
.
Tip
The code below generates the exact same tables you may see in the screenshot above^ :wink:
import "tabular"!
+Tabular • Arturo Packager Feature-rich ASCII table generator
for Arturo
What does this package do?This package includes a simple - but powerful - ASCII table generator, with all the (tabular) bells and whistles, bundled in an easy-to-use package for Arturo.
How do I use it?Simply import
it and use any of the provided helper functions; mainly, one: tabular
.
Tip
The code below generates the exact same tables
you may see in the screenshot above^ 😉
import "tabular"!
; A simple table
print tabular [
@@ -34,7 +34,7 @@
]
Function referencetabular
DescriptionCreate a new ASCII table with given rows
Usage
tabular rows :block
-
AttributesOption Type(s) Description header :block set table header columns align :literal, :block set column alignments (single value or array) unicode :logical use Unicode characters padding :integer, :block set custom padding per column (single value or array)
Returns- :string
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.1 20 November 2024 809407 / 9 files
No dependencies. Feature-rich ASCII table generator
for Arturo
What does this package do?This package includes a simple - but powerful - ASCII table generator, with all the (tabular) bells and whistles, bundled in an easy-to-use package for Arturo.
How do I use it?Simply import
it and use any of the provided helper functions; mainly, one: tabular
.
Tip
The code below generates the exact same tables you may see in the screenshot above^ :wink:
import "tabular"!
+Tabular • Arturo Packager Feature-rich ASCII table generator
for Arturo
What does this package do?This package includes a simple - but powerful - ASCII table generator, with all the (tabular) bells and whistles, bundled in an easy-to-use package for Arturo.
How do I use it?Simply import
it and use any of the provided helper functions; mainly, one: tabular
.
Tip
The code below generates the exact same tables
you may see in the screenshot above^ 😉
import "tabular"!
; A simple table
print tabular [
@@ -34,7 +34,7 @@
]
Function referencetabular
DescriptionCreate a new ASCII table with given rows
Usage
tabular rows :block
-
AttributesOption Type(s) Description header :block set table header columns align :literal, :block set column alignments (single value or array) unicode :logical use Unicode characters padding :integer, :block set custom padding per column (single value or array)
Returns- :string
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.1 20 November 2024 809407 / 9 files
No dependencies. Tasks
Tasks is a lean tasking system based on Ruby's Rake
At a Glance
Trying TasksTasks may be splited into two sections: runner and definitions.
The runner is the section responsible to get the user input and then execute the defined tasks. While the definitions are responsible to group the rules and logic of each task.
At your task file, you can do:
import {tasks}!
+Tasks • Arturo Packager Tasks
Tasks is a lean tasking system based on Ruby's Rake
At a Glance
Trying TasksTasks may be splited into two sections: runner and definitions.
The runner is the section responsible to get the user input and then execute the defined tasks.
While the definitions are responsible to group the rules and logic of each task.
At your task file, you can do:
import {tasks}!
; here goes the task definition
runTask "my-task"
And then, runnning with:
arturo tasks.art
-
Tip
You may want to use a hashbang to don't need to call arturo for every run. Try: #! arturo
Tip
To dynamically select the task via CLI, use:
import {tasks}!
+
Tip
You may want to use a hashbang to don't need to call arturo for every run.
Try: #! arturo
Tip
To dynamically select the task via CLI, use:
import {tasks}!
; tasks goes here
@@ -64,7 +64,7 @@
==================================================================================
-
Documentation
RunnerrunTask: $[target :string :literal]
: Runs the target
task
Task Definitiondirectory: $[path :string]
: Creates a directory. The same as write.directory path null
.file: $[filename :string action :block]
: Defines a file. Files may require other files to exist. And also can be threated by other name using .as
..as :literal
: Wraps the file and its requirements into a dictionary: #[file :string requires [:string]]
.requires
: The required files to this file exist. If none is passed, the files depends on itself.
exec $[command :string :literal params :string]
: Executes a command on shell.- alias:
|>
. - OBS.: This function is only available into
action
s from routine
s and task
s.
routine: $[name :string :literal, action :block]
: Defines a :routine
that executes an action
.task: $[name :string :literal, action :block]
: Defines a :task
, every task is a :routine
but executable direclty from the executeTask
..requires [:literal :string :word]
: Defines the required routines to run this..defers [:literal :string :word]
: Defines the required defer routines.
Warning
Never import this lib as .lean
, or this will break the current code. This happens due to the nature of Arturo (being kind-of concatenative).
Screenshot's wallpaper photo by Nick Scheerbart on Unsplash
Last updated:
1.0.0 1 June 2024 4834554 / 8 files
No dependencies. Tasks
Tasks is a lean tasking system based on Ruby's Rake
At a Glance
Trying TasksTasks may be splited into two sections: runner and definitions.
The runner is the section responsible to get the user input and then execute the defined tasks. While the definitions are responsible to group the rules and logic of each task.
At your task file, you can do:
import {tasks}!
+Tasks • Arturo Packager Tasks
Tasks is a lean tasking system based on Ruby's Rake
At a Glance
Trying TasksTasks may be splited into two sections: runner and definitions.
The runner is the section responsible to get the user input and then execute the defined tasks.
While the definitions are responsible to group the rules and logic of each task.
At your task file, you can do:
import {tasks}!
; here goes the task definition
runTask "my-task"
And then, runnning with:
arturo tasks.art
-
Tip
You may want to use a hashbang to don't need to call arturo for every run. Try: #! arturo
Tip
To dynamically select the task via CLI, use:
import {tasks}!
+
Tip
You may want to use a hashbang to don't need to call arturo for every run.
Try: #! arturo
Tip
To dynamically select the task via CLI, use:
import {tasks}!
; tasks goes here
@@ -64,7 +64,7 @@
==================================================================================
-
Documentation
RunnerrunTask: $[target :string :literal]
: Runs the target
task
Task Definitiondirectory: $[path :string]
: Creates a directory. The same as write.directory path null
.file: $[filename :string action :block]
: Defines a file. Files may require other files to exist. And also can be threated by other name using .as
..as :literal
: Wraps the file and its requirements into a dictionary: #[file :string requires [:string]]
.requires
: The required files to this file exist. If none is passed, the files depends on itself.
exec $[command :string :literal params :string]
: Executes a command on shell.- alias:
|>
. - OBS.: This function is only available into
action
s from routine
s and task
s.
routine: $[name :string :literal, action :block]
: Defines a :routine
that executes an action
.task: $[name :string :literal, action :block]
: Defines a :task
, every task is a :routine
but executable direclty from the executeTask
..requires [:literal :string :word]
: Defines the required routines to run this..defers [:literal :string :word]
: Defines the required defer routines.
Warning
Never import this lib as .lean
, or this will break the current code. This happens due to the nature of Arturo (being kind-of concatenative).
Screenshot's wallpaper photo by Nick Scheerbart on Unsplash
Last updated:
1.0.0 1 June 2024 4834554 / 8 files
No dependencies. Unicode -> ASCII converter
Unidecode
Unicode -> ASCII converter package for Arturo
What does this package do?Let's say you have a Unicode string, with different characters, in different languages, e.g. characters with accents, in cyrillic, Mandarin Chinese, etc and - for whatever reason - want to have a close approximation to what it would be like using only ASCII characters, then this package is for you.
Tip
The package has been based on Nim's implementation, of the same name - which in turn has been based on the Python's Unidecode module by Tomaz Solc.
How do I use it?Simply import
it and use the included unidecode
function:
import "unidecode"!
+Unidecode • Arturo Packager Unicode -> ASCII converter
Unidecode
Unicode -> ASCII converter package for Arturo
What does this package do?Let's say you have a Unicode string, with different characters, in different languages, e.g. characters with accents, in cyrillic, Mandarin Chinese, etc and - for whatever reason - want to have a close approximation to what it would be like using only ASCII characters, then this package is for you.
Tip
The package has been based on Nim's implementation, of the same name - which in turn has been based on the Python's Unidecode module by Tomaz Solc.
How do I use it?Simply import
it and use the included unidecode
function:
import "unidecode"!
print unidecode "доброе утро!"
; will print:
; dobroe utro!
-
Important
The package cannot possibly guarantee that the output will be "accurate", not is it 100% easy to say what would be accurate in every possible case - it's an approximate Unicode -> ASCII transformation. So, if you need a better solution for your specific needs, you might be better of writing a custom solution yourself!
LicenseMIT License
Copyright (c) 2024 Yanis Zafirópulos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Last updated:
0.0.3 30 April 2024 239128 / 6 files 0.0.2 12 February 2024 238804 / 5 files 0.0.1 12 February 2024 239214 / 5 files
No dependencies. Unicode -> ASCII converter
Unidecode
Unicode -> ASCII converter package for Arturo
What does this package do?Let's say you have a Unicode string, with different characters, in different languages, e.g. characters with accents, in cyrillic, Mandarin Chinese, etc and - for whatever reason - want to have a close approximation to what it would be like using only ASCII characters, then this package is for you.
Tip
The package has been based on Nim's implementation, of the same name - which in turn has been based on the Python's Unidecode module by Tomaz Solc.
How do I use it?Simply import
it and use the included unidecode
function:
import "unidecode"!
+Unidecode • Arturo Packager Unicode -> ASCII converter
Unidecode
Unicode -> ASCII converter package for Arturo
What does this package do?Let's say you have a Unicode string, with different characters, in different languages, e.g. characters with accents, in cyrillic, Mandarin Chinese, etc and - for whatever reason - want to have a close approximation to what it would be like using only ASCII characters, then this package is for you.