Skip to content

Commit fcef1cf

Browse files
committed
🏷️ Update RBS types
1 parent 292fc94 commit fcef1cf

File tree

8 files changed

+56
-26
lines changed

8 files changed

+56
-26
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@ Please file a bug if you notice a violation of semantic versioning.
1818

1919
## [Unreleased]
2020
### Added
21+
- More RBS types
2122
### Changed
2223
### Deprecated
2324
### Removed
2425
### Fixed
26+
- RBS types are more accurate
2527
### Security
2628

2729
## [1.1.8] 2025-05-06

sig/version_gem.rbs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
module VersionGem
2-
VERSION: String
3-
# See the writing guide of rbs: https://github.com/ruby/rbs#guides
42
end

sig/version_gem/api.rbs

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,27 @@
11
module VersionGem
22
module Api
3+
# Internal memoized version string segments
34
@_to_a: Array[String]
45

6+
# Memoized components
57
@major: Integer
6-
78
@minor: Integer
8-
99
@patch: Integer
10-
1110
@pre: String?
12-
13-
@to_a: Array
14-
15-
@to_h: Hash
16-
17-
def major: -> Integer
18-
19-
def minor: -> Integer
20-
21-
def patch: -> Integer
22-
23-
def pre: -> String?
24-
25-
def to_a: -> Array
26-
27-
def to_h: -> Hash
11+
@to_a: Array[Integer | String | nil]
12+
@to_h: Hash[Symbol, (Integer | String | nil)]
13+
14+
# Public API
15+
def to_s: () -> String
16+
def major: () -> Integer
17+
def minor: () -> Integer
18+
def patch: () -> Integer
19+
def pre: () -> String?
20+
def to_a: () -> Array[Integer | String | nil]
21+
def to_h: () -> Hash[Symbol, (Integer | String | nil)]
2822

2923
private
3024

31-
def _to_a: -> Array[String]
25+
def _to_a: () -> Array[String]
3226
end
3327
end

sig/version_gem/basic.rbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module VersionGem
22
module Basic
3-
def self.extended: -> void
3+
def self.extended: () -> void
44
end
55
end

sig/version_gem/epoch.rbs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
module VersionGem
2+
module Epoch
3+
EPOCH_SIZE: Integer
4+
5+
# Hook used when this module is extended
6+
def self.extended: (untyped) -> void
7+
8+
module OverloadApiForEpoch
9+
# The epoch component (derived)
10+
def epoch: () -> Integer
11+
12+
# Override of Api#major returning the derived major component
13+
def major: () -> Integer
14+
15+
# Hash representation including epoch
16+
def to_h: () -> Hash[Symbol, (Integer | String | nil)]
17+
18+
# Array of components [epoch, major, minor, patch, pre]
19+
def to_a: () -> Array[Integer | String | nil]
20+
21+
private
22+
23+
def _major: () -> Integer
24+
end
25+
end
26+
end

sig/version_gem/error.rbs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module VersionGem
2+
class Error < ::RuntimeError
3+
end
4+
end

sig/version_gem/ruby.rbs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
module VersionGem
22
module Ruby
3-
RUBY_VER: Gem::Version
3+
RUBY_VER: ::Gem::Version
44

5-
def actual_minor_version?: -> bool
5+
# Check if the current Ruby version is >= given version for the engine
6+
def self.gte_minimum_version?: (String, ?String) -> bool
67

7-
def gte_minimum_version?: -> bool
8+
# Check if the current Ruby MAJOR.MINOR equals the given values for the engine
9+
def self.actual_minor_version?: ((Integer | String), (Integer | String), ?String) -> bool
810
end
911
end

sig/version_gem/version.rbs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
module VersionGem
22
module Version
33
VERSION: String
4+
5+
# At runtime this module is extended with Basic via class_eval in lib/version_gem.rb
6+
# Declare the intended extension so class methods are available in typing
7+
extend VersionGem::Basic
48
end
59
end

0 commit comments

Comments
 (0)