ichannel 6.1.1 → 6.1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/ChangeLog.txt +60 -58
  2. data/README.md +14 -1
  3. data/lib/ichannel/version.rb +1 -1
  4. metadata +4 -4
data/ChangeLog.txt CHANGED
@@ -1,84 +1,86 @@
1
+ == v6.1.1.1
2
+ - Documentation improvements
3
+
1
4
  == v6.1.1
2
- - Add support for Rubinius, JRuby (1.9+ mode)
5
+ - Add support for Rubinius, JRuby (1.9+ mode)
3
6
 
4
- - Fix the optional dependency on Redis.
5
- This was totally broken :/ We explicitly required Redis in lib/ichannel.rb.
6
- Now we require "ichannel/redis" when IChannel.redis is invoked, which in turn
7
- requires "redis", so the dependency is only exposed when invoking that method.
7
+ - Fix the optional dependency on Redis.
8
+ This was totally broken :/ We explicitly required Redis in lib/ichannel.rb.
9
+ Now we require "ichannel/redis" when IChannel.redis is invoked, which in turn
10
+ requires "redis", so the dependency is only exposed when invoking that method.
8
11
 
9
12
  == v6.1.0
10
- - Redis#last_msg, UNIXSocket#last_msg changes.
11
- The last_msg method returns the last value read by #get when a channel is
12
- not readable.
13
+ - Redis#last_msg, UNIXSocket#last_msg changes.
14
+ The last_msg method returns the last value read by #get when a channel is
15
+ not readable.
13
16
 
14
- - change IChannel from being a class to a module.
15
- There's no need to create an instance of IChannel anymore.
17
+ - change IChannel from being a class to a module.
18
+ There's no need to create an instance of IChannel anymore.
16
19
 
17
- - Add IChannel::Redis.
18
- Add Redis as a backend.
20
+ - Add IChannel::Redis.
21
+ Add Redis as a backend.
19
22
 
20
23
  == v6.0.0
21
- - IChannel::UNIXSocket can now be serialized by Marshal.
22
- IChannel::UNIXSocket can be serialized by Marshal but there's a gotcha: it
23
- only really works on the same machine between one or more Ruby processes.
24
- The UNIXSocket#marshal_dump method is implemented to dump the FDs in an array,
25
- so this feature won't fair well across different machines or time but I've
26
- found this feature useful nonetheless.
24
+ - IChannel::UNIXSocket can now be serialized by Marshal.
25
+ IChannel::UNIXSocket can be serialized by Marshal but there's a gotcha: it
26
+ only really works on the same machine between one or more Ruby processes.
27
+ The UNIXSocket#marshal_dump method is implemented to dump the FDs in an array,
28
+ so this feature won't fair well across different machines or time but I've
29
+ found this feature useful nonetheless.
27
30
 
28
- - add IChannel.unix(…)
29
- Returns an instance of IChannel::UNIXSocket.
31
+ - add IChannel.unix(…)
32
+ Returns an instance of IChannel::UNIXSocket.
30
33
 
31
- - add IChannel::UNIXSocket
32
- rename IChannel as IChannel::UNIXSocket in preparation for multiple
33
- backends(UNIXSocket, Redis, …).
34
+ - add IChannel::UNIXSocket
35
+ rename IChannel as IChannel::UNIXSocket in preparation for multiple
36
+ backends(UNIXSocket, Redis, …).
34
37
 
35
38
  == v5.2.0
36
- - add IChannel#last_msg.
37
- Reads the last message written to the channel by reading until the channel
38
- is empty. The last message is cached and reset to nil on call to #close.
39
+ - add IChannel#last_msg.
40
+ Reads the last message written to the channel by reading until the channel
41
+ is empty. The last message is cached and reset to nil on call to #close.
39
42
 
40
43
  == v5.1.1.1, v5.1.1.2, v5.1.1.3, v5.1.1.4, v5.1.1.5
41
- - doc improvements
42
- a set of releases that improved the README & api docs.
44
+ - doc improvements
45
+ a set of releases that improved the README & api docs.
43
46
 
44
47
  == v5.1.1
45
- - Change socket type to use TCP.
46
- The use of UDP could result in bugs because of its unordered nature.
48
+ - Change socket type to use TCP.
49
+ The use of UDP could result in bugs because of its unordered nature.
47
50
 
48
51
  == v5.1.0
49
- - Remove restriction on size of message.
50
- IChannel#get can read a message of any size(before hand it was limited to
51
- 1MB in size). Thanks to @quezacoatl.
52
+ - Remove restriction on size of message.
53
+ IChannel#get can read a message of any size(before hand it was limited to
54
+ 1MB in size). Thanks to @quezacoatl.
52
55
 
