zss 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9b273215c353dc2052fe86de1bba480e4ce01eaa
4
- data.tar.gz: 4785ffd2de0fd2336e0deca7a10805a83eae492f
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OTZlYWU5ZmYzMDE4YmJkYmNiOWQ1OTJmOTYxZTU1ZWM0MWNjMDgzNw==
5
+ data.tar.gz: !binary |-
6
+ NjlhYWQxYmRkM2NkMmI4NWMxMDA0NjRmMmFhOTQyZDhhOGUyZmZiZg==
5
7
  SHA512:
6
- metadata.gz: d3442fa909dde6d0e8971cbfe1bcf514f9500ebd24bfdf2f8be21835b557e65728b0870c2e78b2d01f1c02fb0950f00a15e0eb0e5fc9bc88de5f46005312b813
7
- data.tar.gz: e8356e90f27286a18698022e230defd1832202fd6b7460b332a592cce934e87fa7645fa814149cab1c0a72f732928c8a036955f6b13758a08f88d6f295d376b5
8
+ metadata.gz: !binary |-
9
+ ODVhMzQ4ZGI1MzEwM2M4NGViM2YyMmM2MmQ3ZWIyODkyMWI0ZjgwMDZlNThk
10
+ NTUzOGEzM2MxNTJhZmVkYjJmMGVkMmEzOGY3ZGE1YzE5NGYyMmQ4YzY5YjBm
11
+ YjBlMDRmMmIxNWM0NjM3ZDViMTI0ZjQyYzY2NDMxZDZhOTg4YjU=
12
+ data.tar.gz: !binary |-
13
+ YjFmNTEzMzJlYjNhODZiNjgxNGMxOTNjZDczYTc3NDg0ZjkzZDJiNGJjNDU1
14
+ M2UzNjgwNDUwZjEwM2VjODgzYjM3MDQ3MTdlOTk1ZjVlNTdiYjRlOGExYTEz
15
+ ZjRkNWYyYjhhZGQ4NjVkZmQ4OWNiZGY0ZTA5NGU4NDIzNjM1ZGE=
data/.travis.yml ADDED
@@ -0,0 +1,27 @@
1
+ language: ruby
2
+ cache:
3
+ - bundler
4
+ - apt
5
+ rvm:
6
+ - 2.1.2
7
+ branches:
8
+ only:
9
+ - master
10
+ env:
11
+ global:
12
+ - ZSS_ENV=test
13
+ - DISPLAY=:99.0
14
+ before_install:
15
+ - sudo apt-get install libzmq3-dev
16
+ - gem install bundler --no-rdoc --no-ri 1>/dev/null
17
+ script:
18
+ - "bundle exec rspec"
19
+ addons:
20
+ code_climate:
21
+ repo_token:
22
+ secure: U6d5emmLhWdFAqrVgtHtXDs1lR2f40is89mZfOp1HbnTQKnClGbmCuEGfeHL8HbaMZjpxFb7g9Ery26E3g1gCsE82sP8SkD0qY46LbWlufRctZWsD4d+TZZZttqo2eNNObKkW5JbzW2pGiRqQb7RCfsxsOnqqhXl3uXVOHK24x4=
23
+ deploy:
24
+ provider: rubygems
25
+ api_key:
26
+ secure: OsOTnuz+qiZe4RY2hOhYsv46LJE7eQf3jZAX5oBBxsSaC6V91SgyHgl1mexMM6r1CPvgOlG4b33AU2Um9NIVrO11fwl/psSeh6zrMf46l5tmn+QCtjOuoM1jtKpomYAPXioH0KkZWoRcqPyNZemZx14YJQW0/fLtrc5xUS20Re0=
27
+ gemspec: zss.gemspec
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zss (0.0.0)
4
+ zss (0.0.1)
5
5
  activesupport
6
6
  ffi-rzmq
7
7
  hashie
@@ -16,6 +16,9 @@ GEM
16
16
  minitest (~> 5.1)
17
17
  thread_safe (~> 0.1)
18
18
  tzinfo (~> 1.1)
