Coverage for lintro / utils / environment / ruby_info.py: 79%
14 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-04-03 18:53 +0000
1"""Ruby runtime information."""
3from __future__ import annotations
5from dataclasses import dataclass
8@dataclass
9class RubyInfo:
10 """Ruby runtime information."""
12 version: str | None
13 gem_version: str | None
14 bundler_version: str | None
16 @property
17 def section_title(self) -> str:
18 """Return the section title for display."""
19 return "Ruby"
21 def to_display_rows(self) -> list[tuple[str, str]]:
22 """Return label-value pairs for rendering."""
23 return [
24 ("Version", self.version or "(unknown)"),
25 ("gem", self.gem_version or "(not found)"),
26 ("bundler", self.bundler_version or "(not installed)"),
27 ]
29 def is_available(self) -> bool:
30 """Return whether this section has data to display."""
31 return self.version is not None