Class: LcpRuby::Generators::MonitoringGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
FormatSupport
Defined in:
lib/generators/lcp_ruby/monitoring_generator.rb

Constant Summary

Constants included from FormatSupport

FormatSupport::VALID_FORMATS

Instance Method Summary collapse

Methods included from FormatSupport

included, #validate_format

Instance Method Details

#copy_error_log_modelObject



14
15
16
17
18
# File 'lib/generators/lcp_ruby/monitoring_generator.rb', line 14

def copy_error_log_model
  copy_dsl_or_yaml "model.rb",
    dsl_target: "config/lcp_ruby/models/lcp_error_log.rb",
    yaml_target: "config/lcp_ruby/models/lcp_error_log.yml"
end

#copy_error_log_permissionsObject



26
27
28
# File 'lib/generators/lcp_ruby/monitoring_generator.rb', line 26

def copy_error_log_permissions
  template "permissions.yml", "config/lcp_ruby/permissions/lcp_error_log.yml"
end

#copy_error_log_presenterObject



20
21
22
23
24
# File 'lib/generators/lcp_ruby/monitoring_generator.rb', line 20

def copy_error_log_presenter
  copy_dsl_or_yaml "presenter.rb",
    dsl_target: "config/lcp_ruby/presenters/lcp_error_logs.rb",
    yaml_target: "config/lcp_ruby/presenters/lcp_error_logs.yml"
end

#copy_model_extensionObject



34
35
36
# File 'lib/generators/lcp_ruby/monitoring_generator.rb', line 34

def copy_model_extension
  template "model_extension.rb", "app/model_extensions/lcp_error_log_extension.rb"
end

#copy_monitoring_dashboardObject



30
31
32
# File 'lib/generators/lcp_ruby/monitoring_generator.rb', line 30

def copy_monitoring_dashboard
  template "page.yml", "config/lcp_ruby/pages/monitoring_dashboard.yml"
end

#show_post_install_messageObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/generators/lcp_ruby/monitoring_generator.rb', line 38

def show_post_install_message
  say ""
  say "LCP Ruby monitoring installed!", :green
  say ""
  say "Next steps:"
  say "  1. Restart server to create the error log table"
  say "  2. Navigate to /monitoring for the dashboard"
  say "  3. Navigate to /error-logs to browse errors"
  say ""
  say "Optional:"
  say "  - Add 'prometheus-client' gem for Prometheus metrics"
  say "  - Configure error_log_rate_limit in LcpRuby.configure"
  say "  - Register the model extension in config/initializers/lcp_ruby.rb:"
  say "    LcpRuby.configure do |c|"
  say "      c.on_model_ready('lcp_error_log') { |m| m.include(LcpErrorLogExtension) }"
  say "    end"
  say ""
end