Class: SchemaFerry::Core::Translator
- Inherits:
-
Object
- Object
- SchemaFerry::Core::Translator
- Defined in:
- lib/schema_ferry/core/translator.rb
Instance Method Summary collapse
-
#initialize(config) ⇒ Translator
constructor
A new instance of Translator.
- #translate(raw_tables) ⇒ Object
Constructor Details
#initialize(config) ⇒ Translator
Returns a new instance of Translator.
6 7 8 9 10 |
# File 'lib/schema_ferry/core/translator.rb', line 6 def initialize(config) @config = config @column_converter = ColumnConverter.new(TypeMapper.new(config.global_type_overrides)) @enum_check = (EnumCheckBuilder.new if config.enum_mode == :check) end |
Instance Method Details
#translate(raw_tables) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/schema_ferry/core/translator.rb', line 12 def translate(raw_tables) kept_tables = raw_tables.reject { |t| @config.ignored_tables.include?(t[:name]) } foreign_keys = kept_tables.to_h { |t| [t[:name], surviving_foreign_keys(t)] } fk_columns = collect_fk_columns(foreign_keys) pg_tables = kept_tables.map do |raw| TableConverter.new( raw, rule: @config.table_rules[raw[:name]], foreign_keys: foreign_keys.fetch(raw[:name]), fk_columns: fk_columns.fetch(raw[:name], []), column_converter: @column_converter, enum_check: @enum_check ).convert end SchemafileRenderer.new.render(pg_tables) end |