Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 14:38

    dry-bot on master

    [devtools] sync configs (compare)

  • 14:38

    dry-bot on master

    [devtools] sync configs (compare)

  • 14:38

    dry-bot on master

    [devtools] sync configs (compare)

  • 14:38

    dry-bot on master

    [devtools] sync configs (compare)

  • 14:38

    dry-bot on master

    [devtools] sync configs (compare)

  • 14:37

    dry-bot on master

    [devtools] sync configs (compare)

  • 14:37

    dry-bot on master

    [devtools] sync configs (compare)

  • 14:37

    dry-bot on master

    [devtools] sync configs (compare)

  • 14:37

    dry-bot on master

    [devtools] sync configs (compare)

  • 14:37

    dry-bot on master

    [devtools] sync configs (compare)

  • 14:15

    dry-bot on master

    [devtools] update CHANGELOG.md (compare)

  • 14:15

    flash-gordon on master

    Fix YAML syntax (compare)

  • 14:10

    flash-gordon on master

    gitignore .vscode Update changelog.yml (compare)

  • 14:02

    flash-gordon on fix-key-optional

    (compare)

  • 14:02

    flash-gordon on master

    Fix Schema::Key#optional It us… Merge pull request #385 from dr… (compare)

  • 14:02
    flash-gordon closed #385
  • 13:57
    dry-bot commented #385
  • 13:55
    flash-gordon opened #385
  • 13:54

    flash-gordon on fix-key-optional

    Fix Schema::Key#optional It us… (compare)

  • 13:54

    dry-bot on master

    [devtools] sync configs (compare)

Maciej Mensfeld
@mensfeld
I really need that for what I do ;) (and all the other magic you guys work on :D)
Piotr Solnica
@solnic
@kwando this is not a DI/IoC framework and it won’t be, for complex object construction strategies we could create an interface for integration with external libs that handle that
personally I’m not interested in such a thing
Hannes Nevalainen
@kwando
well, I ditched dry-component and rolled my own instead
Piotr Solnica
@solnic
is it OSS?
and did you try to use it in a rails app or dry-web stack or something else?
Hannes Nevalainen
@kwando
no it is not, it will be if I ever get to extract it from this app though =)
Piotr Solnica
@solnic
we can have a way of registering custom handlers
but this would be external, so dry-component would have its own simple one (the existing stuff) and you could configure your own
Hannes Nevalainen
@kwando
really enjoying how omakase the dry ecosystem is =)
Piotr Solnica
@solnic
yeah man it’s omakase and you consume it with really sharp knifes :laughing:
Hannes Nevalainen
@kwando
:laughing:
lol
Nikita Shilnikov
@flash-gordon
it would be great if dry-component supported namespaces. This PR seems to be abandoned dry-rb/dry-component#6 :(
this was a deal breaker for me
Piotr Solnica
@solnic
@flash-gordon it will support it
nobody had the time to take care of this, that’s all
Chase Gilliam
@Ch4s3
I'm hitting a place where dry-validation-rails is going to be very useful soon. Where are we in that discussion?
Oskar Szrajer
@gotar
it's only me, who have odd feeling when every gem need another one with -rails to support it, why not to just use dry-validation ?
Chase Gilliam
@Ch4s3
I understand the sentiment. I think the idea was to give rails users an easier on-ramp for dry-rb, but I think @solnic can explain the rationale much better
Nikita Shilnikov
@flash-gordon
@solnic that's why I mentioned it ;) Personally I didn't do anything about it because I don't know how it should be implemented
Piotr Solnica
@solnic
Rails needs integration. And I don't want it to be part of main code bases
Chase Gilliam
@Ch4s3
I'm trying to build something in my application and see if I can extract a sensible integration...
I'm including a dry-validation schema class on my models and checking it before saving. It works, but I'm not sure how happy I am with it.
Jeff Dickey
@jdickey
Hi, guys; I'm having trouble with a Types::Strict::DateTime initialisation. When I use the "raw" Gem-supplied types to define everything, all is well; when I use a self-defined module constant, I get a NoMethodError running what looks like the exact same code. Gist with short single-source-file demo code here
Initialising with DateTime.now works when using Types::Strict::DateTime.default { DateTime.now }; it does not work when attempting to use a constant defined as Types::Strict::DateTime.default { DateTime.now }
Nikita Shilnikov
@flash-gordon
@jdickey try DateTimeOrNow = Types::Strict::DateTime.default { ::DateTime.now }
in Types module you have a clash with Types::DateTime constant
Piotr Solnica
@solnic
@rusilko heyyy sorry for this late reply, so in a nutshell: let's start with strong-params replacement, this is basically a schema that defines which keys are required and optional and what the types should be. Once we have that, along with some railitie that sets things up for you, we can think about what to do with model validation, I think the next natural would be to move validation out from AR models and provide some smooth integration with AM (although that is, IIRC, covered by gems like reform, so maybe makes no sense to go that far). All this stuff should go to a separate gem dry-validation-rails which provides Dry::Validation::Rails namespace with all the needed APIs. /cc @Ch4s3
oh and yes, we could create a separate channel for dry-validation, it's probably the biggest gem we have with adoption growing fast...
@gotar apologies for my rough reply, I was...driving :P anyhow, re keeping rails stuff separate - this will speed up development, ie I don't use rails (I guess you know that already :)) so I don't want to deal with rails-related code when working on OSS, that's pretty much it, it adds friction to dev cycles that I really don't like, and don't have time/energy to deal with this
one minor benefit is also that it screams "look how many gems need rails-specific code just to make them usable with rails"
at least I see some value in this kind of manifestation (maybe not the right word)
Ralf Schmitz Bongiolo
@mrbongiolo
@mensfeld I'm not sure if I understood you correctly, but for what you what you should use the Sanitizer input_processor, it will ignore any fields that are not declared in your schema.
configure do
  config.input_processor = :sanitizer
