class Pastafari::Builders::StateBuilder

Public Class Methods

new(name) click to toggle source
# File lib/pastafari/builders/state_builder.rb, line 4
def initialize(name)
  @name = name
  @transitions = []
end

Public Instance Methods

build() click to toggle source
# File lib/pastafari/builders/state_builder.rb, line 19
def build
  validate_handler

  State.new(@name, @handler, @transitions)
end
process(&block) click to toggle source
# File lib/pastafari/builders/state_builder.rb, line 9
def process(&block)
  raise ArgumentError unless block

  @handler = block
end
transition_to(new_state) click to toggle source
# File lib/pastafari/builders/state_builder.rb, line 15
def transition_to(new_state)
  Pastafari::Transition.new(new_state).tap { |t| @transitions << t }
end

Private Instance Methods

validate_handler() click to toggle source
# File lib/pastafari/builders/state_builder.rb, line 27
def validate_handler
  return if @handler

  raise Pastafari::Errors::InvalidStateError,
        '#process must be called when defining the State.'
end