module Dogviz::Flowable
Public Instance Methods
does(action)
click to toggle source
# File lib/dogviz/flowable.rb, line 5 def does(action) Process.new(self, action) end
method_missing(m, *args, &block)
click to toggle source
# File lib/dogviz/flowable.rb, line 28 def method_missing(m, *args, &block) if requests.has_key?(m) @flow ||= nil request_def = requests[m] if request_def.is_a?(String) label = request_def return_label = nil else request_def = request_def.call(*args) if request_def.is_a?(Proc) label = request_def.keys.first return_label = request_def.values.first end @flow.next_call self, label block.call if block_given? @flow.end_call(return_label) else raise "this flowable does not know about receiving '#{m}', only know about: #{requests.keys}" end end
note(where, what)
click to toggle source
# File lib/dogviz/flowable.rb, line 16 def note(where, what) @flow.add_note(self, where, what) end
receives(requests, &block)
click to toggle source
# File lib/dogviz/flowable.rb, line 9 def receives(requests, &block) @requests = self.requests.merge requests if requests.is_a?(Hash) self.requests[requests] = block if requests.is_a?(Symbol) end
request_handlers()
click to toggle source
# File lib/dogviz/flowable.rb, line 54 def request_handlers @request_handlers ||= {} end
requests()
click to toggle source
# File lib/dogviz/flowable.rb, line 50 def requests @requests ||= {} end
start_flow(flow)
click to toggle source
# File lib/dogviz/flowable.rb, line 20 def start_flow(flow) @flow = flow end
stop_flow()
click to toggle source
# File lib/dogviz/flowable.rb, line 24 def stop_flow @flow = nil end