Module: Stateoscope

Defined in:
lib/stateoscope.rb,
lib/stateoscope/graph.rb,
lib/stateoscope/errors.rb,
lib/stateoscope/adapter.rb,
lib/stateoscope/railtie.rb,
lib/stateoscope/version.rb,
lib/stateoscope/visualizer.rb,
lib/stateoscope/adapter/aasm.rb,
lib/stateoscope/adapter/base.rb,
lib/stateoscope/adapter_registry.rb

Defined Under Namespace

Modules: Adapter Classes: AdapterRegistry, Graph, Railtie, Visualizer

Constant Summary collapse

Error =
Class.new(StandardError)
AbstractMethodError =
Class.new(Error)
MissingAdapterError =
Class.new(Error)
VERSION =
'0.1.3'

Class Method Summary collapse

Class Method Details

.filename_for(adapter, output_format) ⇒ Object



28
29
30
# File 'lib/stateoscope.rb', line 28

def self.filename_for(adapter, output_format)
  "#{adapter.full_state_machine_name}-#{Time.now.utc.strftime('%Y%m%d%H%M%S')}.#{output_format}"
end

.visualize(klass, options = {}) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/stateoscope.rb', line 13

def self.visualize(klass, options = {})
  adapter = Adapter.new_for(klass, options[:state_machine_name])
  adapter.build_graph

  visualizer = Visualizer.new(adapter.graph)
  visualizer.parse_graph(options[:current_state])

  output_format = options.fetch(:format, 'pdf')
  filename = filename_for(adapter, output_format)
  filename = File.join(options[:dir], filename) if options[:dir].present?

  visualizer.output(filename, output_format)
  filename
end