Class: AasmDiagram

Inherits:
AppDiagram show all
Defined in:
lib/prailroady/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.



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

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



23
24
25
26
27
28
# File 'lib/prailroady/aasm_diagram.rb', line 23

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



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

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
  Dir.glob(@options.exclude)
end