Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 06:35
    caffkane starred dry-rb/dry-system
  • Nov 22 16:07
    holamendi starred dry-rb/dry-monitor
  • Nov 22 12:58
    flash-gordon commented #124
  • Nov 21 11:58
    hss-mateus starred dry-rb/dry-monads
  • Nov 21 09:19
    namhoei starred dry-rb/dry-monads
  • Nov 21 01:03
    rpbaltazar starred dry-rb/dry-initializer
  • Nov 20 13:02
    maxhollmann commented #70
  • Nov 20 13:02
    maxhollmann ready_for_review #70
  • Nov 20 12:30
    maxhollmann converted_to_draft #70
  • Nov 20 12:29
    maxhollmann synchronize #70
  • Nov 20 12:27
    maxhollmann opened #70
  • Nov 19 23:05
    georgiybykov starred dry-rb/dry-monads
  • Nov 19 11:51

    dry-bot on master

    [devtools] sync (compare)

  • Nov 19 11:51

    dry-bot on master

    [devtools] sync (compare)

  • Nov 19 11:51

    dry-bot on master

    [devtools] sync (compare)

  • Nov 19 11:51

    dry-bot on master

    [devtools] sync (compare)

  • Nov 19 11:51

    dry-bot on master

    [devtools] sync (compare)

  • Nov 19 11:51

    dry-bot on master

    [devtools] sync (compare)

  • Nov 19 11:50

    dry-bot on master

    [devtools] sync (compare)

  • Nov 19 11:50

    dry-bot on master

    [devtools] sync (compare)

Nikita Shilnikov
@flash-gordon
messages = Dry::Validation::Messages::YAML.load(['/tmp/errors.yml'])
user_messages = messages.namespaced(:user)
user_messages[:filled?, rule: :address] # => "You gotta tell us where you live"
Pablo Herrero
@pabloh
Hey guys, I was wondering if there was some draft for the new dry-v 1.0 API?
Tim Riley
@timriley
Nothing yet apart from the message on the discussion forum, @pabloh
Alex Heeton
@heeton
Why is there no Form::String type in dry-types? What's the logic behind that? (I'm guessing everything is a string already, and Form seems to be for coercion? Is that correct?)
Was also hoping someone could give some info behind error messages in dry-validation. Similar to @Bounga's post above, I hit some issues with high-level rule messages. Background here - https://discuss.dry-rb.org/t/difficulty-creating-error-messages-for-high-level-rules/238 - specifically I'm wondering about intended naming conventions for rules, and if this is just a case of the docs being out of sync.
Sergey Kukunin
@Kukunin
@flash-gordon do you know, that new dry-monads transforms dry-structs into hashes?
Nikita Shilnikov
@flash-gordon
Yep, I'll push a kinda fix later today, you can check out the branch in dry-monads meanwhile
Sergey Kukunin
@Kukunin
btw, those are really cool changes to API of monads
Nikita Shilnikov
@flash-gordon
Thanks, it took me a while :)
Sam Stickland
@samstickland
Is Types::Form::DateTime supposed to be able to parse multipart form values? i.e start_time(1i), start_time(2i) etc
Adam Davies
@adz
Not sure but I
Juanma Cervera
@jmcervera
G
Joe Van Dyk
@joevandyk
i have Status = Types::String.enum('draft', 'published', 'deleted'). What's the best way to use that in a validation rule?
i tried required(:status, Status) but that didn't seem to work
(i tried enabling type_specs as well)
Nikita Shilnikov
@flash-gordon
@joevandyk this what works for me
        Action = Types::Strict::String.enum(*%w[publish update])

        Schema = Dry::Validation.Form do
          configure do
            config.type_specs = true
          end

          required(:action, :string).filled(Action)
        end
