Class: Dry::Types::Hash::Weak
- Inherits:
-
Schema
- Object
- Definition
- Dry::Types::Hash
- Schema
- Dry::Types::Hash::Weak
- Defined in:
- lib/dry/types/hash/schema.rb
Overview
Weak schema provides safe types for every type given in schema hash
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Schema
Attributes inherited from Definition
Attributes included from Options
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from Schema
#call, #coerce, #initialize, #resolve, #resolve_missing_value, #to_ast, #try_coerce
Methods included from MaybeTypes
Methods inherited from Dry::Types::Hash
#permissive, #resolve_missing_value, #schema, #strict, #strict_with_defaults, #symbolized, #weak
Methods inherited from Definition
[], #call, #constrained?, #default?, #failure, #initialize, #name, #optional?, #primitive?, #result, #success, #to_ast
Methods included from Builder
#constrained, #constrained_type, #constructor, #default, #enum, #maybe, #optional, #safe, #|
Methods included from Options
#initialize, #meta, #pristine, #with
Constructor Details
This class inherits a constructor from Dry::Types::Hash::Schema
Class Method Details
.new(primitive, options) ⇒ Object
211 212 213 214 215 216 217 |
# File 'lib/dry/types/hash/schema.rb', line 211 def self.new(primitive, ) member_types = . fetch(:member_types). each_with_object({}) { |(k, t), res| res[k] = t.safe } super(primitive, .merge(member_types: member_types)) end |
Instance Method Details
#hash_type ⇒ Object (private)
236 237 238 |
# File 'lib/dry/types/hash/schema.rb', line 236 def hash_type :weak end |
#try(value, &block) {|failure| ... } ⇒ Object, ...
225 226 227 228 229 230 231 232 |
# File 'lib/dry/types/hash/schema.rb', line 225 def try(value, &block) if value.is_a?(::Hash) super else result = failure(value, "#{value} must be a hash") block ? yield(result) : result end end |