53
- - IChannel#readable? no longer blocks.
54
- IChannel#readable? no longer blocks for 0.1 seconds on IO.select call.
55
- Thanks to quezacoatl(https://github.com/quezacoatl) for the initial
56
- implementation.
56
+ - IChannel#readable? no longer blocks.
57
+ IChannel#readable? no longer blocks for 0.1 seconds on IO.select call.
58
+ Thanks to quezacoatl(https://github.com/quezacoatl) for the initial
59
+ implementation.
57
60
 
58
61
  == v5.0.0
59
- - Remove IChannel#empty?
60
- I think the #readable? method is all you need, and is a much more
61
- accurate description of what the method is asking. We cannot determine
62
- if the channel is really empty, but we can ask if it is readable at the
63
- time you ask.
62
+ - Remove IChannel#empty?
63
+ I think the #readable? method is all you need, and is a much more
64
+ accurate description of what the method is asking. We cannot determine
65
+ if the channel is really empty, but we can ask if it is readable at the
66
+ time you ask.
64
67
 
65
68
  == v4.1.0
66
- - Add IChannel#readable?
67
- A method that can tell you whether or not a read would block.
68
- When it returns true, a read shouldn't block, on the other hand
69
- if it were false it'd likely block by the time you call #get.
70
-
69
+ - Add IChannel#readable?
70
+ A method that can tell you whether or not a read would block.
71
+ When it returns true, a read shouldn't block, on the other hand
72
+ if it were false it'd likely block by the time you call #get.
71
73
  == v4.0.0
72
- - Modify IChannel#empty?
73
- It now returns true in case the underlying UNIXSocket being used as a
74
- reader is closed.
74
+ - Modify IChannel#empty?
75
+ It now returns true in case the underlying UNIXSocket being used as a
76
+ reader is closed.
75
77
 
76
78
  == v3.1.0
77
- - Add IChannel#empty?.
78
- IChannel#empty? returns true when the channel is empty(nothing to read).
79
-
80
- - Micro speed improvement on #write!, & #recv! operations.
81
- By passing nil instead of creating two empty arrays for every read/write
82
- operation we should see a very small improvement in their performance.
83
-
84
- - Add ChangeLog.txt
79
+ - Add IChannel#empty?.
80
+ IChannel#empty? returns true when the channel is empty(nothing to read).
81
+
82
+ - Micro speed improvement on #write!, & #recv! operations.
83
+ By passing nil instead of creating two empty arrays for every read/write
84
+ operation we should see a very small improvement in their performance.
85
+
86
+ - Add ChangeLog.txt
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- __OVERVIEW__
1
+ __OVERVIEW__
2
2
 
3
3
  | Project | ichannel
4
4
  |:----------------|:--------------------------------------------------
@@ -15,6 +15,19 @@ the same machine or network. The basic premise is that you can "put" a ruby
15
15
  object onto the channel and on the other end(maybe in a different process,
16
16
  or maybe on a different machine) you can "get" the object from the channel.
17
17
 
18
+ The two main modes of transport are a [UNIXSocket](http://www.ruby-doc.org/stdlib-2.0/libdoc/socket/rdoc/UNIXSocket.html)
19
+ and [redis](https://redis.io). A (unbound) unix socket is local to one machine but it can
20
+ act as a queue, it has no external dependencies, & it shares the same interface
21
+ as its redis counterpart. A redis channel can do all of the above but also expand
22
+ its reach beyond one machine by sending and receiving messages from other
23
+ channels running on different machines.
24
+
25
+ A channel depends on a serializer when reading and writing from the underlying
26
+ transport(i.e: redis or a unix socket) but the choice of serializer is up
27
+ to you. The default is set to be [Marshal](http://ruby-doc.org/core-2.0/Marshal.html)
28
+ but a serializer can be any object that implements dump and load. A few off the top of
29
+ my head would be JSON, YAML, or MessagePack(with a wrapper, see examples).
30
+
18
31
  __EXAMPLES__
19
32
 
20
33
  __1.__
@@ -1,3 +1,3 @@
1
1
  module IChannel
2
- VERSION = "6.1.1"
2
+ VERSION = "6.1.1.1"
3
3
  end
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: 6.1.1
4
+ version: 6.1.1.1
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: 2013-05-05 00:00:00.000000000 Z
12
+ date: 2013-05-06 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: ! "A modern and easy-to-use interprocess communication \n primitive."
15
15
  email:
@@ -51,7 +51,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
51
51
  version: '0'
52
52
  segments:
53
53
  - 0
54
- hash: -277858576396614172
54
+ hash: 1434889147865179878
55
55
  required_rubygems_version: !ruby/object:Gem::Requirement
56
56
  none: false
57
57
  requirements:
@@ -60,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
60
  version: '0'
61
61
  segments:
62
62
  - 0
63
- hash: -277858576396614172
63
+ hash: 1434889147865179878
64
64
  requirements: []
65
65
  rubyforge_project:
66
66
  rubygems_version: 1.8.23