Joe Van Dyk
@joevandyk
@flash-gordon thanks, that works
@flash-gordon say action is allowed to be nil or empty string, and if it is you want to default to 'publish'. how would you do that?
Nikita Shilnikov
@flash-gordon
dry-v doesn't handle defaults because it only validates data, so would go with { **defaults, **data }
Joe Van Dyk
@joevandyk
@flash-gordon i'm not familiar with that syntax :)
Nikita Shilnikov
@flash-gordon
ahh, yes, this time plain merge will work better
Joe Van Dyk
@joevandyk
i'm assuming there's a way to get dry-v to pre-process that sort of thing and set a default?
Nikita Shilnikov
@flash-gordon
well, didn't see that :) you can then check for nil in a constructor block, right?
Piotr Macuk
@macuk

Hi. First of all thank you for great dry-rb gems. Dry-v is awesome! :) I have a problem. I would like to build form schema where some fields are known and some other fields should be dynamically created. I thought that I use Form.with(custom_struct: custom_struct).(params) with option within configure block [like here: http://dry-rb.org/gems/dry-validation/custom-validation-blocks/] but it doesn't work. I cannot use custom_struct inside the schema definition:

Form = Dry::Validation.Form do
  configure do
    option :custom_struct
  end

  required(:name).filled(:str?)
  required(:surname).filled(:str?)

  optional(:custom).schema do
    # error: "undefined method `each' for #<UnboundMethod:0x007f91b9978608> (NoMethodError)"
    custom_struct.each do |element|
      required(element.name)
    end
  end
end

I've found this topic [https://discuss.dry-rb.org/t/build-dry-validations-dynamically/164] in the forum but need some examples. Could you help me somehow? Thanks!

Sergey Kukunin
@Kukunin
is there a way to inherit form schema? I found I can pass basic schema via constructor Dry::Validation.Form(BaseSchema), but it requires a class there
John Backus
@backus
I've been working on a tool for checking the correctness of YARD docs and I've been using Dry::Types as my sample library. Figured I would share here :P https://github.com/backus/yardcheck
I also use Dry::Types as an example in the readme
Nikita Shilnikov
@flash-gordon
wow
AWESOME
@backus :+1:
John Backus
@backus
:D
It has been something I've wanted for a long time haha
Every time a co-worker of mine is like "I don't like documentation because it goes stale"
I'm like why is there not a tool to check
Tool is still rough around the edges but it is already very useful
John Backus
@backus
Also I have a super pedantic branch I've been working on which fixes some of these documentation things I found while testing the tool
Will PR eventually
I suggested adding a Dry::Types::Type so that a ton of the params and returns didn't have to be like
# @return [Constrained, Definition, Sum, Safe]
Nikita Shilnikov
@flash-gordon
ahh, right, this makes sense
Joe Van Dyk
@joevandyk
How do you guys typically structure your interactors/use cases, entities/value objects, etc?
Like we have a process that wants to ensure a card is charged. And another one that wants to check to see if a shipment is late. And another one that generates all types of reports.
Jeff Dickey
@jdickey
@joevandyk well, my own personal take on that would be that your first two sound like discrete use cases operating on orders, payment methods (associated with customers), and shipments (with due-date attributes); your last "all types of reports" is probably a collection of different, related use cases that each may involve different entities for input depending on the reports you're generating. That's just my take, though, without actually knowing anything about your code or domain. Work from the domain to build bounded contexts, and then inward from there
Aaron Burrow
@burrows-labs
How do I tell if my dry-validation failed or succeeded?
Do I have to look at the error messages?
Or is there some method that will give me a boolean result.
success? maybe
Tim Riley
@timriley
@burrows-labs yep, success?
David Strauß
@stravid
Good morning folks! Is there a way / interface to get all defined keys from a dry-validations schema? Currently I have a little duplication going on so I want to use the schema as source of truth:
require_relative '../../common/command'

class StartProjectCommand
  include Command

  schema do
    required(:project_id).filled(:str?)
    required(:short_name).filled(:str?)
    required(:name).filled(:str?)
  end

  attributes :project_id
  attributes :short_name
  attributes :name
end