Comments (4)
I can see how this can be confusing but I doubt we can fix it in any way. "Fixing" would be a breaking change first of all. Second, I don't really know how to fix it given how dry-types works internally, I can't see a good option (yet).
Adding more types to Optional::Params
can be a solution of some sort, I think we can do it. And document that for params types there're subtleties in Optional::
vs .optional
.
from dry-types.
Oh I was aware of this and even had plans to address it before 1.0.0 😭 It somehow got under the radar! Don't you think this could be improved in 2.0.0?
from dry-types.
I don't see a good way. Good in the sense that matches the internals. You can hack it but hacking things often brings more problems than it solves. Types don't "remember their origin", they don't belong to namespaces. If you change this then it has to be stored in the AST. You can probably keep it in meta
then all ASTs will grow just to solve this particular problem. It'll be harder to define a type, it'll be harder to reason what type is. Do you have a better idea?
from dry-types.
@flash-gordon right, you've made really good points! I'll give it some more thoughts...at some point...in the future. Maybe something to address in 3.0.0. I'd keep this one open for the time being and just label it as "unconfirmed" with 3.0.0 tentative milestone assigned...unless you're 100% sure it is not worth the effort and we should address it differently (maybe even remove .optional
in 3.0.0)
from dry-types.
Related Issues (20)
- Include `Types::Params::String` HOT 8
- Type#fallback to mock previous implementation of Type#default HOT 10
- Constructor is not applied properly to the result of types Sum HOT 5
- Types::Params::Integer incorrect coercion for numeric values HOT 9
- Anonymous Dry::Types based module cannot be extended HOT 4
- Params namespace disapearing HOT 9
- Params coercion for Array works in an unintuitive way HOT 1
- https://dry-rb.org/gems/dry-types/ not at latest version HOT 1
- [Security] Workflow ci.yml is using vulnerable action actions/checkout
- Compound Types with Examples HOT 1
- Dry::Container::Error: There is already an item registered with the key "nominal.string" on jruby-head HOT 4
- Future-proof local override for Types::Instance/Constructor classes that potentially collide with predicates
- Unexpected error raised from Sum type HOT 7
- Types::Coeercible::Integer, should this use Base 10? HOT 2
- Add Zeitwerk autoloader
- Using transform_keys breaks error handling
- Undefined method after upgrading dependencies. HOT 5
- Missing method implementation for `Enum.each_value` HOT 1
- Types.Constructor failing on Ruby 3.1 HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dry-types.