diff --git a/pom.xml b/pom.xml
index 02d4acd..67094d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.academiadecodigo.bootcamp
prompt-view
- 0.2.1-SNAPSHOT
+ 0.3.1-SNAPSHOT
diff --git a/src/main/java/org/academiadecodigo/bootcamp/scanners/menu/CustomMenuInputScanner.java b/src/main/java/org/academiadecodigo/bootcamp/scanners/menu/CustomMenuInputScanner.java
new file mode 100644
index 0000000..8720c95
--- /dev/null
+++ b/src/main/java/org/academiadecodigo/bootcamp/scanners/menu/CustomMenuInputScanner.java
@@ -0,0 +1,36 @@
+package org.academiadecodigo.bootcamp.scanners.menu;
+
+import org.academiadecodigo.bootcamp.scanners.integer.IntegerSetInputScanner;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class CustomMenuInputScanner extends IntegerSetInputScanner {
+ private Map optionMap;
+
+ public CustomMenuInputScanner(Map optionMap) {
+ super(optionMap.keySet());
+ this.optionMap = new TreeMap<>(optionMap);
+ super.setMessage(buildMenu(getMessage()));
+ }
+
+ @Override
+ public void setMessage(String message) {
+ super.setMessage(buildMenu(message));
+ }
+
+ private String buildMenu(String message) {
+
+ StringBuilder menuBuilder = new StringBuilder("\n");
+ menuBuilder.append(message);
+ menuBuilder.append("\n");
+
+ for(Integer i: optionMap.keySet()) {
+ menuBuilder.append("\n");
+ menuBuilder.append(i).append(" - ").append(optionMap.get(i));
+ }
+
+ menuBuilder.append("\n> ");
+ return menuBuilder.toString();
+
+ }
+}
diff --git a/src/test/java/examples/menu/CustomMenuInputScannerTest.java b/src/test/java/examples/menu/CustomMenuInputScannerTest.java
new file mode 100644
index 0000000..c811fe8
--- /dev/null
+++ b/src/test/java/examples/menu/CustomMenuInputScannerTest.java
@@ -0,0 +1,23 @@
+package examples.menu;
+
+import org.academiadecodigo.bootcamp.Prompt;
+import org.academiadecodigo.bootcamp.scanners.menu.CustomMenuInputScanner;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class CustomMenuInputScannerTest {
+ public static void main(String[] args) {
+ Prompt prompt = new Prompt(System.in,System.out);
+
+ Map options = new HashMap<>();
+ options.put(5,"Bahia");
+ options.put(30,"João");
+ options.put(2,"Tiago");
+
+ CustomMenuInputScanner scanner = new CustomMenuInputScanner(options);
+ scanner.setMessage("Choose someone:");
+
+ System.out.println(prompt.getUserInput(scanner));
+ }
+}