Module: Hanami::CLI::Generators::Version Private

Defined in:
lib/hanami/cli/generators/version.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Since:

  • 2.0.0

Class Method Summary collapse

Class Method Details

.gem_requirementObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.0.0



14
15
16
17
18
# File 'lib/hanami/cli/generators/version.rb', line 14

def self.gem_requirement
  result = prerelease? ? prerelease_version : stable_version

  "~> #{result}"
end

.npm_package_requirementObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.0.0



20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/hanami/cli/generators/version.rb', line 20

def self.npm_package_requirement
  result = prerelease? ? prerelease_version : stable_version

  # Change "2.1.0.beta2.1" to "2.1.0-beta.2" (the only format tolerable by `npm install`)
  if prerelease?
    result = result
      .sub(/\.(alpha|beta|rc)/, '-\1')
      .sub(/(alpha|beta|rc)(\d+)(?:\.\d+)?\Z/, '\1.\2')
  end

  "^#{result}"
end

.prerelease?Boolean

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns:

  • (Boolean)

Since:

  • 2.0.0



33
34
35
# File 'lib/hanami/cli/generators/version.rb', line 33

def self.prerelease?
  version.match?(/alpha|beta|rc/)
end

.prerelease_versionObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Examples:

Hanami::VERSION # => 2.0.0.alpha8.1
Hanami::CLI::Generators::Version.prerelease_version # => "2.0.0.alpha"

Since:

  • 2.0.0



48
49
50
# File 'lib/hanami/cli/generators/version.rb', line 48

def self.prerelease_version
  version.sub(/[[[:digit:]].]*\Z/, "")
end

.stable_versionObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Examples:

Hanami::VERSION # => 2.3.1
Hanami::CLI::Generators::Version.stable_version # => "2.3.0"

Since:

  • 2.0.0



40
41
42
43
# File 'lib/hanami/cli/generators/version.rb', line 40

def self.stable_version
  major_minor = version.scan(/\A\d{1,2}\.\d{1,2}/).first
  "#{major_minor}.0"
end

.versionObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 2.0.0



8
9
10
11
12
# File 'lib/hanami/cli/generators/version.rb', line 8

def self.version
  return Hanami::VERSION if Hanami.const_defined?(:VERSION)

  Hanami::CLI::VERSION
end