Sha256: d558671134d379eaa9316d4c69537642cc757f4dd90e34357b7d0677a3ae4a66
Contents?: true
Size: 1007 Bytes
Versions: 2
Compression:
Stored size: 1007 Bytes
Contents
# frozen_string_literal: true require 'dry/effects/provider' module Dry module Effects module Providers class Cmp < Provider[:cmp] include Dry::Equalizer(:id, :value) attr_reader :value param :id def get value end # Yield the block with the handler installed # # @return [Array(Any, Any)] # @api private def call(stack, value = Undefined) if Undefined.equal?(value) @value = false first = super(stack) @value = true [first, super(stack)] else @value = value super(stack) end end # @param [Effect] effect # @return [Boolean] # @api public def provide?(effect) super && id.equal?(effect.id) end # @return [String] # @api public def represent "cmp[#{id}=#{@value}]" end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dry-effects-0.1.1 | lib/dry/effects/providers/cmp.rb |
dry-effects-0.1.0 | lib/dry/effects/providers/cmp.rb |