Class: Moory::Transition::Storage
- Inherits:
-
Object
- Object
- Moory::Transition::Storage
- Defined in:
- lib/moory/transitions.rb
Instance Method Summary collapse
- #alphabet(restrict: nil) ⇒ Object
- #count ⇒ Object
- #egresses(state:) ⇒ Object
- #response(origin:, stimulus:) ⇒ Object
- #states ⇒ Object
- #storage ⇒ Object
- #store(params) ⇒ Object
Instance Method Details
#alphabet(restrict: nil) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/moory/transitions.rb', line 26 def alphabet(restrict:nil) storage .select { |k| restrict ? k == restrict : true } .values .collect { |r| r.keys } .flatten .to_set end |
#count ⇒ Object
6 7 8 |
# File 'lib/moory/transitions.rb', line 6 def count storage.size end |
#egresses(state:) ⇒ Object
35 36 37 |
# File 'lib/moory/transitions.rb', line 35 def egresses(state:) alphabet(restrict: state) end |
#response(origin:, stimulus:) ⇒ Object
16 17 18 |
# File 'lib/moory/transitions.rb', line 16 def response(origin:, stimulus:) storage.dig(origin, stimulus) end |
#states ⇒ Object
20 21 22 23 24 |
# File 'lib/moory/transitions.rb', line 20 def states storage .keys .to_set end |
#storage ⇒ Object
39 40 41 |
# File 'lib/moory/transitions.rb', line 39 def storage @storage ||= {} end |
#store(params) ⇒ Object
10 11 12 13 14 |
# File 'lib/moory/transitions.rb', line 10 def store(params) storage.merge!(Shunter.new(params)) do |key, oldval, newval| oldval.merge!(newval) end end |