Class: CreateRailsApp::Detection::RailsVersions

Inherits:
Object
  • Object
show all
Defined in:
lib/create_rails_app/detection/rails_versions.rb

Overview

Detects locally installed Rails versions using gem list.

Groups installed versions by supported series (7.2, 8.0, 8.1) and returns the latest patch version for each installed series.

Constant Summary collapse

VERSION_PATTERN =

Returns pattern to extract version strings from gem list output.

Returns:

  • (Regexp)

    pattern to extract version strings from gem list output

/\d+\.\d+\.\d+(?:\.\w+)?/

Instance Method Summary collapse

Constructor Details

#initialize(gem_command: 'gem') ⇒ RailsVersions

Returns a new instance of RailsVersions.

Parameters:

  • gem_command (String) (defaults to: 'gem')

    path or name of the gem executable



17
18
19
# File 'lib/create_rails_app/detection/rails_versions.rb', line 17

def initialize(gem_command: 'gem')
  @gem_command = gem_command
end

Instance Method Details

#detectHash{String => String}

Detects installed Rails versions grouped by supported series.

Returns:

  • (Hash{String => String})

    series => latest patch version e.g. { “8.0” => “8.0.7”, “8.1” => “8.1.2” }



25
26
27
28
# File 'lib/create_rails_app/detection/rails_versions.rb', line 25

def detect
  versions = installed_versions
  group_by_series(versions)
end