Sha256: add2ceb94cb4ce36d2b2595a7ebc3e37225a22458cecd1d790d3cf01fb198db1

Contents?: true

Size: 389 Bytes

Versions: 7

Compression:

Stored size: 389 Bytes

Contents

# frozen_string_literal: true

class Operation
  include Dry::Effects.State(:counter)

  def call
    3.times do
      self.counter += 1
    end

    :done
  end
end

class Wrapper
  include Dry::Effects::Handler.State(:counter)

  def initialize
    @operation = Operation.new
  end

  def call
    with_counter(0) { @operation.call }
  end
end

__END__

Wrapper.new.call # => [3, :done]

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dry-effects-0.1.4 examples/state.rb
dry-effects-0.1.3 examples/state.rb
dry-effects-0.1.2 examples/state.rb
dry-effects-0.1.1 examples/state.rb
dry-effects-0.1.0 examples/state.rb
dry-effects-0.1.0.alpha2 examples/state.rb
dry-effects-0.1.0.alpha examples/state.rb