ichannel 6.1.1 → 6.1.1.1

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.
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