Sha256: 3a1109253ca7f454deef395503b915637243c6d8108b89693193cf08a510281b
Contents?: true
Size: 1.24 KB
Versions: 9
Compression:
Stored size: 1.24 KB
Contents
# frozen_string_literal: true class Grumlin::Steppable extend Forwardable attr_reader :session_id START_STEPS = Grumlin.definitions.dig(:steps, :start).map(&:to_sym).freeze REGULAR_STEPS = Grumlin.definitions.dig(:steps, :regular).map(&:to_sym).freeze CONFIGURATION_STEPS = Grumlin.definitions.dig(:steps, :configuration).map(&:to_sym).freeze ALL_STEPS = START_STEPS + CONFIGURATION_STEPS + REGULAR_STEPS def initialize(pool: nil, session_id: nil, middlewares: Grumlin.default_middlewares) @pool = pool @session_id = session_id @middlewares = middlewares return if respond_to?(:shortcuts) raise "steppable must not be initialized directly, use Grumlin::Shortcuts::Storage#g or #__ instead" end ALL_STEPS.each do |step| define_method step do |*args, **params| shortcuts.step_class.new(step, args: args, params: params, previous_step: self, session_id: @session_id, pool: @pool, middlewares: @middlewares) end end def step(name, *args, **params) shortcuts.step_class.new(name, args: args, params: params, previous_step: self, session_id: @session_id, pool: @pool, middlewares: @middlewares) end def_delegator :shortcuts, :__ end
Version data entries
9 entries across 9 versions & 1 rubygems