Sha256: 263bd96ebab2d4479ccc99d08cf6a98f3816057171a6d1bcd09b28e683917f64
Contents?: true
Size: 662 Bytes
Versions: 2
Compression:
Stored size: 662 Bytes
Contents
class State attr_reader :holder, :previous_state_class, :previous_states def initialize(holder, previous_state_class) @holder = holder @previous_state_class = previous_state_class @previous_states = build_previous_states_list end private def transition_to(new_state_class) holder.transition_to(new_state_class) end def enter raise "#{self.class.name} does not implement #enter." end def exit raise "#{self.class.name} does not implement #exit." end def build_previous_states_list hcs = holder.current_state psa = hcs.previous_states || [] psa.shift psa << hcs end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
simplestate-0.3.1 | lib/simplestate/state.rb |
simplestate-0.3.0 | lib/simplestate/state.rb |