Sha256: c0990f29009eb43cebf68627281024699447861c33648dfae0f3b3a9ec9a25d7
Contents?: true
Size: 955 Bytes
Versions: 1
Compression:
Stored size: 955 Bytes
Contents
# frozen_string_literal: true require "dry/effects/initializer" module Dry module Effects class Effect extend Initializer include ::Dry::Equalizer(:type, :name, :payload, :keywords) option :type option :name, default: -> { type } option :payload, default: -> { EMPTY_ARRAY } option :keywords, default: -> { EMPTY_HASH } def payload(*payload) if payload.empty? @payload else with(payload: payload) end end def keywords(**keywords) if keywords.empty? @keywords else with(keywords: @keywords.merge(keywords)) end end def call(*args, **kwargs) if args.empty? if kwargs.empty? self else keywords(**kwargs) end else with(payload: args, keywords: @keywords.merge(kwargs)) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dry-effects-0.3.0 | lib/dry/effects/effect.rb |