Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Feb 16 23:37
    asoules starred dry-rb/dry-system
  • Feb 16 20:37

    dry-bot on master

    [devtools] sync (compare)

  • Feb 16 20:37

    flash-gordon on master

    Update CHANGELOG (compare)

  • Feb 16 20:36

    flash-gordon on v1.3.1

    (compare)

  • Feb 16 20:34

    dry-bot on master

    [devtools] sync (compare)

  • Feb 16 20:33

    flash-gordon on master

    Fix version number (compare)

  • Feb 16 20:32

    dry-bot on master

    [devtools] sync (compare)

  • Feb 16 20:32

    flash-gordon on master

    Update CHANGELOG (compare)

  • Feb 16 20:27

    flash-gordon on master

    Bump version to 1.3.1 (compare)

  • Feb 16 20:26

    flash-gordon on impove-predicate-inferrer

    (compare)

  • Feb 16 20:26

    flash-gordon on master

    Infer hash? predicate for hash … Merge pull request #395 from dr… (compare)

  • Feb 16 20:26
    flash-gordon closed #395
  • Feb 16 20:26
    dry-bot commented #395
  • Feb 16 20:24
    flash-gordon opened #395
  • Feb 16 20:23

    flash-gordon on impove-predicate-inferrer

    Infer hash? predicate for hash … (compare)

  • Feb 16 17:48
    Quenedi starred dry-rb/dry-types
  • Feb 16 15:58
    ewertoncodes starred dry-rb/dry-types
  • Feb 15 18:04
    gmcabrita starred dry-rb/dry-auto_inject
  • Feb 15 18:04
    gmcabrita starred dry-rb/dry-equalizer
  • Feb 15 18:04
    gmcabrita starred dry-rb/dry-initializer
Julien Blanchard
@julienXX
Thanks I'll have a look :)
Gustavo Caso
@GustavoCaso
No problem
Jamie Gaskins
@jgaskins
@jdickey Re: assets, I wrote a gem called roda-opal_assets that lets you use Sprockets with Roda for asset dependencies. Not sure if you need something that involved or if the assets plugin is enough, but it's just become my go-to for all assets in Roda apps now (not just Clearwater apps) since Sprockets handles caching and fingerprints for cache invalidation.
Ghost
@ghost~545771cbdb8155e6700d0a6f

quick question
if I have

MODEL  = Model::Country

and Model::Country is a dry-struct entity, which have couple of attributes from Dry-Types
and some how, wrongly, instead of using MODEL.new for instance in our code we repeated Model::Country that thrown attributes already initialized error, is this normal ?

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