Module: HotwireClub::MCP::Database
- Defined in:
- lib/hotwire_club/mcp/database.rb,
lib/hotwire_club/mcp/database/adapter.rb,
lib/hotwire_club/mcp/database/relations/docs.rb,
lib/hotwire_club/mcp/database/relations/tags.rb,
lib/hotwire_club/mcp/database/relations/chunks.rb,
lib/hotwire_club/mcp/database/relations/doc_tags.rb,
lib/hotwire_club/mcp/database/repositories/docs_repo.rb,
lib/hotwire_club/mcp/database/repositories/tags_repo.rb,
lib/hotwire_club/mcp/database/repositories/chunks_repo.rb
Overview
Database module for ROM container setup
Defined Under Namespace
Classes: Adapter, Chunks, ChunksRepo, DocTags, Docs, DocsRepo, Tags, TagsRepo
Class Method Summary collapse
-
.container(db_path = nil) ⇒ ROM::Container
Create and configure ROM container.
Class Method Details
.container(db_path = nil) ⇒ ROM::Container
Create and configure ROM container
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/hotwire_club/mcp/database.rb', line 18 def self.container(db_path = nil) db_path ||= Schema::DB_PATH # Use absolute path with three slashes for SQLite URI format # URI encode the path to handle spaces and special characters absolute_path = File.(db_path) encoded_path = URI::RFC2396_PARSER.escape(absolute_path) sqlite_uri = "sqlite:///#{encoded_path}" ROM.container(:sql, sqlite_uri) do |config| # auto_registration expects files in subdirectories (relations/, mappers/, commands/) # It will automatically require and register relation classes from database/relations/ config.auto_registration( File.join(__dir__, "database"), namespace: "HotwireClub::MCP::Database", ) end end |