package com.aptana.rdt.core.gems;
public class GemRequirement {
private String name;
private String versionDependency;
public GemRequirement(String name, String versionDependency) {
this.name = name;
this.versionDependency = versionDependency;
}
private String getRule() {
return versionDependency.split(" ")[0];
}
private Version getVersion()
{
String raw = versionDependency.split(" ")[1];
// FIXME When would it be using commas? Multiple version matches?
if (raw.endsWith(","))
{
raw = new String(raw.substring(0, raw.length() - 1));
}
return new Version(raw);
}
public String toString() {
return name + " (" + versionDependency + ")";
}
public String getName() {
return name;
}
public boolean meetsRequirements(String version) {
Version gemVersion = new Version(version);
if (getRule().equals("=")) {
return gemVersion.equals(getVersion());
} else if (getRule().equals(">=")) {
return gemVersion.isGreaterThanOrEqualTo(getVersion());
} else if (getRule().equals("<=")) {
return gemVersion.isLessThanOrEqualTo(getVersion());
} else if (getRule().equals(">")) {
return gemVersion.isGreaterThan(getVersion());
} else if (getRule().equals("<")) {
return gemVersion.isLessThan(getVersion());
}
return false;
}
}