Skip to content

Commit

Permalink
compact method
Browse files Browse the repository at this point in the history
  • Loading branch information
kemsky committed Nov 13, 2015
1 parent ea2284e commit 58dda9c
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 5 deletions.
17 changes: 14 additions & 3 deletions source/com/kemsky/Stream.as
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.kemsky
{
import com.kemsky.filters._;
import com.kemsky.filters.defined;
import com.kemsky.filters.existing;
import com.kemsky.support.*;

import flash.utils.ByteArray;
Expand Down Expand Up @@ -182,8 +183,11 @@ package com.kemsky
}

/**
* Creates a new list for all items that are not strictly equal to undefined (item !== <i>undefined</i>).
* Creates a new list for all items that match <i>defined</i> or <i>existing</i> filters depending on undefinedOnly parameter.
* @param undefinedOnly use <i>defined</i> filter
* @return A new list that contains all items from the original list that are not equal to <i>undefined</i>.
* @see com.kemsky.filters.defined
* @see com.kemsky.filters.existing
* @example
* <pre>
* var s:Stream = new Stream();
Expand All @@ -195,9 +199,16 @@ package com.kemsky
* </pre>
* @internal immutable
*/
public function compact():Stream
public function compact(undefinedOnly:Boolean = false):Stream
{
return filter(defined(_));
if(undefinedOnly)
{
return filter(defined(_));
}
else
{
return filter(existing(_));
}
}

/**
Expand Down
15 changes: 13 additions & 2 deletions testSrc/com/kemsky/TestStream.as
Original file line number Diff line number Diff line change
Expand Up @@ -131,12 +131,23 @@ package com.kemsky
{
var s:Stream = $();
s[0] = 1;
s[10] = 2;
s[3] = 2;

var c:Stream = s.compact();
var c:Stream = s.compact(true);
assertEquals(c.length, 2);
assertEquals(c.first, 1);
assertEquals(c.second, 2);

var s1:Stream = $();
s1[0] = 1;
s1[1] = null;
s1[2] = NaN;
s1[3] = 2;

var c1:Stream = s1.compact();
assertEquals(c1.length, 2);
assertEquals(c1.first, 1);
assertEquals(c1.second, 2);
}

[Test]
Expand Down

0 comments on commit 58dda9c

Please sign in to comment.