Module: Lagoon

Defined in:
lib/lagoon.rb,
lib/lagoon/cli.rb,
lib/lagoon/errors.rb,
lib/lagoon/result.rb,
lib/lagoon/options.rb,
lib/lagoon/railtie.rb,
lib/lagoon/version.rb,
lib/lagoon/diagram/base.rb,
lib/lagoon/configuration.rb,
lib/lagoon/diagram/er_diagram.rb,
lib/lagoon/parser/model_parser.rb,
lib/lagoon/parser/schema_parser.rb,
lib/lagoon/diagram/model_diagram.rb,
lib/lagoon/renderer/base_renderer.rb,
lib/lagoon/parser/controller_parser.rb,
lib/lagoon/diagram/controller_diagram.rb,
lib/lagoon/renderer/er_diagram_renderer.rb,
lib/lagoon/parser/controller_model_parser.rb,
lib/lagoon/analyzer/active_record_analyzer.rb,
lib/lagoon/parser/application_class_filter.rb,
lib/lagoon/renderer/class_diagram_renderer.rb,
lib/lagoon/diagram/controller_model_diagram.rb,
lib/lagoon/analyzer/database_schema_analyzer.rb,
lib/lagoon/analyzer/action_controller_analyzer.rb,
lib/lagoon/analyzer/ast/method_reference_visitor.rb,
lib/lagoon/analyzer/ast_model_reference_analyzer.rb,
lib/lagoon/renderer/controller_model_er_renderer.rb,
lib/lagoon/analyzer/ast/controller_scope_collector.rb,
sig/lagoon.rbs

Defined Under Namespace

Modules: Analyzer, Diagram, Parser, Renderer Classes: CLI, Configuration, ConfigurationError, Error, Options, OutputError, ParseError, RailsLoadError, Railtie, Result

Constant Summary collapse

VERSION =

Returns:

  • (String)
'0.2.0'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationConfiguration

Returns:



33
34
35
# File 'lib/lagoon.rb', line 33

def configuration
  @configuration ||= Configuration.new
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:

Yield Parameters:

Yield Returns:

  • (Object)

Returns:

  • (Object)


37
38
39
# File 'lib/lagoon.rb', line 37

def configure
  yield(configuration)
end

.generate_all(options = {}) ⇒ Hash[Symbol, Result]

Parameters:

  • options (options_hash) (defaults to: {})

Returns:



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/lagoon.rb', line 61

def generate_all(options = {})
  raw_options = options.to_h.transform_keys(&:to_sym)
  validate_all_options!(raw_options)
  eager_load_application!
  output_dir = raw_options.delete(:output)

  {
    models: generate_model_diagram(options_for(:model, raw_options, output_dir, 'models.mermaid')),
    controllers: generate_controller_diagram(
      options_for(:controller, raw_options, output_dir, 'controllers.mermaid')
    ),
    er: generate_er_diagram(options_for(:er, raw_options, output_dir, 'er_diagram.mermaid')),
    controller_models: generate_controller_model_diagram(
      options_for(:controller_model, raw_options, output_dir, 'controller_models.mermaid')
    )
  }
end

.generate_controller_diagram(options = {}) ⇒ Result

Parameters:

  • options (options_hash) (defaults to: {})

Returns:



49
50
51
# File 'lib/lagoon.rb', line 49

def generate_controller_diagram(options = {})
  Diagram::ControllerDiagram.new(options, configuration: configuration.dup).generate
end

.generate_controller_model_diagram(options = {}) ⇒ Result

Parameters:

  • options (options_hash) (defaults to: {})

Returns:



57
58
59
# File 'lib/lagoon.rb', line 57

def generate_controller_model_diagram(options = {})
  Diagram::ControllerModelDiagram.new(options, configuration: configuration.dup).generate
end

.generate_er_diagram(options = {}) ⇒ Result

Parameters:

  • options (options_hash) (defaults to: {})

Returns:



53
54
55
# File 'lib/lagoon.rb', line 53

def generate_er_diagram(options = {})
  Diagram::ErDiagram.new(options, configuration: configuration.dup).generate
end

.generate_model_diagram(options = {}) ⇒ Result

Parameters:

  • options (options_hash) (defaults to: {})

Returns:



45
46
47
# File 'lib/lagoon.rb', line 45

def generate_model_diagram(options = {})
  Diagram::ModelDiagram.new(options, configuration: configuration.dup).generate
end

.reset_configuration!Configuration

Returns:



41
42
43
# File 'lib/lagoon.rb', line 41

def reset_configuration!
  @configuration = Configuration.new
end