end
Tomek Rusiłko
@rusilko
@solnic hey, no probs. Thanks for clarifing things. So, pls set up a channel and lets start hacking away on it :) cc/ @Ch4s3
Chase Gilliam
@Ch4s3
@rusilko sounds good. @solnic Do you want dry-validation-rails to live in dry-rb or somewhere else?
Piotr Solnica
@solnic
@Ch4s3 dry-rb org :ok_hand:
Chase Gilliam
@Ch4s3
@solnic I thought so. If you want to fire up a repo, I can start work this weekend.
John Backus
@backus
require 'bundler/setup'
require 'dry/validation'

Dry::Validation.JSON do
  hash? do
    required(:data).schema do
      required(:foo).value(:int?)
    end
  end
end
/Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-types-ce8761715332/lib/dry/types/compiler.rb:80:in `merge': no implicit conversion of Dry::Types::Safe into Hash (TypeError)
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-types-ce8761715332/lib/dry/types/compiler.rb:80:in `each'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-types-ce8761715332/lib/dry/types/compiler.rb:80:in `reduce'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-types-ce8761715332/lib/dry/types/compiler.rb:80:in `merge_with'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-types-ce8761715332/lib/dry/types/compiler.rb:67:in `visit_json_hash'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-types-ce8761715332/lib/dry/types/compiler.rb:28:in `visit_type'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-types-ce8761715332/lib/dry/types/compiler.rb:15:in `visit'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-types-ce8761715332/lib/dry/types/compiler.rb:11:in `call'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-validation-fa557778ff0f/lib/dry/validation/input_processor_compiler.rb:16:in `call'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-validation-fa557778ff0f/lib/dry/validation/schema.rb:125:in `input_processor'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-validation-fa557778ff0f/lib/dry/validation/schema.rb:148:in `default_options'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-validation-fa557778ff0f/lib/dry/validation/schema.rb:46:in `new'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-validation-fa557778ff0f/lib/dry/validation.rb:37:in `Schema'
  from /Users/johnbackus/.rvm/gems/ruby-2.3.1/bundler/gems/dry-validation-fa557778ff0f/lib/dry/validation.rb:46:in `JSON'
  from test.rb:36:in `<main>'
Should I open an issue?
Chase Gilliam
@Ch4s3
yeah
John Backus
@backus
k
Jeff Dickey
@jdickey
@flash-gordon D'oh! Should have seen that! Thanks, @flash-gordon! Gist updated, including credit
Nikita Shilnikov
@flash-gordon
@jdickey no problem, your gist was very helpful in reproducing the error, it took a couple of seconds, really
Jeff Dickey
@jdickey
@flash-gordon cool; thanks again
Vladimir Dralo
@vladra
hi guys
I’m new to dry-types and I’m wondering if it is possible to define custom type for ActiveRecords::Relation? I’m passing scope from controller to service, but not sure how to solve this
Piotr Solnica
@solnic
@vladra could you tell me what are you trying to do? what would that type do?
Vladimir Dralo
@vladra
@solnic I have a service, which requires scoped relation from controller (after applying specific scope permissions). It needs to be lazy, so query is not executed before I need to. So I have an ability to filter it further inside service. And I wanted to use dry-types to make sure that Relation/Scope is passed there or fail otherwise. But maybe I’m going in wrong direction and you can give me the tip on better approach
Piotr Solnica
@solnic
types should deal with simple values, AR::Relation feels a bit too much
Vladimir Dralo
@vladra
I see. Atm I’m overriding initializer, but just don’t like how it looks like. Thanks