Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Jan 20 21:48
    Travis dry-rb/dry-view (master) errored (705)
  • Jan 20 21:44

    dry-bot on master

    [devtools] sync configs (compare)

  • Jan 20 21:44

    dry-bot on master

    [devtools] sync configs (compare)

  • Jan 20 21:44

    dry-bot on master

    [devtools] sync configs (compare)

  • Jan 20 21:44

    dry-bot on master

    [devtools] sync configs (compare)

  • Jan 20 21:44

    dry-bot on master

    [devtools] sync configs (compare)

  • Jan 20 21:44

    dry-bot on master

    [devtools] sync configs (compare)

  • Jan 20 21:43

    dry-bot on master

    [devtools] sync configs (compare)

  • Jan 20 21:43

    dry-bot on master

    [devtools] sync configs (compare)

  • Jan 20 21:43

    dry-bot on master

    [devtools] sync configs (compare)

  • Jan 20 21:16

    dry-bot on master

    [devtools] sync configs (compare)

  • Jan 20 21:15

    flash-gordon on master

    Update changelog.yml (compare)

  • Jan 20 21:12
    flash-gordon closed #387
  • Jan 20 21:12

    flash-gordon on fix-unsafe-composition

    (compare)

  • Jan 20 21:12

    flash-gordon on master

    Fix composition with function h… Merge pull request #388 from dr… (compare)

  • Jan 20 21:12
    flash-gordon closed #388
  • Jan 20 21:10
    dry-bot commented #388
  • Jan 20 21:08
    flash-gordon opened #388
  • Jan 20 21:08

    flash-gordon on fix-unsafe-composition

    Fix composition with function h… (compare)

  • Jan 20 18:21
    solnic labeled #387
Piotr Solnica
@solnic
until 0.10 we only have messages that merge both errors and hints, this turned out to be problematic in some cases so it was separated in 0.10.0
Joe Van Dyk
@joevandyk
@solnic should i submit a bug about not being able to reuse form schemas?
each { schema SomeFormSchema } doesnt seem to work. Using a non form schema does.
Christopher Dennl-Ortega Arrieta
@cdennl
@solnic so errors are messages which happened during validations and hints are the stuff which might happen
Joshua Wilcox
@joshuaswilcox
is is possible to have conditional required params in dry-validation? i.e. one of either user_id or username is required?
Christopher Dennl-Ortega Arrieta
@cdennl
@joshuaswilcox yes with high level rules
Joshua Wilcox
@joshuaswilcox
Ah yes I see that now, sorry guess I missed that page all together
Christopher Dennl-Ortega Arrieta
@cdennl
@joshuaswilcox You're welcome
Christopher Dennl-Ortega Arrieta
@cdennl
@solnic Are the messages for high-level rules now ONLY generated from the high-level rules' name and no predicate messages anymore?
when they are inside a highlevel rule
I didn't get it completely from the changelog
Piotr Solnica
@solnic
@cdennl rule name overrides predicate name
Christopher Dennl-Ortega Arrieta
@cdennl
@cd
Piotr Solnica
@solnic
so foo: %i[one two] will use foo message if it’s present
Christopher Dennl-Ortega Arrieta
@cdennl
@solnic ok so in my errors.yml I only have to specify a string for the rule name then
Joshua Wilcox
@joshuaswilcox

So I tried

        required(:user_id).maybe(:int?)
        required(:global_auth_id).maybe(:str?)

        rule(valid_user: [:user_id, :global_auth_id]) do |user_id, global_auth_id|
          user_id.false?.then(global_auth_id.filled?)
        end

        rule(valid_auth_id: [:user_id, :global_auth_id]) do |user_id, global_auth_id|
          global_auth_id.false?.then(user_id.filled?)
        end

but i get

>> @schema.call(global_auth_id: '2')
=> #<Dry::Validation::Result output={:global_auth_id=>"2"} messages={:user_id=>["is missing"]}>
Christopher Dennl-Ortega Arrieta
@cdennl
@solnic ah it is optional? if it is not present it will use predicate?
Piotr Solnica
@solnic
when it’s missing we won’t apply any other rule
you marked it as required
Joshua Wilcox
@joshuaswilcox
so optional then?
with that I get
>> @schema.call(user_id: nil)
=> #<Dry::Validation::Result output={:user_id=>nil} messages={}>
basically I am trying to use two different params to do the same thing, so either is ok, but at least one and not both, ha
Christopher Dennl-Ortega Arrieta
@cdennl
@joshuaswilcox user_id.filled? xor global_auth_id.filled?
as one rule
Joshua Wilcox
@joshuaswilcox
same result
>> @schema.call(user_id: 1)
=> #<Dry::Validation::Result output={:user_id=>1} messages={:global_auth_id=>["is missing"]}>
>> @schema.call(global_auth_id: '1')
=> #<Dry::Validation::Result output={:global_auth_id=>"1"} messages={:user_id=>["is missing"]}>
>> @schema.call(global_auth_id: '1', user_id: nil)
=> #<Dry::Validation::Result output={:user_id=>nil, :global_auth_id=>"1"} messages={:user_id=>["must be filled"]}>
I think maybe I am approaching my problem the wrong way
Christopher Dennl-Ortega Arrieta
@cdennl
with both marked optional?
nah you don't i have the same sitations
with xor
Joshua Wilcox
@joshuaswilcox
yeah both optional
Christopher Dennl-Ortega Arrieta
@cdennl
its a common case
Joshua Wilcox
@joshuaswilcox
xor doesn't work for me either
Christopher Dennl-Ortega Arrieta
@cdennl
can you give me your code please the complete one
Joshua Wilcox
@joshuaswilcox
 @schema = Dry::Validation.Form do
        optional(:user_id).maybe(:int?)
        optional(:global_auth_id).maybe(:str?)

        rule(valid_user: [:user_id, :global_auth_id]) do |user_id, global_auth_id|
          user_id.filled? or global_auth_id.filled?
        end
      end
Christopher Dennl-Ortega Arrieta
@cdennl
xor
doesnt work?
or ^
Joshua Wilcox
@joshuaswilcox
ArgumentError: +xor+ is not a valid predicate name
Christopher Dennl-Ortega Arrieta
@cdennl
user_id.filled? ^ global_auth_id.filled?
or user_id.filled?.xor( global_auth_id.filled? )
Joshua Wilcox
@joshuaswilcox
yeah ^ worked
Thanks for the help!
Christopher Dennl-Ortega Arrieta
@cdennl
no problem, so the complete problem is solved?
another solution would have been: (user_id.filled? & global_id.none?) | (user_id.none? & global_id.filled?) that would be the xor expanded
Joshua Wilcox
@joshuaswilcox
ah good to know thanks! yeah problem solved from a validation point of view :)
Christopher Dennl-Ortega Arrieta
@cdennl
(and,or,not)x(true,false) defines a complete base of boolean logic, any predicate logic term can be assembled out from these three operations on true,flase
Piotr Solnica
@solnic
@cdennl make both keys optional if that’s your case
Christopher Dennl-Ortega Arrieta
@cdennl
@solnic I have no problem :) just tried to help joshua
Piotr Solnica
@solnic
oh sorry ok cool cool :)