Class: RailsAiBridge::Introspectors::ModelIntrospector::MethodExtractor

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_ai_bridge/introspectors/model_introspector/method_extractor.rb

Overview

Extracts public class and instance methods from an ActiveRecord model.

Filters out standard ActiveRecord and Object methods to highlight custom domain logic implemented on the model.

Instance Method Summary collapse

Constructor Details

#initialize(model) ⇒ MethodExtractor

Returns a new instance of MethodExtractor.

Parameters:

  • model (Class)

    ActiveRecord model class



12
13
14
# File 'lib/rails_ai_bridge/introspectors/model_introspector/method_extractor.rb', line 12

def initialize(model)
  @model = model
end

Instance Method Details

#extract_class_methodsArray<String>

Returns array of public class method names.

Returns:

  • (Array<String>)

    array of public class method names



17
18
19
20
21
22
23
24
25
# File 'lib/rails_ai_bridge/introspectors/model_introspector/method_extractor.rb', line 17

def extract_class_methods
  (model.methods - ActiveRecord::Base.methods - Object.methods)
    .reject { |method_name| method_name.to_s.start_with?('_', 'autosave') }
    .sort
    .first(30)
    .map(&:to_s)
rescue StandardError
  []
end

#extract_instance_methodsArray<String>

Returns array of public instance method names.

Returns:

  • (Array<String>)

    array of public instance method names



28
29
30
31
32
33
34
35
36
# File 'lib/rails_ai_bridge/introspectors/model_introspector/method_extractor.rb', line 28

def extract_instance_methods
  (model.instance_methods - ActiveRecord::Base.instance_methods - Object.instance_methods)
    .reject { |method_name| method_name.to_s.start_with?('_', 'autosave', 'validate_associated') }
    .sort
    .first(30)
    .map(&:to_s)
rescue StandardError
  []
end