Class: DbdocEngine::SchemaRbParserService

Inherits:
Object
  • Object
show all
Defined in:
app/services/dbdoc_engine/schema_rb_parser_service.rb

Constant Summary collapse

RAILS_TYPE_MAP =
{
  "string" => "varchar",
  "text" => "text",
  "integer" => "integer",
  "bigint" => "bigint",
  "float" => "float",
  "decimal" => "decimal",
  "boolean" => "boolean",
  "datetime" => "datetime",
  "date" => "date",
  "time" => "time",
  "binary" => "binary",
  "json" => "json",
  "jsonb" => "jsonb",
  "uuid" => "uuid",
  "inet" => "inet",
  "cidr" => "cidr",
  "macaddr" => "macaddr",
  "hstore" => "hstore",
  "serial" => "serial",
  "tsrange" => "tsrange",
  "daterange" => "daterange",
  "int4range" => "int4range",
  "int8range" => "int8range",
  "numrange" => "numrange",
  "point" => "point",
  "line" => "line",
  "circle" => "circle",
  "polygon" => "polygon",
  "xml" => "xml",
  "money" => "money",
  "virtual" => "virtual"
}.freeze
TIMESTAMP_COLUMNS =
%w[created_at updated_at].freeze

Instance Method Summary collapse

Constructor Details

#initialize(schema_content) ⇒ SchemaRbParserService

Returns a new instance of SchemaRbParserService.



39
40
41
42
43
44
# File 'app/services/dbdoc_engine/schema_rb_parser_service.rb', line 39

def initialize(schema_content)
  @schema_content = schema_content
  @tables = []
  @foreign_keys = []
  @standalone_indexes = []
end

Instance Method Details

#parse ⇒ Object



46
47
48
49
50
51
52
53
54
# File 'app/services/dbdoc_engine/schema_rb_parser_service.rb', line 46

def parse
  extract_tables
  extract_standalone_foreign_keys
  extract_standalone_indexes
  apply_foreign_keys_to_columns
  apply_standalone_indexes

  { tables: @tables, foreign_keys: @foreign_keys }
end