Skip to content

Commit

Permalink
add Stream#to_s for improve API with any objects
Browse files Browse the repository at this point in the history
  • Loading branch information
kachick committed Sep 13, 2012
1 parent 4976097 commit bdebfae
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
2 changes: 2 additions & 0 deletions lib/immutable/stream.rb
Expand Up @@ -193,6 +193,8 @@ def inspect
"Stream[" + inspect_i + "]"
end

alias to_s inspect

def inspect_i(s = nil)
if eager?
if empty?
Expand Down
37 changes: 37 additions & 0 deletions test/immutable/test_stream.rb
Expand Up @@ -196,6 +196,43 @@ def test_inspect
s.inspect)
end

def test_to_s
s = Stream[]
assert_equal('Stream[...]', s.to_s)
assert_equal(nil, s[0])
assert_equal('Stream[]', s.to_s)
s = Stream[1]
assert_equal('Stream[...]', s.to_s)
assert_equal(1, s[0])
assert_equal('Stream[1, ...]', s.to_s)
assert_equal(nil, s[1])
assert_equal('Stream[1]', s.to_s)
s = Stream["foo"]
assert_equal("foo", s[0])
assert_equal('Stream["foo", ...]', s.to_s)
assert_equal(nil, s[1])
assert_equal('Stream["foo"]', s.to_s)
s = Stream[1, 2, 3]
assert_equal('Stream[...]', s.to_s)
assert_equal(1, s[0])
assert_equal('Stream[1, ...]', s.to_s)
assert_equal(2, s[1])
assert_equal('Stream[1, 2, ...]', s.to_s)
assert_equal(3, s[2])
assert_equal('Stream[1, 2, 3, ...]', s.to_s)
assert_equal(nil, s[3])
assert_equal('Stream[1, 2, 3]', s.to_s)
s = Stream[1, 2, 3]
assert_equal(2, s[1])
assert_equal('Stream[?, 2, ...]', s.to_s)
s = Stream[Stream[1, 2], Stream[3, 4]]
assert_equal(Stream[1, 2], s[0])
assert_equal(Stream[3, 4], s[1])
assert_equal(nil, s[2])
assert_equal('Stream[Stream[1, 2], Stream[3, 4]]',
s.to_s)
end

def test_length
assert_equal(0, Stream[].length)
assert_equal(1, Stream[1].length)
Expand Down

0 comments on commit bdebfae

Please sign in to comment.