110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
# File 'lib/solve/constraint.rb', line 110
def compare_approx(constraint, target_version)
min = constraint.version
max = if constraint.patch.nil?
Semverse::Version.new([min.major + 1, 0, 0, 0])
elsif constraint.build
identifiers = constraint.version.identifiers(:build)
replace = identifiers.last.to_i.to_s == identifiers.last.to_s ? "-" : nil
Semverse::Version.new([min.major, min.minor, min.patch, min.pre_release, identifiers.fill(replace, -1).join('.')])
elsif constraint.pre_release
identifiers = constraint.version.identifiers(:pre_release)
replace = identifiers.last.to_i.to_s == identifiers.last.to_s ? "-" : nil
Semverse::Version.new([min.major, min.minor, min.patch, identifiers.fill(replace, -1).join('.')])
else
Semverse::Version.new([min.major, min.minor + 1, 0, 0])
end
min <= target_version && target_version < max
end
|