Skip to content

Commit 49d21f3

Browse files
committed
Add support for chunk method in chain.
1 parent e2c24c4 commit 49d21f3

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ script:
1010
- mvn clean package jacoco:report coveralls:jacoco
1111
- mvn -f math-plugin/pom.xml clean package jacoco:report
1212
- mvn -f string-plugin/pom.xml clean package jacoco:report
13+
- mvn -f lodash-plugin/pom.xml clean package jacoco:report
1314

lodash-plugin/src/main/java/com/github/underscore/lodash/$.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ public Chain(final T item) {
4242
public Chain(final List<T> list) {
4343
super(list);
4444
}
45+
46+
public Chain<List<List<T>>> chunk(final Integer size) {
47+
return new Chain<List<List<T>>>($.chunk(value(), size));
48+
}
4549
}
4650

4751
public static Chain chain(final String item) {
@@ -60,17 +64,21 @@ public static <T> Chain chain(final T ... list) {
6064
return new $.Chain<T>(Arrays.asList(list));
6165
}
6266

63-
public static <T> List<List<T>> chunk(final List<T> list, final Integer size) {
67+
public static <T> List<List<T>> chunk(final Iterable<T> list, final Integer size) {
6468
int index = 0;
65-
int length = list.size();
69+
int length = size(list);
6670
final List<List<T>> result = new ArrayList<List<T>>(length / size);
6771
while (index < length) {
68-
result.add(list.subList(index, Math.min(length, index + size)));
72+
result.add(newArrayList(list).subList(index, Math.min(length, index + size)));
6973
index += size;
7074
}
7175
return result;
7276
}
7377

78+
public List<List<T>> chunk(final Integer size) {
79+
return chunk(getIterable(), size);
80+
}
81+
7482
public static void main(String ... args) {
7583
final String message = "Underscore-java-lodash is a lodash plugin for underscore-java.\n\n"
7684
+ "For docs, license, tests, and downloads, see: http://javadev.github.io/underscore-java";

lodash-plugin/src/test/java/com/github/underscore/lodash/LodashTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ public class LodashTest {
4545
@Test
4646
public void chunk() {
4747
assertEquals("[[a, b], [c, d]]", $.chunk(asList("a", "b", "c", "d"), 2).toString());
48+
assertEquals("[[a, b], [c, d]]", new $(asList("a", "b", "c", "d")).chunk(2).toString());
49+
assertEquals("[[a, b], [c, d]]", $.chain(asList("a", "b", "c", "d")).chunk(2).value().toString());
4850
assertEquals("[[a, b, c], [d]]", $.chunk(asList("a", "b", "c", "d"), 3).toString());
4951
}
5052

0 commit comments

Comments
 (0)