Sha256: 38f6c0bdea99080e05609ac221b1612e05e7596b0c8cd5825b5ead7b968517f6
Contents?: true
Size: 732 Bytes
Versions: 1
Compression:
Stored size: 732 Bytes
Contents
require 'dry/types/decorator' module Dry module Types class Default include Decorator include Builder class Callable < Default def evaluate value.call end end attr_reader :value alias_method :evaluate, :value def self.[](value) if value.respond_to?(:call) Callable else self end end def initialize(type, options) super @value = options.fetch(:value) end def call(input) if input.nil? evaluate else output = type[input] output.nil? ? evaluate : output end end alias_method :[], :call end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dry-types-0.6.0 | lib/dry/types/default.rb |