Documentation
¶
Overview ¶
Package ruby provides dependency resolution for Ruby gems.
Overview ¶
This package implements deps.Language for Ruby, supporting:
- RubyGems.org registry resolution via rubygems client
- Gemfile parsing
Registry Resolution ¶
Use [Language.Resolver] to fetch dependencies from RubyGems:
resolver, _ := ruby.Language.Resolver()
g, _ := resolver.Resolve(ctx, "rails", deps.Options{MaxDepth: 10})
Manifest Parsing ¶
Parse Gemfile:
parser, _ := ruby.Language.Manifest("gem", nil)
result, _ := parser.Parse("Gemfile", deps.Options{})
Note: Gemfile parsing extracts gem names from `gem "name"` declarations. Transitive dependencies are resolved via RubyGems.
rubygems: github.com/matzehuels/stacktower/pkg/integrations/rubygems deps.Language: github.com/matzehuels/stacktower/pkg/core/deps.Language
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Language = &deps.Language{ Name: "ruby", DefaultRegistry: "rubygems", DefaultRuntimeVersion: "3.2", RegistryAliases: map[string]string{"gems": "rubygems"}, ManifestTypes: []string{"gemfile", "gemfile-lock"}, ManifestAliases: map[string]string{ "Gemfile": "gemfile", "Gemfile.lock": "gemfile-lock", }, NewResolver: newResolver, NewManifest: newManifest, ManifestParsers: manifestParsers, NormalizeName: func(name string) string { return strings.ToLower(strings.TrimSpace(name)) }, }
Language provides Ruby dependency resolution via RubyGems. Supports Gemfile and Gemfile.lock manifest files.
Functions ¶
This section is empty.
Types ¶
type GemMatcher ¶ added in v1.1.0
type GemMatcher struct{}
GemMatcher implements constraint matching for RubyGems version requirements. RubyGems requirements syntax: - Exact: = 1.0.0 - Not equal: != 1.0.0 - Greater/Less: >, >=, <, <= - Approximate: ~> 1.2 (pessimistic, allows 1.2.x but not 1.3) - Multiple requirements: comma-separated (AND)
func (GemMatcher) ParseConstraint ¶ added in v1.1.0
func (GemMatcher) ParseConstraint(constraint string) pubgrub.Condition
ParseConstraint converts a RubyGems requirement to a PubGrub Condition.
func (GemMatcher) ParseVersion ¶ added in v1.1.0
func (GemMatcher) ParseVersion(version string) pubgrub.Version
ParseVersion converts a RubyGems version string to a PubGrub SemanticVersion.
type Gemfile ¶
type Gemfile struct {
// contains filtered or unexported fields
}
Gemfile parses Ruby Gemfiles. It extracts gems and optionally resolves them via RubyGems.
func (*Gemfile) IncludesTransitive ¶
type GemfileLock ¶ added in v1.1.0
type GemfileLock struct{}
GemfileLock parses Gemfile.lock files. It provides a full transitive closure of the dependency graph without needing to contact a registry.
func (*GemfileLock) IncludesTransitive ¶ added in v1.1.0
func (g *GemfileLock) IncludesTransitive() bool
func (*GemfileLock) Parse ¶ added in v1.1.0
func (gl *GemfileLock) Parse(path string, opts deps.Options) (*deps.ManifestResult, error)
func (*GemfileLock) Supports ¶ added in v1.1.0
func (g *GemfileLock) Supports(name string) bool
func (*GemfileLock) Type ¶ added in v1.1.0
func (g *GemfileLock) Type() string