Sha256: 179ce87d608521e3b94d6f580c5ea16830c244456e34fec52b4388c67b493a09
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
# frozen_string_literal: true # The gem namespace. module Versionaire # Conversion function for casting (strict) a value into a version. # rubocop:disable Style/MethodName # rubocop:disable Metrics/MethodLength # rubocop:disable Metrics/AbcSize # rubocop:disable Metrics/CyclomaticComplexity def Version value case value when String fail(Errors::Conversion, Errors::Conversion.string_message) unless value =~ Version.format Version.new Version.arguments(*value.tr("v", "").split(".").map(&:to_i)) when Array fail(Errors::Conversion, Errors::Conversion.array_message) unless (0..3).cover?(value.size) Version.new Version.arguments(*value.fill(0, value.size..2)) when Hash valid = value.keys.all? { |key| Version.keys.include? key } fail(Errors::Conversion, Errors::Conversion.hash_message) unless valid Version.new value when Version then value else fail(Errors::Conversion, Errors::Conversion.primitive_message) end end module_function :Version end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
versionaire-0.1.0 | lib/versionaire/conversion.rb |