Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 12:28
    HertzDevil labeled #12193
  • 12:28
    HertzDevil labeled #12193
  • 12:28
    HertzDevil opened #12193
  • 11:05
    straight-shoota opened #12192
  • 11:05
    straight-shoota labeled #12192
  • 11:05
    straight-shoota labeled #12192
  • 10:15
    straight-shoota labeled #12190
  • 08:32
    BrucePerens labeled #12191
  • 08:32
    BrucePerens opened #12191
  • 05:07
    cyangle labeled #12190
  • 05:07
    cyangle opened #12190
  • Jul 03 23:10
    straight-shoota closed #12188
  • Jul 03 23:09
    straight-shoota synchronize #12167
  • Jul 03 21:10
    asterite edited #12182
  • Jul 03 17:30
    straight-shoota closed #12184
  • Jul 03 17:17
    straight-shoota closed #12182
  • Jul 03 17:16
    straight-shoota closed #12169
  • Jul 03 17:16
    straight-shoota closed #12176
  • Jul 03 17:16
    straight-shoota synchronize #12175
  • Jul 03 17:14
    straight-shoota milestoned #12140
From IRC (bridge bot)
@FromIRC
<riza> and if you ~> x.y, y can increment, z can be anythnig and x cannot change
<mfiano> Oh very good. I don't see why you would want to leave room for y or x to upgrade...how can you know anything other than a patch won't break your code?
<riza> its used under the assumption that the project you're referencing follow SemVer
Alex Kampa
@alex-kampa

Thanks @Blacksmoke16 your solution works, even though

puts [1, 2, 3, 4, 5].reduce(0) { |acc, i| i.to_s =~ /3/ ? acc + i : acc }

is a bit harder to read than

puts [1, 2, 3, 4, 5].reduce(0) { |acc, i| acc = acc + 1 if i.to_s =~ /3/ }

but ok I guess that's the price to pay for a compiled language ... and shows that the transition from Ruby to Crystal is not always that easy.

From IRC (bridge bot)
@FromIRC
<riza> mfiano: if the project is following SemVer, then you know that anything which is a breaking change is a major version increment
<mfiano> Ok I see
George Dietrich
@Blacksmoke16
@alex-kampa whats the end goal of this code?
i noticed i had acc + i instead of acc + 1, so are all you wanting to do is count the number of time 3 is in the array?
Alex Kampa
@alex-kampa
counting elements in an array that match a certain regex
at this stage just playing around with various ways to achieve that
George Dietrich
@Blacksmoke16
puts [1, 2, 3, 4, 5].count { |i| i.to_s.matches? /3/ }
or in this specific case puts [1, 2, 3, 4, 5].count 3
Alex Kampa
@alex-kampa
thanks, the ".matches?" looks good, short and idiomatic. I know, RTFD :-)
Thanks @Blacksmoke16
From IRC (bridge bot)
@FromIRC
<mfiano> Is there a way I can run ameba automatically when I "run" or "spec"?
George Dietrich
@Blacksmoke16
setup a Makefile
From IRC (bridge bot)
@FromIRC
<mfiano> Fair enough
George Dietrich
@Blacksmoke16
dont think youd want to run it every time you go to run the program tho
From IRC (bridge bot)
@FromIRC
<mfiano> Probably whenever I spec though
George Dietrich
@Blacksmoke16
yea
Jason Waldrip
@jwaldrip
alright, solved that one... next Q
how is is possible to call .from_json on an abstract class and have it resolve to one of its decendants?
From IRC (bridge bot)
@FromIRC
<mfiano> Ah cool, no Makefile required
George Dietrich
@Blacksmoke16
crystal spec && ./bin/ameba?
From IRC (bridge bot)
@FromIRC
<mfiano> on save, vim-crystal seems to annotate the margin and with error icons, and when cursor is on one of those lines, message in status bar
George Dietrich
@Blacksmoke16
ah nice, i know sublime runs the formatter on save as wel, is super nice
From IRC (bridge bot)
@FromIRC
<mfiano> Yeah vim-crystal seems to run the formatter (optionally [disabled by default for some reason]), and ameba if available, though no mention of that or switch for it
From IRC (bridge bot)
@FromIRC
<mfiano> Day 1 actually getting the tooling set up and writing a small amount of code, and I must say, Crystal was easier to get comfortable with than most of the few dozen or so languages I've tried.
George Dietrich
@Blacksmoke16
:thumbsup:
From IRC (bridge bot)
@FromIRC
<mfiano> development_dependencies are included when not building with --release, right, or is there some other criteria that classifies what "development" means?
George Dietrich
@Blacksmoke16
they're dependencies not used in the final build of the code
i.e. ameba, and testing stuff
From IRC (bridge bot)
@FromIRC
<mfiano> Right, I'm looking at debug.cr right now...they say you can call Debug.enabled = true if you don't want to set an env var, so I'm wondering if I can check some flag as to not call that in release builds
George Dietrich
@Blacksmoke16
{% unless flag? :release %}
  Debug.enabled = true
{% end %}
would be true whenever its built without --release
From IRC (bridge bot)
@FromIRC
<mfiano> You mean the inverse ;⁠)
<mfiano> But, thanks
George Dietrich
@Blacksmoke16
i mean Debug.enabled would be true w/o --release
From IRC (bridge bot)
@FromIRC
<mfiano> Oh yes you're right, I read your description wrong.
<mfiano> It might be about time for bed :⁠/
George Dietrich
@Blacksmoke16
but to answer your earlier question doing like shards build --release would also technically install dev dependencies, but is likely you're not requiring those in your main code anyway.
would want to use --production or --without-development, can do shards --help for more info
From IRC (bridge bot)
@FromIRC
<mfiano> Where is a good place to put such meta-code as the above?
George Dietrich
@Blacksmoke16
would need to go in your main entrypoint file, or some other file that requires it
oh i have an idea
have a debug.cr file that you put this stuff in
From IRC (bridge bot)
@FromIRC
<mfiano> Does it matter that it's before the main entry point's "require"s?
George Dietrich
@Blacksmoke16
then you can add a {% skip_file if flag?(:release) %} so that the code isn't processed in release mode
From IRC (bridge bot)
@FromIRC
<mfiano> Oh hmm...and where would that macro form go?