socketlogger 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d90f4c2e9b207907d32c4be8b124963b50b97142
4
- data.tar.gz: f558a46f3216eae48704a3f481508acf93333d00
3
+ metadata.gz: 8318459a8106d5579cc6a6b8eb5a84328ee2ac43
4
+ data.tar.gz: 9f44b72a4140078e0f72e8be0299dcbb57c80162
5
5
  SHA512:
6
- metadata.gz: fd9c70514fe48d225a733bd16d37067ffa6d3eb251c0312e9c5680437e4022e77459c5732ff43a0d5c8d06388bd14c418dcb36f15370c9ddedf4a747602528d7
7
- data.tar.gz: 849827bb6fc83c6a022ed43d7e4e199df8ae9e5ffebc1163561d457f90c35fc5e7964fb9426ac89557766553de09f2bf681d6d1c25b2f95bc5d2e8f82fbbcef9
6
+ metadata.gz: 1c9317705fe69f8c505dad5179e7456c07f0e25bfbd7191c85094a81ba1e85faa4c20e69c56ace5a9f7af801dab1dc001b4c533aa2ad49b04a9fcf5f0ec6386d
7
+ data.tar.gz: 9917b9bf791b47241a86f8981f0970eedc3a5b6b69f5937aadec44f1986b7dea9930903bab273fe611007624e7822615eacd753a3937e75a1ef0432e9424d881
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  vendor
2
- .bundle
2
+ .bundle
3
+ *.gem
@@ -1,11 +1,19 @@
1
1
  require 'ezmq'
2
+ class Logger
2
3
 
3
- module Logger
4
-
5
- @logger = EZMQ::Publisher.new :connect
4
+ def initialize options={}
5
+ @port = options[:port]
6
+ @topic = options[:topic]
7
+ @transport = options[:transport]
8
+ @delay = options [:delay]
9
+ @logger = EZMQ::Publisher.new :connect, port: @port, transport: @transport
10
+ sleep 1 if @delay
11
+ end
6
12
 
7
- def self.log message
8
- @logger.send message, topic: 'logging'
13
+ def log message
14
+ @logger.send message, topic: @topic
9
15
  end
10
16
 
11
- end
17
+ end
18
+
19
+ # delayed mode will sleep for 1 second after initializing the publisher
@@ -0,0 +1,11 @@
1
+ require_relative 'lib/socketlogger'
2
+
3
+ logger = Logger.new port: 4000, transport: :tcp, topic: 'logging', delay: true
4
+
5
+ 50.times do |i|
6
+ puts logger.log "A#{i}"
7
+ end
8
+ sleep(3)
9
+ 50.times do |i|
10
+ puts logger.log "B#{i}"
11
+ end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = 'socketlogger'
3
- gem.version = '0.0.1'
3
+ gem.version = '0.0.2'
4
4
  gem.licenses = 'MIT'
5
5
  gem.authors = ['Kinnan Kwok']
6
6
  gem.email = 'kkwoker@gmail.com'
@@ -1,17 +1,44 @@
1
1
  require 'kintama'
2
+ require_relative '../lib/socketlogger'
2
3
  require 'pry'
3
4
 
4
- context "Logger module" do
5
+ context 'Logger' do
5
6
  setup do
6
- require_relative '../lib/socketlogger'
7
+ @topic = 'logging'
8
+ @publisher = Logger.new 4000, :tcp, @topic
9
+ @message = 'sike!'
7
10
  end
8
11
 
9
- it "should publish to a socket and return a number equal to length of message + length of topic + 1" do
10
- message = 'sike!'
11
- topic = 'logging'
12
- sent = Logger::log message
13
- characters_sent = message.length + topic.length + 1
12
+ it 'should publish to a socket and return a number equal to length of message + length of topic + 1' do
13
+ sent = @publisher.log @message
14
+ characters_sent = @message.length + @topic.length + 1
14
15
  assert_equal characters_sent, sent
15
16
  end
16
17
 
17
18
  end
19
+
20
+ context 'Receiver' do
21
+ setup do
22
+ @publisher = Logger.new 4000, :tcp, 'worker'
23
+ @subscriber = EZMQ::Subscriber.new :bind, port: 4000, topic: 'worker'
24
+ @message = 'sike!'
25
+ Thread.new do
26
+ loop do
27
+ @publisher.log @message
28
+ end
29
+ end
30
+ end
31
+
32
+ it 'should receive messages' do
33
+ messages = []
34
+ topics = []
35
+ 1000.times do
36
+ message, topic = @subscriber.receive
37
+ messages << message
38
+ topics << topic
39
+ end
40
+ assert_equal 1000, messages.size
41
+
42
+ end
43
+
44
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: socketlogger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kinnan Kwok
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-02 00:00:00.000000000 Z
11
+ date: 2015-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ezmq
@@ -62,6 +62,7 @@ files:
62
62
  - Gemfile
63
63
  - Gemfile.lock
64
64
  - lib/socketlogger.rb
65
+ - publisher.rb
65
66
  - socketlogger.gemspec
66
67
  - tests/socketlogger.rb
67
68
  homepage: