Module: StatePattern
- Defined in:
- lib/state_pattern.rb,
lib/state_pattern/state.rb,
lib/state_pattern/active_record.rb
Defined Under Namespace
Modules: ActiveRecord, ClassMethods, Delegation
Classes: State
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.included(base) ⇒ Object
5
6
7
|
# File 'lib/state_pattern.rb', line 5
def self.included(base)
base.extend ClassMethods
end
|
Instance Method Details
#current_state_instance ⇒ Object
28
29
30
31
|
# File 'lib/state_pattern.rb', line 28
def current_state_instance
set_state if @current_state_instance.nil?
@current_state_instance
end
|
#set_state(state_class = self.class.initial_state_class) ⇒ Object
33
34
35
36
|
# File 'lib/state_pattern.rb', line 33
def set_state(state_class = self.class.initial_state_class)
return @current_state_instance if @current_state_instance.class == state_class
@current_state_instance = state_class.new(self, @current_state_instance)
end
|
#transition_to(next_state_class) ⇒ Object
38
39
40
41
|
# File 'lib/state_pattern.rb', line 38
def transition_to(next_state_class)
current_state_instance.exit
set_state(next_state_class)
end
|