ichannel 4.1.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog.txt +13 -0
- data/README.md +9 -3
- data/lib/ichannel/version.rb +1 -1
- data/lib/ichannel.rb +5 -12
- data/test/ichannel_class_test.rb +0 -21
- metadata +4 -4
data/ChangeLog.txt
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
== v5.0.0
|
2
|
+
* Remove IChannel#empty?
|
3
|
+
|
4
|
+
I think the #readable? method is all you need, since the inverse of
|
5
|
+
#readable? is the same as #empty? (at least in terms of logic).
|
6
|
+
|
7
|
+
== v4.1.0
|
8
|
+
* Add IChannel#readable?
|
9
|
+
|
10
|
+
A method that can tell you whether or not a read would block.
|
11
|
+
When it returns true, a read shouldn't block, on the other hand
|
12
|
+
if it were false it'd likely block by the time you call #get.
|
13
|
+
|
1
14
|
== v4.0.0
|
2
15
|
* Modify IChannel#empty?
|
3
16
|
|
data/README.md
CHANGED
@@ -67,7 +67,7 @@ can be passed as a serializer to IChannel.
|
|
67
67
|
|
68
68
|
__REAL WORLD EXAMPLES__
|
69
69
|
|
70
|
-
|
70
|
+
I am using IChannel in a couple of my own personal projects:
|
71
71
|
|
72
72
|
- [IProcess](https://github.com/robgleeson/iprocess)
|
73
73
|
Provides a number of abstractions on top of spawning subprocesses and
|
@@ -75,8 +75,14 @@ __REAL WORLD EXAMPLES__
|
|
75
75
|
extracted into its own project when I realised it could be useful on its
|
76
76
|
own.
|
77
77
|
|
78
|
-
- [
|
79
|
-
A UNIX(X)
|
78
|
+
- [xpool](https://github.com/robgleeson/xpool)
|
79
|
+
A lightweight UNIX(X) process pool implementation.
|
80
|
+
|
81
|
+
|
82
|
+
Other people have started to write code on top of ichannel, too:
|
83
|
+
|
84
|
+
- [ifuture](https://github.com/Havenwood/ifuture)
|
85
|
+
An implementation of Futures for Ruby using process forks and ichannel.
|
80
86
|
|
81
87
|
__PLATFORM SUPPORT__
|
82
88
|
|
data/lib/ichannel/version.rb
CHANGED
data/lib/ichannel.rb
CHANGED
@@ -126,21 +126,14 @@ class IChannel
|
|
126
126
|
|
127
127
|
#
|
128
128
|
# @return [Boolean]
|
129
|
-
# Returns true when the channel is
|
129
|
+
# Returns true when the channel is readable.
|
130
130
|
#
|
131
|
-
def
|
131
|
+
def readable?
|
132
132
|
if @reader.closed?
|
133
|
-
|
133
|
+
false
|
134
134
|
else
|
135
|
-
|
135
|
+
readable = IO.select [@reader], nil, nil, 0.1
|
136
|
+
!! readable
|
136
137
|
end
|
137
138
|
end
|
138
|
-
|
139
|
-
#
|
140
|
-
# @return [Boolean]
|
141
|
-
# Returns true when the channel is readable.
|
142
|
-
#
|
143
|
-
def readable?
|
144
|
-
! empty?
|
145
|
-
end
|
146
139
|
end
|
data/test/ichannel_class_test.rb
CHANGED
@@ -40,27 +40,6 @@ class IChannelTest < Test::Unit::TestCase
|
|
40
40
|
assert_equal %w(b), @channel.get
|
41
41
|
end
|
42
42
|
|
43
|
-
def test_empty_on_empty_channel
|
44
|
-
assert @channel.empty?
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_empty_on_populated_channel
|
48
|
-
@channel.put %w(a)
|
49
|
-
refute @channel.empty?
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_empty_on_emptied_channel
|
53
|
-
@channel.put %w(a)
|
54
|
-
@channel.get
|
55
|
-
assert @channel.empty?
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_empty_on_closed_channel
|
59
|
-
@channel.put %w(a)
|
60
|
-
@channel.close
|
61
|
-
assert @channel.empty?
|
62
|
-
end
|
63
|
-
|
64
43
|
def test_readable_on_populated_channel
|
65
44
|
@channel.put %w(a)
|
66
45
|
@channel.put %w(b)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ichannel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-01 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! "A modern and easy-to-use interprocess communication \n primitive."
|
15
15
|
email:
|
@@ -45,7 +45,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
45
45
|
version: '0'
|
46
46
|
segments:
|
47
47
|
- 0
|
48
|
-
hash: -
|
48
|
+
hash: -2692349737197848980
|
49
49
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
54
54
|
version: '0'
|
55
55
|
segments:
|
56
56
|
- 0
|
57
|
-
hash: -
|
57
|
+
hash: -2692349737197848980
|
58
58
|
requirements: []
|
59
59
|
rubyforge_project:
|
60
60
|
rubygems_version: 1.8.23
|