class Rcb::Instance
Attributes
config[R]
Public Class Methods
new(config, state_store:)
click to toggle source
@param config [Rcb::Config]
# File lib/rcb/instance.rb, line 14 def initialize(config, state_store:) @config = config @state_store = state_store || Rcb::StateStore::InMemory end
Public Instance Methods
run!(&block)
click to toggle source
# File lib/rcb/instance.rb, line 19 def run!(&block) result = case get_state in State::Close => s s.run(config, &block) in State::Open => s s.run(config, &block) in s raise "Unknown state: #{s}" end case result in Result::Ok[state, result] @state_store.update(config.tag, state) return result in Result::Ng[state, error] @state_store.update(config.tag, state) raise error end end
state()
click to toggle source
# File lib/rcb/instance.rb, line 40 def state get_state.show_state(config) end
Private Instance Methods
get_state()
click to toggle source
# File lib/rcb/instance.rb, line 46 def get_state @state_store.get(config.tag) || State::Close.create end