module YAVDB::Utils::SemVer
Constants
- SEMANTIC_INTERVAL_REGEX
Public Class Methods
clean_versions(versions)
click to toggle source
# File lib/yavdb/utils/semver.rb, line 23 def self.clean_versions(versions) return if versions.nil? || (!versions.is_a?(String) && !versions.is_a?(Array)) versions = to_array(versions).map do |version| if semantic_interval?(version) convert_to_semver(version) else split_versions(version) end end versions .flatten .map(&:strip) .select { |str| str != '-' && !str.empty? } end
Private Class Methods
convert_to_semver(version)
click to toggle source
# File lib/yavdb/utils/semver.rb, line 56 def convert_to_semver(version) ver_tmp = version .scan(SEMANTIC_INTERVAL_REGEX) .flatten .map { |v| SemanticInterval.parse(v) } if ver_tmp.any? ver_tmp else version end end
semantic_interval?(version)
click to toggle source
# File lib/yavdb/utils/semver.rb, line 52 def semantic_interval?(version) version =~ SEMANTIC_INTERVAL_REGEX end
split_versions(version)
click to toggle source
# File lib/yavdb/utils/semver.rb, line 69 def split_versions(version) version .strip .split(%r{,|\|\|}) end
to_array(versions)
click to toggle source
# File lib/yavdb/utils/semver.rb, line 44 def to_array(versions) versions = [versions] if versions.is_a?(String) versions .flatten .reject { |str| str.strip.empty? } end