Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 16:35
    cgeorgii review_requested #135
  • 15:58

    dry-bot on master

    [devtools] update CHANGELOG.md (compare)

  • 15:57

    solnic on master

    Add unreleased section to chang… (compare)

  • 15:35
    cgeorgii opened #135
  • 12:35
    Travis dry-rb/dry-view (master) errored (696)
  • 12:33

    dry-bot on master

    [devtools] sync configs (compare)

  • 12:33

    dry-bot on master

    [devtools] sync configs (compare)

  • 12:32

    solnic on master

    Update sync_configs.yml (compare)

  • 12:32

    dry-bot on master

    [devtools] sync configs (compare)

  • 12:32

    dry-bot on master

    [devtools] sync configs (compare)

  • 12:32

    solnic on master

    Update sync_configs.yml (compare)

  • 12:32

    dry-bot on master

    [devtools] sync configs (compare)

  • 12:32

    solnic on master

    Update sync_configs.yml (compare)

  • 12:32

    dry-bot on master

    [devtools] sync configs (compare)

  • 12:31

    dry-bot on master

    [devtools] sync configs (compare)

  • 12:31

    solnic on master

    Update sync_configs.yml (compare)

  • 12:31

    solnic on master

    Update sync_configs.yml (compare)

  • 12:31

    solnic on master

    Update sync_configs.yml (compare)

  • 12:31

    dry-bot on master

    [devtools] sync configs (compare)

Aaron Jensen
@aaronjensen
Anyone know what happened to dry-schema?
Tim Riley
@timriley
@aaronjensen development hasn’t started in earnest yet
it’s still coming
Aaron Jensen
@aaronjensen
oh. we were using it and the docs disappeared
Piotr Solnica
@solnic
@aaronjensen u sure you meant dry/schema? It hasn’t been released yet
Aaron Jensen
@aaronjensen
erg, i confused myself, sorry. We're using dry::validation and we have a module named schema :)
so, nevermind me. Just so I understand though, dry/schema will be some things extracted from dry-validation that would be able to be used on its own in some way?
unrelated question: If we wanted to validate that something was a hash with string keys and string or number values, would we have to write a custom validator or is there a way to represent that with existing validators or types?
Piotr Solnica
@solnic
validating keys is not supported
it’s one of the things that is on 1.0 roadmap
and yes, dry-schema will be a subset of dry-validation, and dry-validation 1.0 will be built on top of if
s/if/it/
Aaron Jensen
@aaronjensen
got it, thank you
Markus Unterwaditzer
@untitaker
If I have a field of type Array inside a dry struct, I can still modify the array in-place. Wouldn't it make sense to auto-freeze arrays and hashes during struct instantiation?
perhaps something like dup.freeze is actually necessary, since freeze itself is a form of mutation.
Nikita Shilnikov
@flash-gordon
you can use Dry::Struct::Value I think
but keep in mind that deep-freeze is dead slow
Markus Unterwaditzer
@untitaker
I'm not even talking about deep-freeze. I have a model Model::Foo where one field is of type Types::Strict::Array.member(Model::Bar). My problem is that that field is still mutable, I can append more Bars.
both models are structs
Nikita Shilnikov
@flash-gordon
it’s no difference with other types of attributes, say, you have a string attr and you still can mutate it with gsub! and etc
you can workaround this with your own constructor types
Markus Unterwaditzer
@untitaker
sure, but I wonder if you would accept a PR which would call freeze in Types::Strict::Array or something like that. Or is dry-types not supposed to be always immutable?
Nikita Shilnikov
@flash-gordon
dry-types has nothing to do with this
though it can have types that dups and freezes values
list of types I mean
like strict but frozen of something
/cc @solnic
Gustavo Caso
@GustavoCaso
Something in the lines of Types::Freeze::Array
Markus Unterwaditzer
@untitaker
What do you think about having Types::Strict::Array.frozen as constructor?
I'm wishing for something that would automatically load that constructor for me in any dry-struct (since I want everything in my models to be immutable without me explicitly specifying it for each attribute)
Also not sure what to do with coercible types etc... you'd need Types::CoercibleFrozen, Types::StrictFrozen, ...
Nikita Shilnikov
@flash-gordon
you probably want to benchmark it. Anyway, we won’t add a new method to the API because it affects everything
you can just redefine Struct.attribute to make it work the way you want
Markus Unterwaditzer
@untitaker
This message was deleted
isn't the entire point of using dry-struct to have everything as immutable?
Gustavo Caso
@GustavoCaso
I think using dry-struct is to have something like a value object
Or application data if you will
Represent something from your system
But I’m sure @flash-gordon will be able to provide a better answer
Markus Unterwaditzer
@untitaker
well if that's all there is to it I might as well keep on using activemodel ;)
Nikita Shilnikov
@flash-gordon
you certainly can
dry-struct by itself doesn’t provide an interface for mutating attributes
as in, setters
but it doesn’t do anything with values
Markus Unterwaditzer
@untitaker
I was just being facetious. My point is that I am using dry-struct not because it doesn't support mutation, but because it prevents it
Nikita Shilnikov
@flash-gordon
it’s not the point
Markus Unterwaditzer
@untitaker
or at least I thought it did
Nikita Shilnikov
@flash-gordon
you don’t need a mutable interface, that’s why you don’t get it
Markus Unterwaditzer
@untitaker
right, I'm not asking for a mutable interface
Nikita Shilnikov
@flash-gordon
but if you're using other ruby primitives, such as arrays and strings, they're mutable