19
+ bump (0.5.0)
20
+ codeclimate-test-reporter (0.3.0)
21
+ simplecov (>= 0.7.1, < 1.0.0)
19
22
  coderay (1.1.0)
20
23
  diff-lcs (1.2.5)
21
24
  docile (1.1.5)
@@ -62,7 +65,9 @@ PLATFORMS
62
65
  ruby
63
66
 
64
67
  DEPENDENCIES
68
+ bump
65
69
  bundler (~> 1.6)
70
+ codeclimate-test-reporter
66
71
  pry
67
72
  rake
68
73
  rspec
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  [![Build Status](https://travis-ci.org/pjanuario/zmq-service-suite-ruby.svg?branch=master)](https://travis-ci.org/pjanuario/zmq-service-suite-ruby)
2
2
  [![Code Climate](https://codeclimate.com/github/pjanuario/zmq-service-suite-ruby.png)](https://codeclimate.com/github/pjanuario/zmq-service-suite-ruby)
3
- [![Coverage](http://img.shields.io/codeclimate/coverage/github/pjanuario/zmq-service-suite-ruby.svg)](https://codeclimate.com/github/pjanuario/zmq-service-suite-ruby)
3
+ [![Coverage](https://codeclimate.com/github/pjanuario/zmq-service-suite-ruby/coverage.png)](https://codeclimate.com/github/pjanuario/zmq-service-suite-ruby)
4
4
  [![Dependency Status](https://gemnasium.com/pjanuario/zmq-service-suite-ruby.svg)](https://gemnasium.com/pjanuario/zmq-service-suite-ruby)
5
+ [![Gem Version](https://badge.fury.io/rb/zss.svg)](http://badge.fury.io/rb/zss)
5
6
 
6
7
  # ZMQ SOA Suite - Ruby Client &amp; Service
7
8
 
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ # Rakefile
2
+ require "bump/tasks"
data/lib/zss/client.rb ADDED
@@ -0,0 +1,49 @@
1
+ require 'zss/socket'
2
+
3
+ module ZSS
4
+ class Client
5
+
6
+ attr_reader :sid, :frontend, :identity, :timeout
7
+
8
+ def initialize sid, config = nil
9
+ @frontend = config.try(:frontend) || Configuration.default.frontend
10
+ @sid = sid.to_s.upcase
11
+ @identity = config.try(:identity) || "client"
12
+ @timeout = config.try(:timeout) || 1000
13
+ end
14
+
15
+ def call verb, payload = nil, headers: {}, timeout: nil
16
+ action = verb.to_s.upcase#.gsub('_', '/')
17
+ address = Message::Address.new(sid: sid, verb: action)
18
+
19
+ request = Message.new(
20
+ address: address,
21
+ headers: headers,
22
+ payload: payload)
23
+
24
+ response = socket.call(request)
25
+ fail ZSS::Error.new(response.status, response.payload) if response.is_error?
26
+
27
+ response.payload
28
+ end
29
+
30
+ private
31
+
32
+ def method_missing method, payload = nil, headers: {}
33
+ # since we cannot use / on method names we replace _ with /
34
+ verb = method.to_s.gsub('_', '/')
35
+ call verb, payload, headers: headers
36
+ end
37
+
38
+ def socket
39
+ config = Hashie::Mash.new(
40
+ socket_address: frontend,
41
+ identity: identity,
42
+ timeout: timeout
43
+ )
44
+
45
+ Socket.new config
46
+ end
47
+
48
+ end
49
+ end
data/lib/zss/socket.rb ADDED
@@ -0,0 +1,81 @@
1
+ require 'ffi-rzmq'
2
+
3
+ module ZSS
4
+ class Socket
5
+
6
+ class Error < StandardError; end
7
+ class TimeoutError < Socket::Error; end
8
+
9
+ attr_reader :timeout, :socket_address, :identity
10
+
11
+ def initialize config
12
+ @identity = config.identity
13
+ @timeout = config.timeout || 1000
14
+ @socket_address = config.socket_address
15
+ end
16
+
17
+ def call request, call_timeout = nil
18
+ fail Socket::Error, 'invalid request' unless request
19
+
20
+ response = nil
21
+ t = (call_timeout || timeout) / 1000.0
22
+
23
+ context do |ctx|
24
+ socket ctx do |sock|
25
+ begin
26
+ ::Timeout.timeout t do
27
+ send_message sock, request
28
+ response = receive_message(sock)
29
+ end
30
+ rescue ::Timeout::Error
31
+ raise ZSS::Socket::TimeoutError, "call timeout after #{t}s"
32
+ end
33
+ end
34
+ end
35
+
36
+ response
37
+ end
38
+
39
+ private
40
+
41
+ def context
42
+ context = ZMQ::Context.create(1)
43
+ fail Socket::Error, 'failed to create context' unless context
44
+ yield context
45
+ ensure
46
+ check!(context.terminate) if context
47
+ end
48
+
49
+ def socket context
50
+ socket = context.socket ZMQ::DEALER
51
+ fail Socket::Error, 'failed to create socket' unless socket
52
+ socket.identity = "#{identity}##{SecureRandom.uuid}"
53
+ socket.setsockopt(ZMQ::LINGER, 0)
54
+ socket.bind(socket_address)
55
+ yield socket
56
+ ensure
57
+ check! socket.close if socket
58
+ end
59
+
60
+ def send_message socket, message
61
+ frames = message.to_frames
62
+ first = frames.shift
63
+ last = frames.pop
64
+ frames.each { |f| check! socket.send_string f.to_s, ZMQ::SNDMORE }
65
+ check! socket.send_string last
66
+ end
67
+
68
+ def receive_message socket
69
+ check! socket.recv_strings(frames = [])
70
+ Message.parse frames
71
+ end
72
+
73
+ def check! result_code
74
+ return if ZMQ::Util.resultcode_ok? result_code
75
+
76
+ fail Socket::Error, "operation failed, errno [#{ZMQ::Util.errno}], " +
77
+ "description [#{ZMQ::Util.error_string}]"
78
+ end
79
+
80
+ end
81
+ end
data/lib/zss/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ZSS
2
- VERSION = '0.0.0'
2
+ VERSION = '0.0.1'
3
3
  end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+ require 'spec_broker_helper'
3
+ require 'zss/client'
4
+
5
+ describe ZSS::Client do
6
+ include BrokerHelper
7
+
8
+ let(:broker_frontend) { "ipc://socket_test" }
9
+
10
+ let(:config) do
11
+ Hashie::Mash.new(
12
+ frontend: broker_frontend,
13
+ identity: "spec_client",
14
+ timeout: 500
15
+ )
16
+ end
17
+
18
+ after :each do
19
+ @broker.terminate if @broker
20
+ @broker = nil
21
+ end
22
+
23
+ subject do
24
+ described_class.new(:pong, config)
25
+ end
26
+
27
+ it('returns service response') do
28
+ @broker = run_broker(broker_frontend) do |msg|
29
+ expect(msg.payload).to eq("ping")
30
+ msg.status = 200
31
+ msg.payload = "PONG"
32
+ end
33
+
34
+ result = subject.ping("ping", headers: { something: "data" })
35
+ expect(result).to eq("PONG")
36
+ end
37
+
38
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+ require 'spec_broker_helper'
3
+ require 'zss/socket'
4
+
5
+ describe ZSS::Socket do
6
+ include BrokerHelper
7
+
8
+ let(:broker_frontend) { "ipc://socket_test" }
9
+
10
+ let(:config) { Hashie::Mash.new(socket_address: broker_frontend) }
11
+
12
+ let(:address) { ZSS::Message::Address.new(sid: "service", verb: "verb") }
13
+
14
+ let(:message) { ZSS::Message.new(address: address, payload: "PING") }
15
+
16
+ after :each do
17
+ @broker.terminate if @broker
18
+ @broker = nil
19
+ end
20
+
21
+ describe("#call") do
22
+
23
+ subject { ZSS::Socket.new(config) }
24
+
25
+ it('returns service response') do
26
+ @broker = run_broker(broker_frontend) do |msg|
27
+ msg.status = 200
28
+ msg.payload = "PONG"
29
+ end
30
+
31
+ result = subject.call(message)
32
+ expect(result).to be_truthy
33
+ expect(result.payload).to eq("PONG")
34
+ expect(result.status).to eq(200)
35
+ end
36
+
37
+ end
38
+
39
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,13 @@
1
1
  ENV['ZSS_ENV'] ||= 'test'
2
2
 
3
- require 'simplecov'
4
- SimpleCov.start do
5
- add_filter '/spec/'
3
+ if ENV['CODECLIMATE_REPO_TOKEN']
4
+ require "codeclimate-test-reporter"
5
+ CodeClimate::TestReporter.start
6
+ else
7
+ require 'simplecov'
8
+ SimpleCov.start do
9
+ add_filter '/spec/'
10
+ end
6
11
  end
7
12
 
8
13
  $:.push '.'
@@ -0,0 +1,155 @@
1
+ require 'spec_helper'
2
+ require 'zss/client'
3
+
4
+ describe ZSS::Client do
5
+
6
+ describe('#ctor') do
7
+
8
+ it('returns a client with default config') do
9
+ subject = described_class.new(:pong)
10
+ expect(subject.frontend).to eq(ZSS::Configuration.default.frontend)
11
+ expect(subject.identity).to eq("client")
12
+ expect(subject.timeout).to eq(1000)
13
+ end
14
+
15
+ it('returns a client with config') do
16
+ config = Hashie::Mash.new(
17
+ frontend: "socket",
18
+ identity: "identity",
19
+ timeout: 2000
20
+ )
21
+ subject = described_class.new(:pong, config)
22
+ expect(subject.frontend).to eq("socket")
23
+ expect(subject.identity).to eq("identity")
24
+ expect(subject.timeout).to eq(2000)
25
+ end
26
+
27
+ it('returns a client with sid') do
28
+ subject = described_class.new(:pong)
29
+ expect(subject.sid).to eq("PONG")
30
+ end
31
+
32
+ end
33
+
34
+ describe("#call") do
35
+
36
+ subject do
37
+ described_class.new(:pong)
38
+ end
39
+
40
+ it('creates a socket with configs') do
41
+ socket = double('socket').as_null_object
42
+ allow(ZSS::Socket).to receive(:new) { socket }
43
+ allow(socket).to receive(:call) do |msg|
44
+ msg.status = 200
45
+ msg
46
+ end
47
+ expect(ZSS::Socket).to receive(:new)
48
+ .with(
49
+ Hashie::Mash.new(
50
+ socket_address: ZSS::Configuration.default.frontend,
51
+ identity: "client",
52
+ timeout: 1000
53
+ )
54
+ )
55
+ subject.call(:ping)
56
+ end
57
+
58
+ context('on success') do
59
+
60
+ it('calls pong service') do
61
+ socket = double('socket')
62
+ allow(ZSS::Socket).to receive(:new) { socket }
63
+ expect(socket).to receive(:call) do |msg|
64
+ expect(msg).to be_truthy
65
+ expect(msg.address.sid).to eq("PONG")
66
+ expect(msg.address.verb).to eq("PING")
67
+ expect(msg.payload).to eq("ping")
68
+ msg.status = 200
69
+ msg
70
+ end
71
+ result = subject.call(:ping, "ping")
72
+ end
73
+
74
+ it('calls pong service with headers') do
75
+ socket = double('socket')
76
+ allow(ZSS::Socket).to receive(:new) { socket }
77
+ expect(socket).to receive(:call) do |msg|
78
+ expect(msg).to be_truthy
79
+ expect(msg.headers[:something]).to eq("something")
80
+ msg.status = 200
81
+ msg
82
+ end
83
+ result = subject.call(:ping, "ping", headers: { something: "something" })
84
+ end
85
+
86
+ it('returns service message from pong service') do
87
+ socket = double('socket')
88
+ allow(ZSS::Socket).to receive(:new) { socket }
89
+ allow(socket).to receive(:call) do |msg|
90
+ msg.payload = "pong"
91
+ msg.status = 200
92
+ msg
93
+ end
94
+ result = subject.call(:ping, "ping")
95
+ expect(result).to eq("pong")
96
+ end
97
+
98
+ context('with implicit method implementation') do
99
+
100
+ it('returns service message from pong service') do
101
+ socket = double('socket')
102
+ allow(ZSS::Socket).to receive(:new) { socket }
103
+ allow(socket).to receive(:call) do |msg|
104
+ msg.payload = "pong"
105
+ msg.status = 200
106
+ msg
107
+ end
108
+ result = subject.ping("ping")
109
+ expect(result).to eq("pong")
110
+ end
111
+
112
+ it('calls pong service with special verb') do
113
+ socket = double('socket')
114
+ allow(ZSS::Socket).to receive(:new) { socket }
115
+ expect(socket).to receive(:call) do |msg|
116
+ expect(msg).to be_truthy
117
+ expect(msg.address.sid).to eq("PONG")
118
+ expect(msg.address.verb).to eq("PONG/PING")
119
+
120
+ msg.payload = "pong"
121
+ msg.status = 200
122
+ msg
123
+ end
124
+ result = subject.pong_ping("ping")
125
+ expect(result).to eq("pong")
126
+ end
127
+
128
+ end
129
+
130
+ end
131
+
132
+ context('on error') do
133
+
134
+ it('raise service error') do
135
+ socket = double('socket')
136
+ allow(ZSS::Socket).to receive(:new) { socket }
137
+ allow(socket).to receive(:call) do |msg|
138
+ msg.payload = Hashie::Mash.new(
139
+ userMessage: "user info",
140
+ developerMessage: "dev info"
141
+ )
142
+ msg.status = 500
143
+ msg
144
+ end
145
+
146
+ expect { subject.call(:ping, "ping") }.to raise_exception(ZSS::Error) do |error|
147
+ expect(error.code).to eq(500)
148
+ end
149
+ end
150
+
151
+ end
152
+
153
+ end
154
+
155
+ end
@@ -0,0 +1,135 @@
1
+ require 'spec_helper'
2
+ require 'zss/socket'
3
+ require 'ffi-rzmq'
4
+
5
+ describe ZSS::Socket do
6
+
7
+ let(:broker_frontend) { "ipc://socket_spec" }
8
+
9
+ let :config do
10
+ Hashie::Mash.new(
11
+ socket_address: broker_frontend,
12
+ identity: 'socket-identity',
13
+ timeout: 300
14
+ )
15
+ end
16
+
17
+ let(:address) { ZSS::Message::Address.new(sid: "service", verb: "verb") }
18
+
19
+ let(:message) { ZSS::Message.new(address: address, payload: "PING") }
20
+
21
+ before(:each) do
22
+ allow(SecureRandom).to receive(:uuid) { "uuid" }
23
+ end
24
+
25
+ describe("#call") do
26
+
27
+ subject { ZSS::Socket.new(config) }
28
+
29
+ context('open ZMQ Socket') do
30
+
31
+ it('with dealer type') do
32
+ context = double('ZMQ::Context').as_null_object
33
+ allow(ZMQ::Context).to receive(:create) { context }
34
+ allow(context).to receive(:socket) { nil }
35
+ expect(context).to receive(:socket).with(ZMQ::DEALER)
36
+ expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
37
+ end
38
+
39
+ it('with identity set') do
40
+ context = double('ZMQ::Context').as_null_object
41
+ socket = double('ZMQ::Socket').as_null_object
42
+ allow(ZMQ::Context).to receive(:create) { context }
43
+ allow(context).to receive(:socket) { socket }
44
+ allow(socket).to receive(:send_string) { -1 }
45
+ expect(socket).to receive(:identity=).with("socket-identity#uuid")
46
+ expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
47
+ end
48
+
49
+ it('with linger set to 0') do
50
+ context = double('ZMQ::Context').as_null_object
51
+ socket = double('ZMQ::Socket').as_null_object
52
+ allow(ZMQ::Context).to receive(:create) { context }
53
+ allow(context).to receive(:socket) { socket }
54
+ allow(socket).to receive(:send_string) { -1 }
55
+ expect(socket).to receive(:setsockopt).with(ZMQ::LINGER, 0)
56
+ expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
57
+ end
58
+
59
+ it('bind to frontend') do
60
+ context = double('ZMQ::Context').as_null_object
61
+ socket = double('ZMQ::Socket').as_null_object
62
+ allow(ZMQ::Context).to receive(:create) { context }
63
+ allow(context).to receive(:socket) { socket }
64
+ allow(socket).to receive(:send_string) { -1 }
65
+ expect(socket).to receive(:bind).with(broker_frontend)
66
+ expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
67
+ end
68
+
69
+ end
70
+
71
+ context('on error') do
72
+
73
+ it('raises Socket::Error on invalid request') do
74
+ expect { subject.call(nil) }.
75
+ to raise_exception(ZSS::Socket::Error)
76
+ end
77
+
78
+ it('raises ::Timeout::Error on subject timeout') do
79
+ expect { subject.call(message) }.
80
+ to raise_exception(ZSS::Socket::TimeoutError, "call timeout after 0.3s")
81
+ end
82
+
83
+ it('raises ::Timeout::Error on call timeout') do
84
+ expect { subject.call(message, 200) }.
85
+ to raise_exception(ZSS::Socket::TimeoutError, "call timeout after 0.2s")
86
+ end
87
+
88
+ it('raises Socket::Error on invalid context') do
89
+ allow(ZMQ::Context).to receive(:create) { nil }
90
+ expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
91
+ end
92
+
93
+ it('raises Socket::Error on invalid socket') do
94
+ context = double('ZMQ::Context').as_null_object
95
+ allow(ZMQ::Context).to receive(:create) { context }
96
+ allow(context).to receive(:socket) { nil }
97
+ expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
98
+ end
99
+
100
+ it('raises Socket::Error on invalid send send_string') do
101
+ context = double('ZMQ::Context').as_null_object
102
+ socket = double('ZMQ::Socket').as_null_object
103
+ allow(ZMQ::Context).to receive(:create) { context }
104
+ allow(context).to receive(:socket) { socket }
105
+ allow(socket).to receive(:send_string) { -1 }
106
+ expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
107
+ end
108
+
109
+ end
110
+
111
+ context('clean up resources') do
112
+
113
+ it('terminates context') do
114
+ context = double('ZMQ::Context').as_null_object
115
+ allow(ZMQ::Context).to receive(:create) { context }
116
+ allow(context).to receive(:socket) { nil }
117
+ expect(context).to receive(:terminate)
118
+ expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
119
+ end
120
+
121
+ it('closes socket') do
122
+ context = double('ZMQ::Context').as_null_object
123
+ socket = double('ZMQ::Socket').as_null_object
124
+ allow(ZMQ::Context).to receive(:create) { context }
125
+ allow(context).to receive(:socket) { socket }
126
+ allow(socket).to receive(:send_string) { -1 }
127
+ expect(socket).to receive(:close)
128
+ expect { subject.call(message) }.to raise_exception(ZSS::Socket::Error)
129
+ end
130
+
131
+ end
132
+
133
+ end
134
+
135
+ end
data/zss.gemspec CHANGED
@@ -22,6 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'rspec'
23
23
  spec.add_development_dependency 'pry'
24
24
  spec.add_development_dependency 'simplecov'
25
+ spec.add_development_dependency 'codeclimate-test-reporter'
26
+ spec.add_development_dependency 'bump'
25
27
 
26
28
  spec.add_dependency 'msgpack'
27
29
  spec.add_dependency 'ffi-rzmq'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro Januário
@@ -14,126 +14,154 @@ dependencies:
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - ! '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - ! '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - ! '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - ! '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: codeclimate-test-reporter
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: bump
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
81
109
  - !ruby/object:Gem::Version
82
110
  version: '0'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: msgpack
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
- - - ">="
115
+ - - ! '>='
88
116
  - !ruby/object:Gem::Version
89
117
  version: '0'
90
118
  type: :runtime
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
- - - ">="
122
+ - - ! '>='
95
123
  - !ruby/object:Gem::Version
96
124
  version: '0'
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: ffi-rzmq
99
127
  requirement: !ruby/object:Gem::Requirement
100
128
  requirements:
101
- - - ">="
129
+ - - ! '>='
102
130
  - !ruby/object:Gem::Version
103
131
  version: '0'
104
132
  type: :runtime
105
133
  prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
- - - ">="
136
+ - - ! '>='
109
137
  - !ruby/object:Gem::Version
110
138
  version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: activesupport
113
141
  requirement: !ruby/object:Gem::Requirement
114
142
  requirements:
115
- - - ">="
143
+ - - ! '>='
116
144
  - !ruby/object:Gem::Version
117
145
  version: '0'
118
146
  type: :runtime
119
147
  prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
- - - ">="
150
+ - - ! '>='
123
151
  - !ruby/object:Gem::Version
124
152
  version: '0'
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: hashie
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
- - - ">="
157
+ - - ! '>='
130
158
  - !ruby/object:Gem::Version
131
159
  version: '0'
132
160
  type: :runtime
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
- - - ">="
164
+ - - ! '>='
137
165
  - !ruby/object:Gem::Version
138
166
  version: '0'
139
167
  description: ZeroMQ SOA Suite
@@ -143,27 +171,35 @@ executables: []
143
171
  extensions: []
144
172
  extra_rdoc_files: []
145
173
  files:
146
- - ".gitignore"
147
- - ".rspec"
148
- - ".rvmrc.example"
174
+ - .gitignore
175
+ - .rspec
176
+ - .rvmrc.example
177
+ - .travis.yml
149
178
  - Gemfile
150
179
  - Gemfile.lock
151
180
  - LICENSE
152
181
  - README.md
182
+ - Rakefile
153
183
  - lib/zss.rb
184
+ - lib/zss/client.rb
154
185
  - lib/zss/configuration.rb
155
186
  - lib/zss/environment.rb
156
187
  - lib/zss/error.rb
157
188
  - lib/zss/message.rb
158
189
  - lib/zss/message/message_address.rb
159
190
  - lib/zss/message/message_type.rb
191
+ - lib/zss/socket.rb
160
192
  - lib/zss/version.rb
193
+ - spec/integration/client_spec.rb
194
+ - spec/integration/socket_spec.rb
161
195
  - spec/spec_broker_helper.rb
162
196
  - spec/spec_helper.rb
197
+ - spec/unit/client_spec.rb
163
198
  - spec/unit/environment_spec.rb
164
199
  - spec/unit/error_spec.rb
165
200
  - spec/unit/message_address_spec.rb
166
201
  - spec/unit/message_spec.rb
202
+ - spec/unit/socket_spec.rb
167
203
  - zss.gemspec
168
204
  homepage: https://github.com/pjanuario/zmq-service-suite-ruby
169
205
  licenses:
@@ -175,12 +211,12 @@ require_paths:
175
211
  - lib
176
212
  required_ruby_version: !ruby/object:Gem::Requirement
177
213
  requirements:
178
- - - ">="
214
+ - - ! '>='
179
215
  - !ruby/object:Gem::Version
180
216
  version: '0'
181
217
  required_rubygems_version: !ruby/object:Gem::Requirement
182
218
  requirements:
183
- - - ">="
219
+ - - ! '>='
184
220
  - !ruby/object:Gem::Version
185
221
  version: '0'
186
222
  requirements: []
@@ -190,9 +226,13 @@ signing_key:
190
226
  specification_version: 4
191
227
  summary: ZeroMQ SOA Suite
192
228
  test_files:
229
+ - spec/integration/client_spec.rb
230
+ - spec/integration/socket_spec.rb
193
231
  - spec/spec_broker_helper.rb
194
232
  - spec/spec_helper.rb
233
+ - spec/unit/client_spec.rb
195
234
  - spec/unit/environment_spec.rb
196
235
  - spec/unit/error_spec.rb
197
236
  - spec/unit/message_address_spec.rb
198
237
  - spec/unit/message_spec.rb
238
+ - spec/unit/socket_spec.rb