Sha256: dc70f5c65563611608d5413938142990dab17ed8805f2bc5589e13892ea2ac20
Contents?: true
Size: 979 Bytes
Versions: 4
Compression:
Stored size: 979 Bytes
Contents
# frozen_string_literal: true require 'dry/equalizer' 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
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
dry-effects-0.1.5 | lib/dry/effects/effect.rb |
dry-effects-0.1.4 | lib/dry/effects/effect.rb |
dry-effects-0.1.3 | lib/dry/effects/effect.rb |
dry-effects-0.1.2 | lib/dry/effects/effect.rb |