Sha256: 6ea27ea3fb6efc3c09578a0aedbf6f9ec2e88b2034c5e5788cb7a42552282474
Contents?: true
Size: 960 Bytes
Versions: 1
Compression:
Stored size: 960 Bytes
Contents
require 'dry/types/builder' module Dry module Types class Definition include Dry::Equalizer(:primitive, :options) include Builder attr_reader :options attr_reader :primitive def self.[](primitive) if primitive == ::Array Definition::Array elsif primitive == ::Hash Definition::Hash else self end end def initialize(primitive, options = {}) @primitive = primitive @options = options end def with(new_options) self.class.new(primitive, options.merge(new_options)) end def name primitive.name end def call(input) input end alias_method :[], :call def try(input) call(input) end def valid?(input) input.is_a?(primitive) end end end end require 'dry/types/definition/array' require 'dry/types/definition/hash'
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dry-types-0.6.0 | lib/dry/types/definition.rb |