ChanServ changed the topic of #crystal-lang to: The Crystal programming language | | Crystal 0.24.2 | Fund Crystal's development: | GH: | Docs: | API: | Gitter:
<FromGitter> <tgwilliams63> Hi! Had a question on how to handle secrets/settings. Say you want to store a token/secret key, would you rather do that in something like a JSON file and then read the contents in or possibly a separate crystal file and then require it? The doc I'm reading seems to handle it in environment variables but I'm not sure how to set those environment variables just in the vscode project that I'm working with so
<FromGitter> ... I figured a separate file that doesn't get checked into the repo might work best...
<t0nyandre> I use Docker when I create new projects and there it's easy to specify environment variables and I would suggest you try that route ;) Easy as pie :P But .. you can also use a .dotenv file in the root of your project and source that file when you start your server/application
<hightower> bararchy: there is also Dockerfile in
<RX14> cool
<RX14> being able to break the rules is important
<RX14> there's an exception to every rule
<RX14> and the more stuff you ridgidly enforce the harder it is when that exception rers it's head
woodruffw has joined #crystal-lang
woodruffw has joined #crystal-lang
woodruffw has quit [Changing host]
DTZUZU has quit [Quit: WeeChat 1.9]
<FromGitter> <tgwilliams63> @t0nyandre Thanks for the response! I'll take a look at docket and for now use a .dotenv method. Out of curiosity would the format of that file likely be json or something else?
<FromGitter> <t0nyandre> I use docker-compose.yml which is.. yml :-P I can give you the file I use for reference and if you have the docker-compose docs as well you should be golden :-)
<FromGitter> <t0nyandre> U just have to give me a sec to get back to the comp ;-)
<FromGitter> <tgwilliams63> Gotcha! Sorry for such low level questions and thanks for the advice.
<FromGitter> <tgwilliams63> No rush!
<t0nyandre> No question is bad questions :) I am by no means an expert but that's how we learn, I guess :)
<t0nyandre> @tgwilliams63 this is what I use; I have deleted sensitive info and the paths I use but you will figure that one out quickly :P
<t0nyandre> I also did a little shell script to check if deps. are installed so the docker container doesn't fetch all the deps. each time I rebuild the container
<t0nyandre> Hope it helps :) and this site is excellent:
daemonwrangler has quit [Quit: ZNC 1.6.5 -]
daemonwrangler has joined #crystal-lang
<FromGitter> <tgwilliams63> Thank you @t0nyandre! That level of detail is fantastic
<t0nyandre> No problem dude ;) Happy to help =D
<t0nyandre> Good night! Now I will try to get some sleep :)
DTZUZU has joined #crystal-lang
return0e has quit [Ping timeout: 276 seconds]
return0e has joined #crystal-lang
hightower has quit [Remote host closed the connection]
<FromGitter> <Blacksmoke16> there any downside to just using --static on the crystal build, then copy that 1 executable into a scratch docker image vs having deps and such in the container?
<FromGitter> <Blacksmoke16> ```code paste, see link``` []
<FromGitter> <Blacksmoke16> like so
Ven`` has joined #crystal-lang
<FromGitter> <Blacksmoke16> for prod at least, still need to come up with a good dev docker image that reloads app on changes
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
That_Guy_Anon has joined #crystal-lang
ryan_ford has joined #crystal-lang
ryan_ford has left #crystal-lang [#crystal-lang]
_whitelogger has joined #crystal-lang
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 240 seconds]
DTZUZO has quit [Ping timeout: 260 seconds]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 240 seconds]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 276 seconds]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 240 seconds]
That_Guy_Anon has quit [Remote host closed the connection]
alex`` has joined #crystal-lang
alex`` has quit [Ping timeout: 240 seconds]
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 276 seconds]
Papierkorb has joined #crystal-lang
<t0nyandre> I am trying to specify output_style over at (if anyone has used it). But how do I use the enums from libsass? The wrapper has defined alias OutputStyle to make it easier. Might be an easy answer but it's getting me irritated not being able to figure this out :p
<FromGitter> <straight-shoota> @tgwilliams63 @t0nyandre I don't think it's good advice to recommend using docker just for being able to pass in some configuration values. Docker is there to solve entirely different problems and if you don't need otherwise, it makes no sense to use it just to define settings.
<FromGitter> <straight-shoota> Environment variables are usually the best way to go and every IDE should have a way to configure that. You should definitely stay away from embedding secrets into a compiled binary.
<FromGitter> <straight-shoota> @t0nyandre Why do you want to use the enum from libsass?
DTZUZO has joined #crystal-lang
<FromGitter> <straight-shoota> You should be able to pass a value to output_style using `Sass::OutputStyle.from_value(1)`
<t0nyandre> Well, I don't use Docker only for that reason and that's why I also suggested the .env file. I just said what I used as my developer environment. And if you look at the gist I use Docker as my closed environment with PostgreSQL ++ This is so I don't have to install multiple versions of my developer tools
<t0nyandre> Thanks @straight-shoota :) I wanted to use the compressed output
<FromGitter> <greenbigfrog> Why would I be getting sth like: ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ ? []
<FromGitter> <straight-shoota> @t0nyandre `Sass::OutputStyle`?
<FromGitter> <straight-shoota> `Sass::OutputStyle::COMPRESSED`
<FromGitter> <greenbigfrog> oh... apperently I can't use a `$1` in a heredoc SQL string embeded thingie
alex`` has joined #crystal-lang
Papierkorb has left #crystal-lang ["Konversation terminated!"]
snsei has joined #crystal-lang
Ven`` has joined #crystal-lang
snsei has quit [Ping timeout: 276 seconds]
<t0nyandre> @straight-shoota both worked ;) Thanks, man! Still learning the lang :)
rohitpaulk has joined #crystal-lang
snsei has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 256 seconds]
snsei has quit [Ping timeout: 276 seconds]
rohitpaulk has joined #crystal-lang
alex`` has quit [Ping timeout: 276 seconds]
Groogy has quit [Disconnected by services]
Groogy2 is now known as GRoogy
GRoogy is now known as Groogy
<Groogy> Morning! o/
Groogy_ has joined #crystal-lang
rohitpaulk has quit [Read error: Connection reset by peer]
rohitpaulk has joined #crystal-lang
snsei has joined #crystal-lang
snsei has quit [Ping timeout: 276 seconds]
rohitpaulk has quit [Ping timeout: 256 seconds]
rohitpaulk has joined #crystal-lang
<FromGitter> <faustinoaq> Morning Groogy! :D
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
That_Guy_Anon has joined #crystal-lang
<FromGitter> <faustinoaq> Hey community I have a big question about my future as a developer, here I go:
<FromGitter> <faustinoaq> Hi community, I have a big question, in last year I have been collaborating with crystal, scry and amber, and I think they are great tools but I'm afraid I'm too young in the world of software development I mean at university I learnt C/C++, some Java, and Prolog. Also Python/Django and some PHP by myself . I did some webpages with PHP (Wordpress) and Python(Django) in the past. This year I got an
<FromGitter> ... opportunity to work in a project with C# and .Net and I haven't had any problem, the performance hasn't been an issue at all.
<FromGitter> <faustinoaq> What I heard from my coworkers and classmates:
<FromGitter> <faustinoaq> 1) PHP 7 is fast and symphony/laravel are awesome. ⏎ 2) C# and .Net Core are wonderful ⏎ 3) Scala is beautiful ⏎ 4) Java is robust and reliable. ⏎ 5) NodeJS is fast and easy. []
<FromGitter> <faustinoaq> They told me they had bad experiences with Django and Rails in the past because was hard to maintain these kind projects mainly because was difficult to find developers and good support (no performance issues), then they went to Java(JVM)/C#/PHP/Js(Node). I'm afraid I would like these languages/technologies to much because I haven't found issue with them at all.
<FromGitter> <faustinoaq> So, I would like to know, What are your experiences about Java (JVM Languages), C#, PHP and JS (Node.JS) ? 😅
<FromGitter> <faustinoaq> ^ @/all
<oprypin> in order: bad, ok, abysmal, abysmal
<FromGitter> <faustinoaq> Oh, oprypin thank you for your fast reply! 👍
<FromGitter> <faustinoaq> oprypin, Why was JVM ecosystem so bad for you? Just curious 😅
<oprypin> tbh it's mostly java
<FromGitter> <faustinoaq> Oh, ok, BTW, I posted my "big" question on reddit as well, take a look: 😅
<oprypin> :/
<oprypin> thats off topic tho
hightower has joined #crystal-lang
<FromGitter> <faustinoaq> So, should I delete it, Or maybe publish it on other subreddit? WDYT? 😅
<FromGitter> <faustinoaq> I mean actually I'm only confident enough with crystal community, I don't know what other answers I would receive in `r/programming` 😅
<oprypin> i dont know, another subreddit will just be traumatizing
<FromGitter> <faustinoaq> XD
Ven`` has joined #crystal-lang
hightower2 has joined #crystal-lang
hightower has quit [Ping timeout: 240 seconds]
hightower2 has quit [Ping timeout: 256 seconds]
hightower2 has joined #crystal-lang
rohitpaulk has quit [Ping timeout: 276 seconds]
heaven31415 has joined #crystal-lang
<FromGitter> <bararchy> @faustinoaq I think it really matters where you live, in Israel I know C# and python rule supreme, I'm sure in Japan Ruby is much more popular. ⏎ I guess it all depends on the enviromnet and what tech people worked with most the last 5-6 years. ⏎ ⏎ In the last two years we see more and more Go-devs and need for Go developers []
<heaven31415> do you know country where PHP is popular?
<FromGitter> <bararchy> It was popular in Israel 10 years ago, but then better stuff happen, mostly nodejs (don't know if actually better but devs like it more)
<heaven31415> well, my country still loves PHP
<heaven31415> and I'm from Poland if you want to know where people love PHP
<heaven31415> finally, I have generated factorial using macros only
<heaven31415> can I use type restriction for macro arguments?
<FromGitter> <bew> No not yet
<heaven31415> Ok, thank you
<FromGitter> <faustinoaq> @bararchy Thank you for your comment! I really appreciated it 👍
<FromGitter> <faustinoaq> I would say, here in Panama, Java and C# domain the country, mainly because Oracle and Microsoft are so mainstream here. 😅 ⏎ ⏎ PHP is used as well. Python and NodeJS are gaining track. ⏎ ⏎ Just a few developers are using Ruby here in Panama 😅 []
duane has joined #crystal-lang
alex`` has joined #crystal-lang
alex`` has quit [Ping timeout: 240 seconds]
<Groogy> is it possible with the GZip class to just pass it text instead of a file and still have it write to a seperate file internally? So I don't need to create intermediary files
<oprypin> probably
<Groogy> trying to figure out how though :/ don't see anything blatantly obvious
<oprypin> i dont quite see what you mean
<oprypin> from a string in memory, create a slice , gzip compressed?
<oprypin> you just work with IO::Memory
<oprypin> on both ends
<Groogy> yeah but how do I make "this piece go to this file in the archive and this other piece to another file in the archive
<Groogy> or maybe it doesn't support that
<oprypin> Groogy, gzip compresses a stream, it's not an archive with fileS
<Groogy> bah
<Groogy> yeah forgot it's tarballs that are archives
<Groogy> not .gz
<Groogy> ah duh should have just looked further down, there's a zip module
<heaven31415> Is there a website like pastebin which support Crystal?
<Groogy> supports it
<heaven31415> thanks dude
<FromGitter> <sdogruyol> ?
Jens_ has joined #crystal-lang
<heaven31415> ohh, it also a good idea thanks
<heaven31415> what am I missing with this array example? (it's from docs)
alex`` has joined #crystal-lang
<Groogy> they are all the same array
<Groogy> the second argument takes an object to place in each slot
<Groogy> so since you provide it with an object it will take the reference and put it in each
<Groogy> ary = { }
<Groogy> that will make each entry be unique
<heaven31415> ohh, that makes sense now
<FromGitter> <bararchy> @faustinoaq All in all, as long as you are working remote, or, working freelance it doesn't really matter what lang you use, except when client asks for a specific one, which I never see happening
<heaven31415> thank you, once again Groogy :P
duane has quit [Ping timeout: 260 seconds]
<Groogy> no prob!
<Groogy> I gotten trapped by that couple of times, takes some time to get used to in how you deal with it if you come from languages like C++
<oprypin> heaven31415, also
heaven31415 has quit [Ping timeout: 248 seconds]
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Ven`` has joined #crystal-lang
Ven`` has quit [Client Quit]
<FromGitter> <faustinoaq> @bararchy Oh, ok, I haven't had a remote job yet. Well, I guess I need to improve my skills and give a try 👍
Jenz has joined #crystal-lang
<crystal-gh> [crystal] jirutka opened pull request #5859: Fix redirect to stderr in Makefile to be more portable (master...fix-makefile-stderr)
<crystal-gh> [crystal] jirutka opened pull request #5860: Makefile: Allow to add EXTRA_FLAGS to FLAGS (master...makefile-extra-flags)
<RX14> i hate windows so much
<RX14> i'm having to stuff like 3 structs inside File::Info
<Groogy> hmm how do I write a string to IO#write_bytes?
<Groogy> or well kinda unnessecary probably
<FromGitter> <bararchy> string.to_slice will produce Bytes of the string
<jhass> but that's just the same as just doing io << string
<Groogy> yeah probably fine though
<Groogy> need to setup some kind of delimiter in the binary though
<jhass> you can totally intermix all IO methods
<jhass> they're all just wrappers around #read(Bytes) or #write(Bytes) respectively
<Groogy> yeah but I mean for the strings
<RX14> Groogy, what are you trying to do?
<jhass> the two typical methods are to either write the length first or a null byte after
<Groogy> no just serializing the game state
<Groogy> and the map data is a bit too big to have in yaml
<RX14> and length is better
<Groogy> the strings are just "this key on this index" map for when new terrains are added so it doesn't matter and won't break the serialization when things get changed
<RX14> strings are way better for speed
<RX14> since you know the correct size of memory to allocate for the string before you read it
<RX14> with null terminator you need a resizing buffer
<RX14> s/strings/length/
<Groogy> yeah no will be doing that
<FromGitter> <bararchy> I usually do this for TCP calls ⏎ ⏎ ```10 ⏎ \r\n ⏎ \r\n ⏎ hello world``` []
Ven`` has joined #crystal-lang
<RX14> that's going to be super slow
<RX14> I imagine groogy was thinking of a binary protocol
<FromGitter> <bararchy> why? ⏎ ⏎ gets(1024, "\r\n\r\n")
<FromGitter> <bararchy> Oh
<RX14> because it's encoding the numbers in ascii
<FromGitter> <bararchy> yeha, I get you
<RX14> because there's no need for any \r\n because you KNOW the number is 4 bytes long
<FromGitter> <bararchy> I wasn't thinking about binary payloads
<RX14> so you just read 4 bytes in whatever endianness, then read that number more bytes
<RX14> and boom string
<Groogy> yepp
<RX14> len = io.read_bytes(UInt32); str = { |str| IO.copy(io, str, len) }
<FromGitter> <bararchy> you can use cannon btw
alex`` has quit [Quit: WeeChat 2.0.1]
<FromGitter> <bararchy> RX14 ^ this is a nice example
<RX14> lol File::Info needs to be mutable on windows
<RX14> this is fucking crazy
alex`` has joined #crystal-lang
Jenz has quit [Quit: leaving]
heaven31415 has joined #crystal-lang
<Groogy> wat xD
<Groogy> dat pr
<heaven31415> what is going on with this pr
<Groogy> how do I know if I am at the end of an IO? there's no #eof?
<RX14> no
<RX14> you get 0 from read
<RX14> a nil from read-byte
<RX14> or an eofexception
<RX14> depending on the docs for how you're reading
<RX14> because you can't ever test for eof without reading data
<Groogy> ah so just keep reading I guess then until I get to the end
<RX14> yes
<RX14> stuff like
<RX14> while > 0
<RX14> or
<RX14> until == 0
<RX14> or while byte = io.read_byte
<Groogy> it doesn't defined what read_byte will return on failure
<Groogy> I guess exception?
<RX14> no
<RX14> read_byte returns UInt8?
<Groogy> ni I meant when it reaches EOF
<Groogy> but it raises EOFError from what I can see (it uses read_fully underneath)
alex`` has quit [Quit: WeeChat 2.0.1]
Jens_ has quit [Ping timeout: 256 seconds]
<FromGitter> <faustinoaq> ^ Seems Kotlin can be use anywhere 😅
<FromGitter> <faustinoaq> ^ Even on iOS
<heaven31415> can I use Crystal as a backend for some web application like blog or forum?
<FromGitter> <faustinoaq> heaven31415 Yeah
<heaven31415> any tips how and where to start?
<FromGitter> <nsrtky> hi when we will have crystall on windows
<FromGitter> <nsrtky> ?
<FromGitter> <faustinoaq> Well, we have three main frameworks right now, you can go with raw-crystal ( or...
<FromGitter> <faustinoaq> @nsrtky RX14 is working on it 💪
<jhass> I'm sure you can help ;)
<heaven31415> thanks faustinoaq
<hightower2> heaven31415, see
<FromGitter> <faustinoaq> > we have three main frameworks ⏎ ⏎ 1) Kemal: micro-framework simple and very useful to create APIs and apps in an unopinionated way ⏎ 2) Amber: is a full framework with a great CLI, creating a blog very easy `amber new blog` ⏎ 3) Lucky: is a new framework concept, coding all with crystal, both front-end and back-end: ...
<heaven31415> how can I write front-end with crystal?
<heaven31415> my code is translated to html/css/js?
<FromGitter> <faustinoaq> hightower2, Yeah that's a good introduction, I think Amber would be pretty familiar to rails developers, the documentation needs to be improved, though
<FromGitter> <faustinoaq> heaven31415, With Lucky you write crystal instead of html (1), I guess you still need to write CSS/JS by yourself 😅 ⏎ ⏎ ⏎ ⏎ /cc @paulcsmith []
<heaven31415> that is really cool
<FromGitter> <nsrtky> what about webassembly ? will crystall support wasm ?
<FromGitter> <faustinoaq> heaven31415, Oh, there is Mint Lang ( as well, is a nice language written in crystal, that aims to be front-end oriented, so would be easy to create fast and reliable SPA and Progressive Web Apps ()
<heaven31415> thank you, I think I will try amber first, it looks more mature than other frameworks
<FromGitter> <faustinoaq> @nsrtky Crystal is based on LLVM, so I think is possible, there is an issue about that, see: and
<That_Guy_Anon> "Generate beatuifl" :catnose:
<Yxhvd> nsrtky: generally speaking, currently languages that use a GC is not viable in wasm. Eventually I expect that to get solved, but don't hold your breath.
<That_Guy_Anon> well if crystal gets enough steam behind it and actually starts getting used in the web wouldn't browsers probably support it without wasm inbetween? (me no idea abotu anything webdev)
<FromGitter> <faustinoaq> Yxhvd, Oh... the GC..I forgot it, well I guess you're right :)
<Yxhvd> That_Guy_Anon: no. Java tried that. It failed.
<Yxhvd> and java is a lot better suited for that
<That_Guy_Anon> interesting, is there a good read on why it failed?
<That_Guy_Anon> as i said, i am not really into webdevelopment, so i have no idea about the ecosystem or however you want to call it
<jhass> I guess because it was a plugin, so painful to install. Then because the JVM takes forever to boot and finally since it was quite the security nightmare too
<jhass> since it operated besides the browser sandbox, while webasm operates within
Jens_ has joined #crystal-lang
<jhass> also there's really no reason to sidestep webasm, it's built for exactly this
<FromGitter> <faustinoaq> heaven31415, Oh, nice, if you gonna try amber first, try `amber new blog --database sqlite --deps` so you will be able to use it locally. If you have some error, please check amber's gitter room ( most errors are because a missing dependency like openssl, git, sqlite and others. see:
<lvmbdv> is there a crystal equivalent of python's struct for serializing objects into binary strings?
Jens_ has left #crystal-lang [#crystal-lang]
<heaven31415> okey, gonna follow your tip
heaven31415 has quit [Quit: - Chat comfortably. Anywhere.]
<FromGitter> <nsrtky> @faustinoaq sound good for mint-lang l have read web sites its so clean thank you informing but it has not github and not open source ? and also does not have windows working enviorment?
<FromGitter> <nsrtky> @FromIRC Blazor uses Mono and it have GC . I think microsoft is going to solve wasm and make it work .net codes work at bromser as native...
<FromGitter> <faustinoaq> lvmbdv, Did you try
<lvmbdv> yeah i have seen it but not quite what i need
<lvmbdv> i found something on the stdlib tho
<lvmbdv> i could use IO::read_bytes
<lvmbdv> faustinoaq thank you btw
<FromGitter> <faustinoaq> @nsrtky Almost all these projects are open-source, and are published on github, windows support isn't available yet, because is a big work in progress. ⏎ ⏎ I think is unfair to comparing us with Mono, is a pretty different technology, also Microsoft is a big company they have been improving their technologies over decades in contrast Crystal community is very young but with a great language and nice
<FromGitter> ... developers joining us everyday :)
<FromGitter> <faustinoaq> lvmbdv 👍
<crystal-gh> [crystal] RX14 pushed 1 new commit to master:
<crystal-gh> crystal/master 9adbb92 Jakub Jirutka: Makefile: Fix redirect to stderr to be more portable (#5859)...
<FromGitter> <nsrtky> yes l liked the crystall and want to use it in my self projects so that asking :) hope it will be great for future by the wat i am one of the developers anymore for crystall
<That_Guy_Anon> nsrtky this is the mint repo. but yeah it is a bit hidden on the webside
heaven31415 has joined #crystal-lang
<lvmbdv> why can i not mark class methods as abstract?
<lvmbdv> also "can't define abstract def on metaclass" is an ambigious error since metaclass is not a very documented term
<travis-ci> crystal-lang/crystal#9adbb92 (master - Makefile: Fix redirect to stderr to be more portable (#5859)): The build passed.
<DeBot> (Fix redirect to stderr in Makefile to be more portable)
heaven31415 has quit [Quit: - Chat comfortably. Anywhere.]
alex`` has joined #crystal-lang
Jenz has joined #crystal-lang
Jenz has quit [Quit: leaving]
Jenz has joined #crystal-lang
hightower2 has quit [Ping timeout: 240 seconds]
Jenz has quit [Quit: leaving]
hightower2 has joined #crystal-lang
hightower2 has quit [Ping timeout: 276 seconds]
alex`` has quit [Ping timeout: 240 seconds]
heaven31415 has joined #crystal-lang
_whitelogger has joined #crystal-lang
heaven31415 has quit [Ping timeout: 260 seconds]
mooe has joined #crystal-lang
<FromGitter> <xmonader> What's the most mature IDE/editor support? key feature is auto completion
Groogy has quit [Quit: WeeChat 2.0.1]
<FromGitter> <bew> Auto completion for Crystal is currently very experimental
<FromGitter> <xmonader> I see. thanks :(
<FromGitter> <faustinoaq> > Blazor is an experimental .NET web framework using C#/Razor and HTML that runs in the browser with WebAssembly ⏎ ⏎ ^ for some curious developers, I still think it would be possible in crystal, even with gc...
<FromGitter> <bew> There is Scry which is starting to have one which can be use in any editor which support language server
<FromGitter> <bew> Also vscode has a good plugin for crystal by @faustinoaq
<FromGitter> <bew> With a hardcoded autocompletion database (for now)
<FromGitter> <xmonader> @bew it's just annoying to open the API to trace the types and the available methods on
<FromGitter> <faustinoaq> @xmonader Did you try ?
<FromGitter> <faustinoaq> Also the new API search via
<FromGitter> <xmonader> @faustinoaq I use zeal wasn't sure they add docset for crystal
<FromGitter> <xmonader> but this looks very neat
<FromGitter> <faustinoaq> > Q: Don't you need features like garbage collection and threading added to WebAssembly to make this work? ⏎ >> No, WebAssembly in its current state is sufficient. The .NET runtime handles its own garbage collection and threading concerns. ⏎ ⏎ ^ Wow 😅 ⏎ ^
<FromGitter> ... g-added-to-webassembly-to-make-this-work []
<heaven31415_> that search functionality in the docs is finally working as it should, great job
<FromGitter> <faustinoaq> Yeah, very nice feature implemented by @straight-shoota see:
hightower2 has joined #crystal-lang
Groogy has joined #crystal-lang
Ven`` has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]