source "https://rubygems.org"

# Versión de Ruby compatible con Debian 12 (bookworm)
ruby "~> 3.0"

# ─── Gemas principales (runtime) ──────────────────────────────────────

# Framework web para dashboard (Fase 3)
gem "sinatra", "~> 3.0"
# Servidor web para Sinatra (requerido en Ruby 3+)
gem "webrick", "~> 1.8"

# Monitoreo de cambios en sistema de archivos (validador --watch)
gem "listen", "~> 3.8"

# Interacción programática con Git (hooks pre-commit, análisis de commits)
# gem "rugged", "~> 1.6" # MOVIDO A GRUPO FUTURE (requiere CMake)

# Procesamiento de JSON (aunque está en stdlib, esta gema ofrece mejor rendimiento)
gem "json", "~> 2.6"

# Notificaciones desktop (validador --watch)
gem "libnotify", "~> 0.9", :platforms => :ruby

# Conexión a PostgreSQL para dtic-BITACORAs
gem "pg", "~> 1.5"

# Conexión a MS SQL Server nativa (freetds-dev requerido)
gem "tiny_tds", "~> 2.1.7"

# ─── Gemas de desarrollo y pruebas ────────────────────────────────────
group :development, :test do
  # Framework de pruebas
  gem "rspec", "~> 3.12"

  # Console interactiva para debugging
  gem "pry", "~> 0.14"

  # Tareas de construcción
  gem "rake", "~> 13.0"

  # Cobertura de código
  gem "simplecov", "~> 0.22"

  # Mocking y stubbing
  gem "webmock", "~> 3.19"
end

# ─── Gemas opcionales (futuras fases) ────────────────────────────────
group :future do
  # API REST cliente (para integración con dashboard principal)
  gem "faraday", "~> 2.7"

  # Serialización YAML avanzada
  gem "safe_yaml", "~> 1.0"

  # Envío de emails (notificaciones por email)
  gem "mail", "~> 2.8"

  # Cliente SMTP
  gem "net-smtp", "~> 0.3"

  # Interacción programática con Git (hooks pre-commit, análisis de commits)
  gem "rugged", "~> 1.6"
end

# ─── Notas de instalación ─────────────────────────────────────────────
# Para instalar solo las gemas runtime (sin desarrollo):
#   bundle install --without development test future
#
# Para instalar todas las gemas:
#   bundle install
#
# Dependencias del sistema (Debian/Ubuntu):
#   sudo apt install libgit2-dev cmake pkg-config libssl-dev
#   (necesario para la gema 'rugged')
#
# Para actualizar gemas:
#   bundle update
