Skip to content

Commit

Permalink
parse branches level for symfony-installer version combobox and add p…
Browse files Browse the repository at this point in the history
…roject icon #645 #643
  • Loading branch information
Haehnchen committed Dec 12, 2015
1 parent b18c0ba commit dcf12c9
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.PlatformUtils;
import fr.adrienbrault.idea.symfony2plugin.Settings;
import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons;
import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import javax.swing.*;
import java.io.File;

/**
Expand All @@ -25,12 +27,12 @@ public class SymfonyInstallerProjectGenerator extends WebProjectTemplate<Symfony
@NotNull
@Override
public String getName() {
return "Symfony Installer Project";
return "Symfony Installer";
}

@Override
public String getDescription() {
return "Symfony Installer Project";
return "Symfony Installer";
}

@Override
Expand Down Expand Up @@ -115,4 +117,8 @@ public boolean isPrimaryGenerator()
return PlatformUtils.isPhpStorm();
}

@Override
public Icon getLogo() {
return Symfony2Icons.SYMFONY;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

Expand Down Expand Up @@ -117,6 +115,9 @@ public static List<SymfonyInstallerVersion> getVersions(@NotNull String jsonCont

List<SymfonyInstallerVersion> symfonyInstallerVersions = new ArrayList<SymfonyInstallerVersion>();

// prevent adding duplicate version on alias names
Set<String> aliasBranches = new HashSet<String>();

// get alias version, in most common order
for(String s : new String[] {"latest", "lts"}) {
JsonElement asJsonObject = jsonObject.get(s);
Expand All @@ -125,9 +126,39 @@ public static List<SymfonyInstallerVersion> getVersions(@NotNull String jsonCont
}

String asString = asJsonObject.getAsString();
aliasBranches.add(asString);

symfonyInstallerVersions.add(new SymfonyInstallerVersion(s, String.format("%s (%s)", asString, s)));
}


List<SymfonyInstallerVersion> branches = new ArrayList<SymfonyInstallerVersion>();
Set<Map.Entry<String, JsonElement>> entries = jsonObject.entrySet();
for (Map.Entry<String, JsonElement> entry : entries) {
if(!entry.getKey().matches("^\\d+\\.\\d+$")) {
continue;
}

// "2.8.0-dev", "2.8.0-DEV" is not supported
String asString = entry.getValue().getAsString();
if(asString.matches(".*[a-zA-Z].*") || aliasBranches.contains(asString)) {
continue;
}

branches.add(new SymfonyInstallerVersion(asString, String.format("%s (%s)", entry.getKey(), asString)));
}

Collections.sort(branches, new Comparator<SymfonyInstallerVersion>() {
@Override
public int compare(SymfonyInstallerVersion o1, SymfonyInstallerVersion o2) {
return o1.getVersion().compareTo(o2.getVersion());
}
});

Collections.reverse(branches);

symfonyInstallerVersions.addAll(branches);

// we need reverse order for sorting them on version string
List<SymfonyInstallerVersion> installableVersions = new ArrayList<SymfonyInstallerVersion>();
for (JsonElement installable : jsonObject.getAsJsonArray("installable")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,13 @@ public void testFormatGetVersions() {
assertEquals("2.7.1 (latest)", versions.get(0).getPresentableName());

assertEquals("2.6.9", versions.get(2).getVersion());
assertEquals("2.6.9", versions.get(2).getPresentableName());
assertEquals("2.6 (2.6.9)", versions.get(2).getPresentableName());

assertEquals("2.3.30", versions.get(3).getVersion());
assertEquals("2.3 (2.3.30)", versions.get(3).getPresentableName());

assertEquals("2.6.9", versions.get(4).getVersion());
assertEquals("2.6.9", versions.get(4).getPresentableName());
}

@Test
Expand Down

0 comments on commit dcf12c9

Please sign in to comment.