Class: RailsLens::Analyzers::GeneratedColumns

Inherits:
Base
  • Object
show all
Defined in:
lib/rails_lens/analyzers/generated_columns.rb

Instance Attribute Summary

Attributes inherited from Base

#model_class

Instance Method Summary collapse

Methods inherited from Base

#initialize

Methods included from ErrorHandling

#safe_analyze

Constructor Details

This class inherits a constructor from RailsLens::Analyzers::Base

Instance Method Details

#analyzeObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/rails_lens/analyzers/generated_columns.rb', line 6

def analyze
  return nil unless adapter_name == 'PostgreSQL'

  generated_columns = detect_generated_columns
  return nil if generated_columns.empty?

  lines = ['[generated_columns]']
  formatted = generated_columns.map do |column|
    "{ name = \"#{column[:name]}\", expr = \"#{column[:expression].to_s.gsub('"', '\\"')}\" }"
  end
  lines << "columns = [#{formatted.join(', ')}]"

  lines.join("\n")
end