Module: ForemanFogProxmox::Semver

Defined in:
lib/foreman_fog_proxmox/semver.rb

Overview

You should have received a copy of the GNU General Public License along with ForemanFogProxmox. If not, see <www.gnu.org/licenses/>.

Defined Under Namespace

Classes: SemverClass

Constant Summary collapse

SEMVER_REGEX =
/^(\d+)[.]{1}(\d+)[.]{1}(\d+)[-]{0,1}(\w+){0,1}$/

Class Method Summary collapse

Class Method Details

.is_semver?(version) ⇒ Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/foreman_fog_proxmox/semver.rb', line 90

def self.is_semver?(version)
    version.is_a?(String) && version.match(SEMVER_REGEX)
end

.to_semver(version) ⇒ Object

Raises:

  • (ArgumentError)


93
94
95
96
97
98
99
100
101
# File 'lib/foreman_fog_proxmox/semver.rb', line 93

def self.to_semver(version)
    raise ArgumentError unless self.is_semver?(version)
    version_a = version.scan(SEMVER_REGEX)
    raise ArgumentError if version_a.empty?
    semver_a = version_a.first
    raise ArgumentError if semver_a.empty?
    raise ArgumentError if semver_a.size < 4
    SemverClass.new(semver_a[0],semver_a[1],semver_a[2],semver_a[3])
end