deps-bundler 0.7.0

Gemfile support for deps-lsp
Documentation

deps-bundler

Crates.io docs.rs codecov License: MIT

Gemfile support for deps-lsp.

This crate provides Bundler-specific functionality for the deps-lsp server, including Gemfile DSL parsing, dependency extraction, and rubygems.org registry integration.

Features

  • Gemfile Parsing — Parse Gemfile with position tracking using regex-based DSL parser
  • Lock File Parsing — Extract resolved versions from Gemfile.lock
  • rubygems.org Registry — HTTP client for version lookups and package search
  • Version Resolution — Ruby-aware version matching with pessimistic operator (~>)
  • Dependency Sources — Support for registry, git, path, and github dependencies
  • Group Handling — Handle :development, :test, :production groups
  • Ecosystem Trait — Implements deps_core::Ecosystem trait

Usage

[dependencies]
deps-bundler = "0.5"
use deps_bundler::{parse_gemfile, RubyGemsRegistry};

let result = parse_gemfile(content, &uri)?;
let registry = RubyGemsRegistry::new(cache);
let versions = registry.get_versions("rails").await?;

Supported Gemfile Syntax

source "https://rubygems.org"

gem "rails", "~> 7.0"
gem "pg", ">= 1.1"
gem "puma", require: false

group :development, :test do
  gem "rspec-rails"
end

gem "my_gem", git: "https://github.com/user/repo.git"
gem "local_gem", path: "../local_gem"

License

MIT