socketlogger 0.0.1 → 0.0.2

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