RubyGems · Schema
RubyGems Gem
A Ruby gem hosted on RubyGems.org, representing a packaged Ruby library or application distributed through the RubyGems package registry.
RubyPackage ManagerOpen SourceDeveloper Tools
Properties
| Name | Type | Description |
|---|---|---|
| name | string | The unique name of the gem on RubyGems.org |
| downloads | integer | Total number of downloads across all versions of this gem |
| version | string | The current (latest) version number following Ruby versioning conventions |
| version_created_at | string | ISO 8601 timestamp when the current version was published |
| version_downloads | integer | Number of downloads for the current version |
| platform | string | The platform the gem targets (e.g., ruby, java, x86_64-linux) |
| authors | string | Comma-separated list of gem authors |
| info | string | Short description of the gem |
| licenses | array | SPDX license identifiers for the gem |
| metadata | object | Additional metadata key-value pairs defined in the gemspec |
| yanked | boolean | Whether the current version has been yanked from the registry |
| sha | string | SHA-256 checksum of the gem file |
| project_uri | string | URI to the gem project page on RubyGems.org |
| gem_uri | string | URI to download the gem file |
| homepage_uri | stringnull | URI to the gem homepage |
| wiki_uri | stringnull | URI to the gem wiki |
| documentation_uri | stringnull | URI to the gem documentation |
| mailing_list_uri | stringnull | URI to the gem mailing list |
| source_code_uri | stringnull | URI to the gem source code repository |
| bug_tracker_uri | stringnull | URI to the gem bug tracker |
| changelog_uri | stringnull | URI to the gem changelog |
| funding_uri | stringnull | URI to the gem funding page |
| dependencies | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://rubygems.org/schemas/rubygems/gem.json",
"title": "RubyGems Gem",
"description": "A Ruby gem hosted on RubyGems.org, representing a packaged Ruby library or application distributed through the RubyGems package registry.",
"type": "object",
"required": ["name", "version"],
"properties": {
"name": {
"type": "string",
"description": "The unique name of the gem on RubyGems.org",
"pattern": "^[a-zA-Z0-9._-]+$",
"minLength": 1,
"maxLength": 255
},
"downloads": {
"type": "integer",
"description": "Total number of downloads across all versions of this gem",
"minimum": 0
},
"version": {
"type": "string",
"description": "The current (latest) version number following Ruby versioning conventions",
"pattern": "^[0-9]+(\\.[0-9]+)*(\\.[a-zA-Z0-9]+)*$"
},
"version_created_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when the current version was published"
},
"version_downloads": {
"type": "integer",
"description": "Number of downloads for the current version",
"minimum": 0
},
"platform": {
"type": "string",
"description": "The platform the gem targets (e.g., ruby, java, x86_64-linux)",
"default": "ruby"
},
"authors": {
"type": "string",
"description": "Comma-separated list of gem authors"
},
"info": {
"type": "string",
"description": "Short description of the gem"
},
"licenses": {
"type": "array",
"items": {
"type": "string"
},
"description": "SPDX license identifiers for the gem"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Additional metadata key-value pairs defined in the gemspec"
},
"yanked": {
"type": "boolean",
"description": "Whether the current version has been yanked from the registry"
},
"sha": {
"type": "string",
"description": "SHA-256 checksum of the gem file",
"pattern": "^[a-f0-9]{64}$"
},
"project_uri": {
"type": "string",
"format": "uri",
"description": "URI to the gem project page on RubyGems.org"
},
"gem_uri": {
"type": "string",
"format": "uri",
"description": "URI to download the gem file"
},
"homepage_uri": {
"type": ["string", "null"],
"format": "uri",
"description": "URI to the gem homepage"
},
"wiki_uri": {
"type": ["string", "null"],
"format": "uri",
"description": "URI to the gem wiki"
},
"documentation_uri": {
"type": ["string", "null"],
"format": "uri",
"description": "URI to the gem documentation"
},
"mailing_list_uri": {
"type": ["string", "null"],
"format": "uri",
"description": "URI to the gem mailing list"
},
"source_code_uri": {
"type": ["string", "null"],
"format": "uri",
"description": "URI to the gem source code repository"
},
"bug_tracker_uri": {
"type": ["string", "null"],
"format": "uri",
"description": "URI to the gem bug tracker"
},
"changelog_uri": {
"type": ["string", "null"],
"format": "uri",
"description": "URI to the gem changelog"
},
"funding_uri": {
"type": ["string", "null"],
"format": "uri",
"description": "URI to the gem funding page"
},
"dependencies": {
"$ref": "#/$defs/Dependencies"
}
},
"$defs": {
"Dependencies": {
"type": "object",
"description": "Runtime and development dependency lists for the gem",
"properties": {
"development": {
"type": "array",
"items": {
"$ref": "#/$defs/Dependency"
},
"description": "Dependencies needed only during development"
},
"runtime": {
"type": "array",
"items": {
"$ref": "#/$defs/Dependency"
},
"description": "Dependencies required at runtime"
}
}
},
"Dependency": {
"type": "object",
"description": "A dependency on another gem with version constraints",
"required": ["name", "requirements"],
"properties": {
"name": {
"type": "string",
"description": "Name of the dependency gem"
},
"requirements": {
"type": "string",
"description": "Version requirement string (e.g., '>= 1.0', '~> 2.0')"
}
}
},
"GemVersion": {
"type": "object",
"description": "A specific version of a Ruby gem with build and publication metadata",
"required": ["number"],
"properties": {
"authors": {
"type": "string",
"description": "Comma-separated list of version authors"
},
"built_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when the version was built"
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "ISO 8601 timestamp when the version was published"
},
"description": {
"type": "string",
"description": "Full description of the gem version"
},
"downloads_count": {
"type": "integer",
"description": "Number of downloads for this version",
"minimum": 0
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Additional metadata for this version"
},
"number": {
"type": "string",
"description": "The version number"
},
"summary": {
"type": "string",
"description": "Short summary of the gem version"
},
"platform": {
"type": "string",
"description": "The platform for this version"
},
"rubygems_version": {
"type": "string",
"description": "Minimum RubyGems version required"
},
"ruby_version": {
"type": "string",
"description": "Minimum Ruby version required"
},
"prerelease": {
"type": "boolean",
"description": "Whether this is a prerelease version"
},
"licenses": {
"type": "array",
"items": {
"type": "string"
},
"description": "SPDX license identifiers for this version"
},
"requirements": {
"type": "array",
"items": {
"type": "string"
},
"description": "System requirements for this version"
},
"sha": {
"type": "string",
"description": "SHA-256 checksum of the gem file",
"pattern": "^[a-f0-9]{64}$"
}
}
},
"Owner": {
"type": "object",
"description": "A gem owner on RubyGems.org",
"required": ["id"],
"properties": {
"id": {
"type": "integer",
"description": "Unique user ID"
},
"handle": {
"type": "string",
"description": "User handle on RubyGems.org"
},
"email": {
"type": "string",
"format": "email",
"description": "User email address"
}
}
},
"Webhook": {
"type": "object",
"description": "A webhook subscription on RubyGems.org",
"required": ["url"],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "The URL that receives webhook POST notifications"
},
"failure_count": {
"type": "integer",
"description": "Number of consecutive delivery failures",
"minimum": 0
}
}
}
}
}