Class: Woods::Notion::Mappers::ModelMapper

Inherits:
Object
  • Object
show all
Includes:
Shared
Defined in:
lib/woods/notion/mappers/model_mapper.rb

Overview

Maps a model ExtractedUnit to Notion page properties for the Data Models database.

Transforms model metadata (associations, validations, callbacks, scopes, git data) into Notion API property format for the Data Models database.

Examples:

mapper = ModelMapper.new
properties = mapper.map(unit_data)
client.create_page(database_id: db_id, properties: properties)

Constant Summary

Constants included from Shared

Shared::MAX_RICH_TEXT_LENGTH

Instance Method Summary collapse

Methods included from Shared

#rich_text_property

Instance Method Details

#map(unit_data) ⇒ Hash

Map a model unit to Notion Data Models page properties.

Parameters:

  • unit_data (Hash)

    Parsed model ExtractedUnit JSON

Returns:

  • (Hash)

    Notion page properties hash



25
26
27
28
29
30
31
# File 'lib/woods/notion/mappers/model_mapper.rb', line 25

def map(unit_data)
   = unit_data['metadata'] || {}
  properties = build_text_properties(unit_data, )
  properties['Column Count'] = { number: column_count() }
  add_git_properties(properties, ['git'] || {})
  properties
end