Sha256: 808b95d26a6e3a32010c4d3b72e253da9b83519fd86d6f570cfb862de3dccceb

Contents?: true

Size: 533 Bytes

Versions: 1

Compression:

Stored size: 533 Bytes

Contents

# frozen_string_literal: true

class BCDD::Result
  class Context::Success < Context
    include ::BCDD::Result::Success::Methods

    def and_expose(type, keys, terminal: true)
      unless keys.is_a?(::Array) && !keys.empty? && keys.all?(::Symbol)
        raise ::ArgumentError, 'keys must be an Array of Symbols'
      end

      Transitions.tracking.reset_and_then!

      exposed_value = acc.merge(value).slice(*keys)

      self.class.new(type: type, value: exposed_value, source: source, terminal: terminal)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bcdd-result-0.12.0 lib/bcdd/result/context/success.rb