Class: RailsConsolePro::Commands::IntrospectCommand
- Inherits:
-
BaseCommand
- Object
- BaseCommand
- RailsConsolePro::Commands::IntrospectCommand
- Defined in:
- lib/rails_console_pro/commands/introspect_command.rb
Overview
Command for model introspection
Instance Method Summary collapse
Methods included from RailsConsolePro::ColorHelper
#bold_color, #color, #method_missing, #pastel, #respond_to_missing?
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class RailsConsolePro::ColorHelper
Instance Method Details
#execute(model_class, *options) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/rails_console_pro/commands/introspect_command.rb', line 7 def execute(model_class, *) = ModelValidator.validate_for_schema(model_class) if puts pastel.red("Error: #{error_message}") return nil end # Parse options opts = () # Collect introspection data collector = Services::IntrospectionCollector.new(model_class) data = collector.collect # If specific option requested, handle it if opts[:callbacks_only] return handle_callbacks_only(model_class, data[:callbacks]) elsif opts[:enums_only] return handle_enums_only(model_class, data[:enums]) elsif opts[:concerns_only] return handle_concerns_only(model_class, data[:concerns]) elsif opts[:scopes_only] return handle_scopes_only(model_class, data[:scopes]) elsif opts[:validations_only] return handle_validations_only(model_class, data[:validations]) elsif opts[:method_source] return handle_method_source(model_class, opts[:method_source]) end # Return full result IntrospectResult.new( model: model_class, callbacks: data[:callbacks], enums: data[:enums], concerns: data[:concerns], scopes: data[:scopes], validations: data[:validations], lifecycle_hooks: data[:lifecycle_hooks] ) rescue => e RailsConsolePro::ErrorHandler.handle(e, context: :introspect) end |