Sha256: df30c4dafbe8173c30217a13fdaca894d99e34bf212d06edd1e8fef27acb3243

Contents?: true

Size: 677 Bytes

Versions: 2

Compression:

Stored size: 677 Bytes

Contents

# frozen_string_literal: true

module DevSuite
  module Workflow
    class StepContext
      attr_accessor :data, :store

      def initialize(data = {}, **options)
        @data = data
        @store = create_store(options)
      end

      # Update the context with new data
      def update(new_data)
        Utils::Data.deep_merge!(@data, new_data)
      end

      # Retrieve data by key
      def get(key)
        Utils::Data.get_value_by_path(@data, key)
      end

      private

      def create_store(options)
        driver = options[:driver] || :file
        path = options[:path]
        Utils::Store.create(driver: driver, path: path)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dev_suite-0.2.9 lib/dev_suite/workflow/step_context.rb
dev_suite-0.2.8 lib/dev_suite/workflow/step_context.rb