Skip to content

Commit 2b6567e

Browse files
committed
Move push(), pop(), shift() and unshift() to the underscore library.
1 parent eddbc4f commit 2b6567e

File tree

4 files changed

+107
-107
lines changed

4 files changed

+107
-107
lines changed

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

Lines changed: 1 addition & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* The MIT License (MIT)
33
*
4-
* Copyright 2016 Valentyn Kolesnikov
4+
* Copyright 2015-2017 Valentyn Kolesnikov
55
*
66
* Permission is hereby granted, free of charge, to any person obtaining a copy
77
* of this software and associated documentation files (the "Software"), to deal
@@ -460,22 +460,6 @@ public Chain<T> at(final Integer ... indexes) {
460460
return new Chain<T>($.at(value(), indexes));
461461
}
462462

463-
public Chain<T> push(final T ... values) {
464-
return new Chain<T>($.push(value(), values));
465-
}
466-
467-
public Chain<Tuple<T, List<T>>> pop() {
468-
return new Chain<Tuple<T, List<T>>>($.pop(value()));
469-
}
470-
471-
public Chain<Tuple<T, List<T>>> shift() {
472-
return new Chain<Tuple<T, List<T>>>($.shift(value()));
473-
}
474-
475-
public Chain<T> unshift(final T ... values) {
476-
return new Chain<T>($.unshift(value(), values));
477-
}
478-
479463
@SuppressWarnings("unchecked")
480464
public <F extends Number> Chain<F> sum() {
481465
return new Chain<F>($.sum((List<F>) value()));
@@ -875,48 +859,6 @@ public List<T> at(final Integer ... indexes) {
875859
return at((List<T>) getIterable(), indexes);
876860
}
877861

878-
public static <T> List<T> push(final List<T> list, final T ... values) {
879-
final List<T> result = newArrayList(list);
880-
for (T value : values) {
881-
result.add(value);
882-
}
883-
return result;
884-
}
885-
886-
public List<T> push(final T ... values) {
887-
return push((List<T>) getIterable(), values);
888-
}
889-
890-
public static <T> Tuple<T, List<T>> pop(final List<T> list) {
891-
return Tuple.create(last(list), initial(list));
892-
}
893-
894-
public Tuple<T, List<T>> pop() {
895-
return pop((List<T>) getIterable());
896-
}
897-
898-
public static <T> List<T> unshift(final List<T> list, final T ... values) {
899-
final List<T> result = newArrayList(list);
900-
int index = 0;
901-
for (T value : values) {
902-
result.add(index, value);
903-
index += 1;
904-
}
905-
return result;
906-
}
907-
908-
public List<T> unshift(final T ... values) {
909-
return unshift((List<T>) getIterable(), values);
910-
}
911-
912-
public static <T> Tuple<T, List<T>> shift(final List<T> list) {
913-
return Tuple.create(first(list), rest(list));
914-
}
915-
916-
public Tuple<T, List<T>> shift() {
917-
return shift((List<T>) getIterable());
918-
}
919-
920862
public static <T extends Number> T sum(final Iterable<T> iterable) {
921863
T result = null;
922864
for (final T item : iterable) {

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

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -432,54 +432,6 @@ public void at() {
432432
assertEquals("[a, c]", $.chain(asList("a", "b", "c")).at(0, 2).value().toString());
433433
}
434434

435-
/*
436-
_.push(['a', 'b', 'c'], 0, 2);
437-
// → ['a', 'b', 'c', 0, 2]
438-
*/
439-
@SuppressWarnings("unchecked")
440-
@Test
441-
public void push() {
442-
assertEquals("[a, b, c, 0, 2]", $.push(asList("a", "b", "c"), "0", "2").toString());
443-
assertEquals("[a, b, c, 0, 2]", new $(asList("a", "b", "c")).push("0", "2").toString());
444-
assertEquals("[a, b, c, 0, 2]", $.chain(asList("a", "b", "c")).push("0", "2").value().toString());
445-
}
446-
447-
/*
448-
_.pop(['a', 'b', 'c']);
449-
// → 'c'
450-
*/
451-
@SuppressWarnings("unchecked")
452-
@Test
453-
public void pop() {
454-
assertEquals("c", $.pop(asList("a", "b", "c")).fst().toString());
455-
assertEquals("c", new $(asList("a", "b", "c")).pop().fst().toString());
456-
assertEquals("c", $.chain(asList("a", "b", "c")).pop().item().fst().toString());
457-
}
458-
459-
/*
460-
_.shift(['a', 'b', 'c']);
461-
// → 'a'
462-
*/
463-
@SuppressWarnings("unchecked")
464-
@Test
465-
public void shift() {
466-
assertEquals("a", $.shift(asList("a", "b", "c")).fst().toString());
467-
assertEquals("a", new $(asList("a", "b", "c")).shift().fst().toString());
468-
assertEquals("a", $.chain(asList("a", "b", "c")).shift().item().fst().toString());
469-
}
470-
471-
/*
472-
_.unshift(['a', 'b', 'c'], 0, 2);
473-
// → [0, 2, 'a', 'b', 'c']
474-
*/
475-
@SuppressWarnings("unchecked")
476-
@Test
477-
public void unshift() {
478-
assertEquals("[0, 2, a, b, c]", $.unshift(asList("a", "b", "c"), "0", "2").toString());
479-
assertEquals("[0, 2, a, b, c]", new $(asList("a", "b", "c")).unshift("0", "2").toString());
480-
assertEquals("[0, 2, a, b, c]", $.chain(asList("a", "b", "c")).unshift("0", "2").value().toString());
481-
}
482-
483435
/*
484436
_.get({"a":[{"b":{"c":"d"}}]}, "a[0].b.c");
485437
// → "d"

src/main/java/com/github/underscore/$.java

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2148,6 +2148,22 @@ public Chain<String> join(final String separator) {
21482148
return new Chain<String>($.join(list, separator));
21492149
}
21502150

2151+
public Chain<T> push(final T ... values) {
2152+
return new Chain<T>($.push(value(), values));
2153+
}
2154+
2155+
public Chain<Tuple<T, List<T>>> pop() {
2156+
return new Chain<Tuple<T, List<T>>>($.pop(value()));
2157+
}
2158+
2159+
public Chain<Tuple<T, List<T>>> shift() {
2160+
return new Chain<Tuple<T, List<T>>>($.shift(value()));
2161+
}
2162+
2163+
public Chain<T> unshift(final T ... values) {
2164+
return new Chain<T>($.unshift(value(), values));
2165+
}
2166+
21512167
public Chain<T> skip(final int numberToSkip) {
21522168
return new Chain<T>(list.subList(numberToSkip, list.size()));
21532169
}
@@ -2244,6 +2260,48 @@ public String join() {
22442260
return join(iterable);
22452261
}
22462262

2263+
public static <T> List<T> push(final List<T> list, final T ... values) {
2264+
final List<T> result = newArrayList(list);
2265+
for (T value : values) {
2266+
result.add(value);
2267+
}
2268+
return result;
2269+
}
2270+
2271+
public List<T> push(final T ... values) {
2272+
return push((List<T>) getIterable(), values);
2273+
}
2274+
2275+
public static <T> Tuple<T, List<T>> pop(final List<T> list) {
2276+
return Tuple.create(last(list), initial(list));
2277+
}
2278+
2279+
public Tuple<T, List<T>> pop() {
2280+
return pop((List<T>) getIterable());
2281+
}
2282+
2283+
public static <T> List<T> unshift(final List<T> list, final T ... values) {
2284+
final List<T> result = newArrayList(list);
2285+
int index = 0;
2286+
for (T value : values) {
2287+
result.add(index, value);
2288+
index += 1;
2289+
}
2290+
return result;
2291+
}
2292+
2293+
public List<T> unshift(final T ... values) {
2294+
return unshift((List<T>) getIterable(), values);
2295+
}
2296+
2297+
public static <T> Tuple<T, List<T>> shift(final List<T> list) {
2298+
return Tuple.create(first(list), rest(list));
2299+
}
2300+
2301+
public Tuple<T, List<T>> shift() {
2302+
return shift((List<T>) getIterable());
2303+
}
2304+
22472305
@SuppressWarnings("unchecked")
22482306
public static <T> T[] concat(final T[] first, final T[] ... other) {
22492307
int length = 0;

src/test/java/com/github/underscore/UnderscoreTest.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,54 @@ public void join() {
8686
assertEquals("--", $.join(asList("", "", ""), "-"));
8787
}
8888

89+
/*
90+
_.push(['a', 'b', 'c'], 0, 2);
91+
// → ['a', 'b', 'c', 0, 2]
92+
*/
93+
@SuppressWarnings("unchecked")
94+
@Test
95+
public void push() {
96+
assertEquals("[a, b, c, 0, 2]", $.push(asList("a", "b", "c"), "0", "2").toString());
97+
assertEquals("[a, b, c, 0, 2]", new $(asList("a", "b", "c")).push("0", "2").toString());
98+
assertEquals("[a, b, c, 0, 2]", $.chain(asList("a", "b", "c")).push("0", "2").value().toString());
99+
}
100+
101+
/*
102+
_.pop(['a', 'b', 'c']);
103+
// → 'c'
104+
*/
105+
@SuppressWarnings("unchecked")
106+
@Test
107+
public void pop() {
108+
assertEquals("c", $.pop(asList("a", "b", "c")).fst().toString());
109+
assertEquals("c", new $(asList("a", "b", "c")).pop().fst().toString());
110+
assertEquals("c", $.chain(asList("a", "b", "c")).pop().item().fst().toString());
111+
}
112+
113+
/*
114+
_.shift(['a', 'b', 'c']);
115+
// → 'a'
116+
*/
117+
@SuppressWarnings("unchecked")
118+
@Test
119+
public void shift() {
120+
assertEquals("a", $.shift(asList("a", "b", "c")).fst().toString());
121+
assertEquals("a", new $(asList("a", "b", "c")).shift().fst().toString());
122+
assertEquals("a", $.chain(asList("a", "b", "c")).shift().item().fst().toString());
123+
}
124+
125+
/*
126+
_.unshift(['a', 'b', 'c'], 0, 2);
127+
// → [0, 2, 'a', 'b', 'c']
128+
*/
129+
@SuppressWarnings("unchecked")
130+
@Test
131+
public void unshift() {
132+
assertEquals("[0, 2, a, b, c]", $.unshift(asList("a", "b", "c"), "0", "2").toString());
133+
assertEquals("[0, 2, a, b, c]", new $(asList("a", "b", "c")).unshift("0", "2").toString());
134+
assertEquals("[0, 2, a, b, c]", $.chain(asList("a", "b", "c")).unshift("0", "2").value().toString());
135+
}
136+
89137
@Test
90138
public void compareStrings() {
91139
assertArrayEquals($.sort("CAT".split("")), $.sort("CTA".split("")));

0 commit comments

Comments
 (0)