1 | |
package org.jbehave.core.io; |
2 | |
|
3 | |
import static org.apache.commons.lang.StringUtils.contains; |
4 | |
import static org.apache.commons.lang.StringUtils.substringAfterLast; |
5 | |
import static org.apache.commons.lang.StringUtils.substringBefore; |
6 | |
import static org.apache.commons.lang.WordUtils.capitalize; |
7 | |
|
8 | |
public class UnderscoredToCapitalized implements StoryNameResolver { |
9 | |
|
10 | |
private final String extension; |
11 | |
|
12 | |
public UnderscoredToCapitalized() { |
13 | 938 | this(".story"); |
14 | 938 | } |
15 | |
|
16 | 939 | public UnderscoredToCapitalized(String extension) { |
17 | 939 | this.extension = extension; |
18 | 939 | } |
19 | |
|
20 | |
public String resolveName(String path) { |
21 | 57 | String name = path; |
22 | 57 | if (contains(name, extension)) { |
23 | 24 | name = substringBefore(name, extension); |
24 | |
} |
25 | 57 | if (contains(name, '/')) { |
26 | 22 | name = substringAfterLast(name, "/"); |
27 | |
} |
28 | 57 | if (contains(name, '.')) { |
29 | 15 | name = substringAfterLast(name, "."); |
30 | |
} |
31 | 57 | return capitalize(name.replace("_", " ")); |
32 | |
} |
33 | |
|
34 | |
} |