Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 23 22:22
    patrickclery edited #362
  • Oct 23 22:21
    patrickclery commented #361
  • Oct 23 22:11
    patrickclery commented #361
  • Oct 23 22:11
    patrickclery commented #361
  • Oct 23 15:43
    FioFiyo starred dry-rb/dry-types
  • Oct 23 11:52
    flash-gordon commented #361
  • Oct 23 07:09
    unixc3t starred dry-rb/dry-types
  • Oct 22 22:33
    patrickclery commented #361
  • Oct 22 21:12
    D1mon starred dry-rb/dry-matcher
  • Oct 22 15:44
    graudeejs starred dry-rb/dry-container
  • Oct 22 08:41
    esparta commented #366
  • Oct 22 08:39
    flash-gordon commented #366
  • Oct 22 08:39

    flash-gordon on master

    Fix error on Dry::Types::Array#… Merge pull request #366 from es… (compare)

  • Oct 22 08:39
    flash-gordon closed #366
  • Oct 22 08:38
    flash-gordon closed #362
  • Oct 22 08:38
    flash-gordon commented #362
  • Oct 22 08:37
    flash-gordon closed #361
  • Oct 22 08:37
    flash-gordon commented #361
  • Oct 22 07:48

    solnic on master

    Adding missing built-in predica… Merge pull request #65 from esp… Merge branch 'release-1.0' (compare)

  • Oct 22 07:47

    solnic on release-1.0

    Adding missing built-in predica… Merge pull request #65 from esp… (compare)

Felix Wolfsteller
@fwolfst
Hi there
Where is the source to the documentation and how can I contribute to it?
Nikita Shilnikov
@flash-gordon
@fwolfst here you are https://github.com/dry-rb/dry-rb.org
Felix Wolfsteller
@fwolfst
I am quite surprised that I did not find any pointers to that question.
@flash-gordon cool, thanks.
@flash-gordon fwiw, there is an issue with the dry-initializer doc, I believe (last example of the type-constraints section: https://github.com/dry-rb/dry-rb.org/blob/master/source/gems/dry-initializer/type-constraints.html.md
Nikita Shilnikov
@flash-gordon
@fwolfst you can ping @nepalez if something isn't right
Felix Wolfsteller
@fwolfst
@nepalez ^^ I think location shall be an option and not an param in that last example. And also the naming "param" is weird for the first reader. It assumes some knowledge about the second argument. Arguably it could be named "this_param" for clarification (or something like that).
Felix Wolfsteller
@fwolfst
@nepalez feel free to create an issue and assign it or mention me, I'd update the doc
thanks.
Ahmad Musaffa
@musaffa
The example shows deploying a Sinatra app in AWS Lambda. Deploying dry-web-rodaapp should also be trivial.
Grant Shangreaux
@gcentauri
Hoping to get something at my work using dry/rom/lambda . There was
Piotr Solnica
@solnic
this is awesome news indeed :)
Nikita Shilnikov
@flash-gordon
AFAIK cobol is also supported
Jeff Dickey
@jdickey
Coming soon: IBM RPG :older_man:
not to take away from the awesomeness; anything that lets devs use their favourite/existing-products' languages in new ways is almost by definition a Good Thing
Christian Georgii
@cgeorgii

Hi, I've been thinking about opening a pull request for dry-struct to make it quack a bit more like a hash in order to enable validating it with dry-validation. Nowadays an attempt to call a schema with a struct object throws an error. I don't understand if this is a conscious design decision because it seems like a useful use case.

What I want to enable is this:

schema = Dry::Validation.Schema { required(:age).filled(gteq?: 18) }

User.new(age: 17)

schema.(user)
#<Dry::Validation::Result output=#<User age=17> errors={:age=>["must be greater than or equal to 18"]}>
Nikita Shilnikov
@flash-gordon
you're supposed to create structs from valid data hence it doesn't make sense to pass structs to dry-v
Christian Georgii
@cgeorgii
Ok, thanks for the quick answer

Another question, then

BMI = Dry::Types['strict.int'].constrained(gteq: 18, lteq: 42).constructor { |x| x.round }

BMI[17.5]
#=> 18

BMI.valid?(17.5)
#=> false

Does this behavior make sense or is it a bug?

Nikita Shilnikov
@flash-gordon
not something I would expect tbh
mb there are reasons for that, requires checking out the code
Christian Georgii
@cgeorgii
Ok, I will take a look
Nikita Shilnikov
@flash-gordon
@solnic https://github.com/dry-rb/dry-types/blob/287e732d12a96ab9f54955754f10d4afa5e5abf8/lib/dry/types/constructor.rb#L82 here the constructor types doesn't apply fn to value. Doesn't it seem wrong?
@cgeorgii ^
Piotr Solnica
@solnic
@flash-gordon it does
Nikita Shilnikov
@flash-gordon
@cgeorgii pls file an issue, I'll take care of it tomorrow
Christian Georgii
@cgeorgii
Alright, but let me know if you want me to take a stab at it ;)
Nikita Shilnikov
@flash-gordon
permission granted ;)
Christian Georgii
@cgeorgii
Cool, I will let you know
Christian Georgii
@cgeorgii
@flash-gordon Just opened a PR for this here: dry-rb/dry-types#277 :fireworks:
Let me know if you have any thoughts or questions.
Nikita Shilnikov
@flash-gordon
:+1: will check it out
Jules Ivanic
@guizmaii

Hi everyone,

First, I want to thanks all of the people working on this project ! It’s an awesome project ! :clap:

Second, is there any .sequence method proposed in dry-rb ?

sequence signature is: F[G[A]] -> G[F[A]]
Nikita Shilnikov
@flash-gordon
@guizmaii called w/o a block traverse acts as sequence https://github.com/dry-rb/dry-monads/blob/master/lib/dry/monads/list.rb#L263-L286
Jules Ivanic
@guizmaii
ok thanks :)
Jules Ivanic
@guizmaii
does it work on Ruby Array ?
Nikita Shilnikov
@flash-gordon
nope, we don't monkey patch core classes, it's against our philosophy :)
Jules Ivanic
@guizmaii
+1
awesome philosophy !
Jules Ivanic
@guizmaii
Do you thinks that this make sense: atomic_rows = Concurrent::AtomicReference.new(Dry::Monads::List.[]) ?
I need to update this list but my computation is parrallel
I’m very new to concurrency in Ruby :/

hum maybe this is better:

future_rows = Dry::Monads::List.[]
requests.find_in_baches { |data|
  future_rows += Task[:io] { compute_rows(data) } 
}

future_rows.traverse { |rows|
  …
}

WDYT ?

Nikita Shilnikov
@flash-gordon
future_rows = Concurrent::Array.new
requests.find_in_baches { |data|
  future_rows << Task[:io] { compute_rows(data) } 
}

Dry::Monads::List.coerce(future_rows.to_a).traverse { |rows|
  …
}
@guizmaii I think this one will work better
as in Monads::List isn't meant to be mutable
and, actually, you can use future_rows = []
since it's mutated from the same thread