zss 0.0.0 → 0.0.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.
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