class Moory::Transition::Storage

Public Instance Methods

alphabet(restrict:nil) click to toggle source
# 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() click to toggle source
# File lib/moory/transitions.rb, line 6
def count
  storage.size
end
egresses(state:) click to toggle source
# File lib/moory/transitions.rb, line 35
def egresses(state:)
  alphabet(restrict: state)
end
response(origin:, stimulus:) click to toggle source
# File lib/moory/transitions.rb, line 16
def response(origin:, stimulus:)
  storage.dig(origin, stimulus)
end
states() click to toggle source
# File lib/moory/transitions.rb, line 20
def states
  storage
    .keys
    .to_set
end
storage() click to toggle source
# File lib/moory/transitions.rb, line 39
def storage
  @storage ||= {}
end
store(params) click to toggle source
# File lib/moory/transitions.rb, line 10
def store(params)
  storage.merge!(Shunter.new(params)) do |key, oldval, newval|
    oldval.merge!(newval)
  end
end