Class: AasmDiagram

Inherits:
AppDiagram show all
Defined in:
lib/railroady/aasm_diagram.rb

Overview

Diagram for Acts As State Machine

Instance Method Summary collapse

Methods inherited from AppDiagram

#engines, #print, #process

Constructor Details

#initialize(options = OptionsStruct.new) ⇒ AasmDiagram

Returns a new instance of AasmDiagram.



13
14
15
16
17
18
19
# File 'lib/railroady/aasm_diagram.rb', line 13

def initialize(options = OptionsStruct.new)
  # options.exclude.map! {|e| e = "app/models/" + e}
  super options
  @graph.diagram_type = 'Models'
  # Processed habtm associations
  @habtm = []
end

Instance Method Details

#generateObject

Process model files



22
23
24
25
26
27
# File 'lib/railroady/aasm_diagram.rb', line 22

def generate
  STDERR.print "Generating AASM diagram\n" if @options.verbose
  get_files.each do |f|
    process_class extract_class_name(f).constantize
  end
end

#get_files(prefix = '') ⇒ Object



29
30
31
32
33
34
35
# File 'lib/railroady/aasm_diagram.rb', line 29

def get_files(prefix = '')
  files = !@options.specify.empty? ? Dir.glob(@options.specify) : Dir.glob(prefix + 'app/models/**/*.rb')
  files += Dir.glob('vendor/plugins/**/app/models/*.rb') if @options.plugins_models
  files -= Dir.glob(prefix + 'app/models/concerns/**/*.rb') unless @options.include_concerns
  files -= Dir.glob(@options.exclude)
  files
end