Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 17:03
    paul commented #32
  • 16:44
    paul commented #32
  • 10:56
    solnic commented #32
  • 10:30
    solnic commented #32
  • Dec 05 09:29

    solnic on master

    Clear exception message when an… Add gem names to plugins Merge pull request #128 from sk… (compare)

  • Dec 05 09:29
    solnic closed #128
  • Dec 05 09:29
    solnic closed #127
  • Dec 04 18:49
    micahphone starred dry-rb/dry-monads
  • Dec 04 17:43
    icy-arctic-fox starred dry-rb/dry-types
  • Dec 02 12:37
    pedrofurtado starred dry-rb/dry-view
  • Dec 02 11:59
    lenon starred dry-rb/dry-monads
  • Dec 01 11:06

    flash-gordon on declare-finalized

    (compare)

  • Dec 01 11:06

    flash-gordon on master

    Set initial value for ivar Merge pull request #131 from dr… (compare)

  • Dec 01 11:06
    flash-gordon closed #131
  • Dec 01 11:05
    flash-gordon opened #131
  • Dec 01 11:03

    flash-gordon on declare-finalized

    Set initial value for ivar (compare)

  • Nov 30 16:50
    paul commented #32
  • Nov 30 16:50
    paul synchronize #32
  • Nov 30 16:44
    paul synchronize #32
Piotr Solnica
@solnic
gimme a sec
require 'dry-validation'

base = Dry::Validation.Schema do
  key(:name).required
  key(:email).required
end

json = Dry::Validation.Schema(base) do
  configure { config.input_processor = :json }
end

form = Dry::Validation.Schema(base) do
  configure { config.input_processor = :form }
end
Piotr Solnica
@solnic
@sled ^^ this will work
but I gotta say just using Dry::Validation.Form|JSON should work too, something to improve…
Simon Schmid
@sled
@solnic, yes I'm building a service object, and this can be fed from either form input or an API call (JSON)
so I'm basically injecting the input processor from the outside :)
stigchristian
@stigchristian
thanks @iBublik
Simon Schmid
@sled
I'm using dry-types + dry-validation as replacement for virtus to model JSON documents, is it overkill to both use dry-type and dry-validation?
I'm feeling like I'm writting a lot of things twice
e.g an Address type + a Schema for the address
Andy Holland
@AMHOL
@sled personally I think there's value in keeping coercion/type-safety logic separate from validation logic, having said that, Dry::Validation::Schema::JSON landed in dry-validation master branch recently, which uses a json input processor to infer coercions in the same way Dry::Validation::Schema::Form works
Piotr Solnica
@solnic
@sled how exactly do you use dry-types?
Simon Schmid
@sled
mh basically what our app does is porting paper forms to "digital" forms
so I want to use dry-types to describe the structure of these forms/documents
I just got confused whether I should use Types::Form::Int, Types::Coercible::Int in my document type definition
because the validation also does some coercion right?
Piotr Solnica
@solnic
no, you should not. your ‘models’ should not do any coercions
Simon Schmid
@sled
okay so I keep the models "pure and strict" types
Piotr Solnica
@solnic
yes, that’s the intention of structs in dry-types
should be as simple as possible
Simon Schmid
@sled
got it, thanks a lot! :)
Piotr Solnica
@solnic
JSON schemas are available in latest release btw
Simon Schmid
@sled
another dumb question why isn't there a Types::Maybe::Int ?
I see Types::Maybe::Strict::Int and Types::Maybe::Coercible::Int in the docs
Piotr Solnica
@solnic
because reasons :laughing:
I honestly don’t know, I probably didn’t have a use case for them yet so I didn’t add them
Simon Schmid
@sled
ah so Types::Int.optional would be equivalent to Types::Maybe::Int ?
Piotr Solnica
@solnic
btw Types::Int.optional would do it
yes
Simon Schmid
@sled
cool! :)
Piotr Solnica
@solnic
it’s basically Types::Strict::Nil | Types::Int
Simon Schmid
@sled
I'm really enjoying the dry-rb repository :)
Piotr Solnica
@solnic
awesome :)
Simon Schmid
@sled
have you ever tried to mixin schemas? :)
Like class House < Dry::Types::Struct; include Addressable; .... end
Piotr Solnica
@solnic
nope, I don’t use mixins in structs at all
Simon Schmid
@sled
how do you handle commonly repeating subsets of fields then? :)
Piotr Solnica
@solnic
class inheritance
Simon Schmid
@sled
are incomplete types possible e.g if I set some attributes as optional with a default, do I have to pass the key in the initializer e.g ModelType.new({optional_field: nil}) vs ModelType.new
Piotr Solnica
@solnic
@sled it’s being discussed how structs should work wrt optional attrs dry-rb/dry-types#72
currently you need constructor_type(:schema) to be set for optional types with default values to be set when sth is missing
Simon Schmid
@sled
thx! now I just have to bend rails to re-load my types correctly :D
Piotr Solnica
@solnic
@sled see dry-types-rails
Simon Schmid
@sled
yes but this seems broken
just read the conversation here in gitter
Piotr Solnica
@solnic
ah damn
Simon Schmid
@sled
yep, not the first time rails breaks my balls ;)
I think the issue is the "registry" of the container is not re-loaded properly
Piotr Solnica
@solnic
could be it
I don’t use rails at the moment so I’m not looking into it