moleculer 0.1.1 → 0.2.0
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 +4 -4
- data/.codeclimate.yml +6 -0
- data/.rubocop.yml +4 -1
- data/.ruby-version +1 -0
- data/.travis.yml +2 -1
- data/CHANGELOG.md +17 -2
- data/Gemfile.lock +19 -3
- data/README.md +20 -14
- data/lib/moleculer/broker.rb +14 -2
- data/lib/moleculer/configuration.rb +2 -0
- data/lib/moleculer/service/action.rb +8 -3
- data/lib/moleculer/service/event.rb +5 -0
- data/lib/moleculer/transporters/base.rb +45 -0
- data/lib/moleculer/transporters/fake.rb +33 -0
- data/lib/moleculer/transporters/redis.rb +20 -5
- data/lib/moleculer/version.rb +3 -1
- data/moleculer.gemspec +2 -1
- metadata +23 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b336fe17152d5c0ebff7495c2fc7e5dd6ea4a5aa0a2cd29ee9f2f67f25fbe95f
|
|
4
|
+
data.tar.gz: 1f99f72bae588fa8544cf9635891ed9bc51408ec656658090eeded5756f45be3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c9b52239d10c8aca09bae010e5193dfc56ebe3d4df72d8d5f70e497788c7274630951e0bfe1c641f82f57f26bc374772f7ff16d75af4ad093bb13f82b6333987
|
|
7
|
+
data.tar.gz: 90fa10f008f7807bf729e993bd48a2dab8718144477fe5d340373ac74c0151811376f121af63127c543e4f2693b1bc042e3e4641065197b5c40b532b8bf5facd
|
data/.codeclimate.yml
ADDED
data/.rubocop.yml
CHANGED
|
@@ -7,7 +7,7 @@ Layout/IndentHash:
|
|
|
7
7
|
Layout/IndentationWidth:
|
|
8
8
|
IgnoredPatterns: []
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Layout/AlignHash:
|
|
11
11
|
EnforcedColonStyle: table
|
|
12
12
|
EnforcedHashRocketStyle: table
|
|
13
13
|
|
|
@@ -23,6 +23,9 @@ Style/TrailingCommaInHashLiteral:
|
|
|
23
23
|
Style/TrailingCommaInArrayLiteral:
|
|
24
24
|
EnforcedStyleForMultiline: comma
|
|
25
25
|
|
|
26
|
+
Style/FrozenStringLiteralComment:
|
|
27
|
+
Enabled: true
|
|
28
|
+
|
|
26
29
|
Style/StringLiterals:
|
|
27
30
|
EnforcedStyle: "double_quotes"
|
|
28
31
|
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ruby-2.6.3
|
data/.travis.yml
CHANGED
|
@@ -8,10 +8,11 @@ rvm:
|
|
|
8
8
|
- 2.3
|
|
9
9
|
- 2.4
|
|
10
10
|
- 2.5
|
|
11
|
+
- 2.6
|
|
11
12
|
env:
|
|
12
13
|
global:
|
|
13
14
|
- CC_TEST_REPORTER_ID=270a7dd1c7f3f40fdb0d62c2403dd1f643e4cadbf6b8f5992e74b62ea4e6974b
|
|
14
|
-
before_install: gem install bundler -v 1.17.
|
|
15
|
+
before_install: gem install bundler -v 1.17.2
|
|
15
16
|
before_script:
|
|
16
17
|
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
|
17
18
|
- chmod +x ./cc-test-reporter
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 0.2.0
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* **actions:** ability to process errors that occur when executing actions
|
|
6
|
+
([9a3f36d](https://github.com/moleculer-ruby/moleculer/commit/9a3f36d))
|
|
7
|
+
* **events:** add ability to rescue from event errors and handle
|
|
8
|
+
([0f2cf1a](https://github.com/moleculer-ruby/moleculer/commit/0f2cf1a))
|
|
9
|
+
* **fake transporter:** add fake transporter that can be used without dependencies on an actual connected transporter
|
|
10
|
+
* **broker:** add the ability to check if a borker is started through the `#started` method
|
|
11
|
+
|
|
12
|
+
### Bugfixes
|
|
13
|
+
* fix `concurrent_ruby` version requirement to ensure at least `1.1` is required
|
|
14
|
+
* fix an issue where heartbeats back up in the queue and cause errors when consumed
|
|
15
|
+
|
|
16
|
+
# 0.1.1
|
|
17
|
+
|
|
18
|
+
### Bugfixes
|
|
4
19
|
* fixes bug where event publishing uses the wrong method name to look up local events
|
|
5
20
|
* fixes condition where events may double publish when multiple events are registered
|
data/Gemfile.lock
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
moleculer (0.
|
|
4
|
+
moleculer (0.2.0)
|
|
5
5
|
awesome_print (~> 1.8)
|
|
6
|
-
concurrent-ruby (~> 1.
|
|
6
|
+
concurrent-ruby (~> 1.1)
|
|
7
7
|
ougai (~> 1.7)
|
|
8
8
|
|
|
9
9
|
GEM
|
|
10
10
|
remote: https://rubygems.org/
|
|
11
11
|
specs:
|
|
12
|
+
ast (2.4.0)
|
|
12
13
|
awesome_print (1.8.0)
|
|
13
14
|
concurrent-ruby (1.1.5)
|
|
14
15
|
diff-lcs (1.3)
|
|
15
16
|
docile (1.3.1)
|
|
17
|
+
jaro_winkler (1.5.2)
|
|
16
18
|
json (2.1.0)
|
|
17
19
|
oj (3.7.12)
|
|
18
20
|
ougai (1.7.1)
|
|
19
21
|
oj (~> 3.4)
|
|
22
|
+
parallel (1.17.0)
|
|
23
|
+
parser (2.6.3.0)
|
|
24
|
+
ast (~> 2.4.0)
|
|
25
|
+
rainbow (3.0.0)
|
|
20
26
|
rake (10.5.0)
|
|
21
27
|
redis (4.0.1)
|
|
22
28
|
rspec (3.8.0)
|
|
@@ -32,12 +38,21 @@ GEM
|
|
|
32
38
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
33
39
|
rspec-support (~> 3.8.0)
|
|
34
40
|
rspec-support (3.8.0)
|
|
41
|
+
rubocop (0.69.0)
|
|
42
|
+
jaro_winkler (~> 1.5.1)
|
|
43
|
+
parallel (~> 1.10)
|
|
44
|
+
parser (>= 2.6)
|
|
45
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
46
|
+
ruby-progressbar (~> 1.7)
|
|
47
|
+
unicode-display_width (>= 1.4.0, < 1.7)
|
|
48
|
+
ruby-progressbar (1.10.0)
|
|
35
49
|
simplecov (0.16.1)
|
|
36
50
|
docile (~> 1.1)
|
|
37
51
|
json (>= 1.8, < 3)
|
|
38
52
|
simplecov-html (~> 0.10.0)
|
|
39
53
|
simplecov-html (0.10.2)
|
|
40
54
|
timecop (0.9.1)
|
|
55
|
+
unicode-display_width (1.6.0)
|
|
41
56
|
yard (0.9.18)
|
|
42
57
|
|
|
43
58
|
PLATFORMS
|
|
@@ -49,9 +64,10 @@ DEPENDENCIES
|
|
|
49
64
|
rake (~> 10.0)
|
|
50
65
|
redis (~> 4.0)
|
|
51
66
|
rspec (~> 3.0)
|
|
67
|
+
rubocop (~> 0.69)
|
|
52
68
|
simplecov (~> 0.16)
|
|
53
69
|
timecop (~> 0.9.1)
|
|
54
70
|
yard (~> 0.9.11)
|
|
55
71
|
|
|
56
72
|
BUNDLED WITH
|
|
57
|
-
1.17.
|
|
73
|
+
1.17.2
|
data/README.md
CHANGED
|
@@ -10,20 +10,6 @@ build efficient, reliable & scalable services. Moleculer provides many features
|
|
|
10
10
|
microservices.
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
## Features
|
|
14
|
-
- request-reply concept
|
|
15
|
-
- event-driven architecture with balancing
|
|
16
|
-
- built-in service registry & dynamic service discovery
|
|
17
|
-
- load balanced requests & events (round-robin, random(wip), cpu-usage(wip), latency(wip))
|
|
18
|
-
- supports versioned services
|
|
19
|
-
- built-in caching solution (memory, Redis)
|
|
20
|
-
- pluggable transporters (TCP, NATS, MQTT, Redis, NATS Streaming, Kafka)
|
|
21
|
-
- pluggable serializers (JSON, Avro, MsgPack, Protocol Buffers, Thrift)
|
|
22
|
-
- pluggable validator
|
|
23
|
-
- multiple services on a node/server
|
|
24
|
-
- all nodes are equal, no master/leader node
|
|
25
|
-
|
|
26
|
-
|
|
27
13
|
## Getting Started
|
|
28
14
|
### Install the Gem
|
|
29
15
|
|
|
@@ -100,3 +86,23 @@ times out and throws an error.
|
|
|
100
86
|
|
|
101
87
|
#### transporter (default: redis://localhost)
|
|
102
88
|
The transporter Moleculer should use. For more information on transporters see [Transporters](https://moleculer.services/docs/0.13/networking.html#Transporters)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
## Roadmap
|
|
92
|
+
|
|
93
|
+
### 0.1 (COMPLETE)
|
|
94
|
+
Initial release
|
|
95
|
+
|
|
96
|
+
* Redis transporter
|
|
97
|
+
* Round robin load balancing
|
|
98
|
+
* Service registry & dynamic service discovery
|
|
99
|
+
* JSON serializer
|
|
100
|
+
|
|
101
|
+
### 0.2 (IN PROGRESS)
|
|
102
|
+
* Fake transporter (for testing)
|
|
103
|
+
* Error handling, (ability to use Airbrake, etc.)
|
|
104
|
+
* Event grouping
|
|
105
|
+
|
|
106
|
+
### 0.3 (PENDING)
|
|
107
|
+
* NATS transporter
|
|
108
|
+
* Built in caching solution (Redis, Memory)
|
data/lib/moleculer/broker.rb
CHANGED
|
@@ -93,7 +93,7 @@ module Moleculer
|
|
|
93
93
|
|
|
94
94
|
def start
|
|
95
95
|
@logger.info "starting"
|
|
96
|
-
@transporter.
|
|
96
|
+
@transporter.start
|
|
97
97
|
register_local_node
|
|
98
98
|
start_subscribers
|
|
99
99
|
publish_discover
|
|
@@ -105,7 +105,7 @@ module Moleculer
|
|
|
105
105
|
def stop
|
|
106
106
|
@logger.info "stopping"
|
|
107
107
|
publish(:disconnect)
|
|
108
|
-
@transporter.
|
|
108
|
+
@transporter.stop
|
|
109
109
|
exit 0
|
|
110
110
|
end
|
|
111
111
|
|
|
@@ -172,6 +172,18 @@ module Moleculer
|
|
|
172
172
|
)
|
|
173
173
|
end
|
|
174
174
|
|
|
175
|
+
##
|
|
176
|
+
# @return [Proc] returns the rescue_action if defined on the configuration
|
|
177
|
+
def rescue_action
|
|
178
|
+
config.rescue_action
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
##
|
|
182
|
+
# @return [Proc] returns the rescue_event if defined on the configuration
|
|
183
|
+
def rescue_event
|
|
184
|
+
config.rescue_event
|
|
185
|
+
end
|
|
186
|
+
|
|
175
187
|
private
|
|
176
188
|
|
|
177
189
|
def handle_signal(sig)
|
|
@@ -74,6 +74,8 @@ module Moleculer
|
|
|
74
74
|
config_accessor :serializer, :json
|
|
75
75
|
config_accessor :node_id, "#{Socket.gethostname.downcase}-#{Process.pid}"
|
|
76
76
|
config_accessor :service_prefix
|
|
77
|
+
config_accessor :rescue_action
|
|
78
|
+
config_accessor :rescue_event
|
|
77
79
|
|
|
78
80
|
attr_accessor :broker
|
|
79
81
|
|
|
@@ -29,15 +29,20 @@ module Moleculer
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
##
|
|
32
|
-
# @param context [Moleculer::Context] the execution
|
|
32
|
+
# @param context [Moleculer::Context] the execution context
|
|
33
33
|
#
|
|
34
34
|
# @return [Moleculer::Support::Hash] returns a hash which will be converted into json for the response.
|
|
35
|
+
# @raise [Errors::InvalidActionResponse] thrown when the result of calling the action does not return a hash
|
|
35
36
|
def execute(context, broker)
|
|
36
37
|
response = @service.new(broker).public_send(@method, context)
|
|
37
|
-
# rubocop
|
|
38
|
-
raise Errors::InvalidActionResponse.new(response) unless response.is_a? Hash
|
|
38
|
+
# rubocop disabled because in this case we need a specific error handling format
|
|
39
|
+
raise Errors::InvalidActionResponse.new(response) unless response.is_a? Hash # rubocop:disable Style/RaiseArgs
|
|
39
40
|
|
|
40
41
|
response
|
|
42
|
+
rescue StandardError => e
|
|
43
|
+
raise e unless broker.rescue_action
|
|
44
|
+
|
|
45
|
+
broker.rescue_action.call(e)
|
|
41
46
|
end
|
|
42
47
|
|
|
43
48
|
def node
|
|
@@ -28,8 +28,13 @@ module Moleculer
|
|
|
28
28
|
##
|
|
29
29
|
# Executes the event
|
|
30
30
|
# @param data [Hash] the event data
|
|
31
|
+
# @param broker [Moleculer::Broker] the moleculer broker
|
|
31
32
|
def execute(data, broker)
|
|
32
33
|
@service.new(broker).public_send(@method, data)
|
|
34
|
+
rescue StandardError => e
|
|
35
|
+
raise e unless broker.rescue_event
|
|
36
|
+
|
|
37
|
+
broker.rescue_event.call(e)
|
|
33
38
|
end
|
|
34
39
|
|
|
35
40
|
##
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
module Moleculer
|
|
2
|
+
##
|
|
3
|
+
# A transporter is the method by which moleculer transports information from one service to the next. Transporters can
|
|
4
|
+
# be created using any over-the-wire bus that can be made to support some level of queueing (i.e. Redis, NATS, Kafka)
|
|
5
|
+
module Transporters
|
|
6
|
+
##
|
|
7
|
+
# All transporters inherit from this class. The Base class simply defines an interface that transporters should
|
|
8
|
+
# adhere to.
|
|
9
|
+
class Base
|
|
10
|
+
##
|
|
11
|
+
# @param config [Moleculer::Configuration] the transporter configuration.
|
|
12
|
+
def initialize(config)
|
|
13
|
+
@config = config
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
##
|
|
17
|
+
# Subscribes to the given channel on the transporter's message bus
|
|
18
|
+
# @param channel [String] the channel to which to subscribe
|
|
19
|
+
def subscribe(_channel, &_block)
|
|
20
|
+
raise NotImplementedError
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
##
|
|
24
|
+
# Publishes the provided packet to the transporter's message bus. The publish method is expected to implement the
|
|
25
|
+
# method of translating the packet data into the channel information on which to publish.
|
|
26
|
+
# @param packet [Moleculer::Packet::Base] the packet to publish to the network.
|
|
27
|
+
def publish(_packet)
|
|
28
|
+
raise NotImplementedError
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
##
|
|
32
|
+
# Starts the transporter, and activates all of the subscriptions. The subscriptions should not start consuming
|
|
33
|
+
# until the start method has been called.
|
|
34
|
+
def start
|
|
35
|
+
raise NotImplementedError
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
##
|
|
39
|
+
# Stops the transporter, and stops all subscriptions from consuming
|
|
40
|
+
def stop
|
|
41
|
+
raise NotImplementedError
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require_relative "base"
|
|
2
|
+
|
|
3
|
+
module Moleculer
|
|
4
|
+
module Transporters
|
|
5
|
+
##
|
|
6
|
+
# The fake transporter is designed to be used in testing. It is simply an in memory queue and should not be used
|
|
7
|
+
# in production.
|
|
8
|
+
class Fake < Base
|
|
9
|
+
def initialize(config)
|
|
10
|
+
super(config)
|
|
11
|
+
# in this case we want to use a class var as this needs to behave like a singleton to mimic how a global
|
|
12
|
+
# transporter functions
|
|
13
|
+
@@subscriptions ||= {} # rubocop:disable Style/ClassVars
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def subscribe(channel, &block)
|
|
17
|
+
@@subscriptions[channel] = block
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def publish(packet)
|
|
21
|
+
@@subscriptions[packet.topic].call(packet)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def start
|
|
25
|
+
true
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def stop
|
|
29
|
+
true
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require "redis"
|
|
2
|
+
require_relative "base"
|
|
2
3
|
|
|
3
4
|
# frozen_string_literal: true
|
|
4
5
|
|
|
@@ -6,7 +7,7 @@ module Moleculer
|
|
|
6
7
|
module Transporters
|
|
7
8
|
##
|
|
8
9
|
# The Moleculer Redis transporter
|
|
9
|
-
class Redis
|
|
10
|
+
class Redis < Base
|
|
10
11
|
##
|
|
11
12
|
# @private
|
|
12
13
|
# Represents the publisher connection
|
|
@@ -21,7 +22,7 @@ module Moleculer
|
|
|
21
22
|
# Publishes the packet to the packet's topic
|
|
22
23
|
def publish(packet)
|
|
23
24
|
topic = packet.topic
|
|
24
|
-
@logger.
|
|
25
|
+
@logger.debug "publishing packet to '#{topic}'", packet.as_json
|
|
25
26
|
connection.publish(topic, @serializer.serialize(packet))
|
|
26
27
|
end
|
|
27
28
|
|
|
@@ -155,6 +156,7 @@ module Moleculer
|
|
|
155
156
|
@uri = config.transporter
|
|
156
157
|
@logger = config.logger.get_child("[REDIS.TRANSPORTER]")
|
|
157
158
|
@subscriptions = Concurrent::Array.new
|
|
159
|
+
@started = false
|
|
158
160
|
end
|
|
159
161
|
|
|
160
162
|
def subscribe(channel, &block)
|
|
@@ -163,13 +165,25 @@ module Moleculer
|
|
|
163
165
|
channel: channel,
|
|
164
166
|
block: block,
|
|
165
167
|
config: @config,
|
|
166
|
-
)
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
@subscriptions.last.connect if started?
|
|
167
171
|
end
|
|
168
172
|
|
|
169
173
|
def disconnect
|
|
170
174
|
@logger.debug "disconnecting subscriptions"
|
|
171
175
|
@subscriptions.each(&:disconnect)
|
|
172
176
|
end
|
|
177
|
+
|
|
178
|
+
def connect
|
|
179
|
+
@logger.debug "connecting subscriptions"
|
|
180
|
+
@subscriptions.each(&:connect)
|
|
181
|
+
@started = true
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
def started?
|
|
185
|
+
@started
|
|
186
|
+
end
|
|
173
187
|
end
|
|
174
188
|
|
|
175
189
|
def initialize(config)
|
|
@@ -184,11 +198,12 @@ module Moleculer
|
|
|
184
198
|
publisher.publish(packet)
|
|
185
199
|
end
|
|
186
200
|
|
|
187
|
-
def
|
|
201
|
+
def start
|
|
188
202
|
publisher.connect
|
|
203
|
+
subscriber.connect
|
|
189
204
|
end
|
|
190
205
|
|
|
191
|
-
def
|
|
206
|
+
def stop
|
|
192
207
|
publisher.disconnect
|
|
193
208
|
subscriber.disconnect
|
|
194
209
|
end
|
data/lib/moleculer/version.rb
CHANGED
data/moleculer.gemspec
CHANGED
|
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
|
|
|
36
36
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
37
37
|
spec.require_paths = ["lib"]
|
|
38
38
|
|
|
39
|
-
spec.add_dependency "concurrent-ruby", "~> 1.
|
|
39
|
+
spec.add_dependency "concurrent-ruby", "~> 1.1"
|
|
40
40
|
spec.add_dependency "ougai", "~> 1.7"
|
|
41
41
|
spec.add_dependency "awesome_print", "~> 1.8"
|
|
42
42
|
|
|
@@ -45,6 +45,7 @@ Gem::Specification.new do |spec|
|
|
|
45
45
|
spec.add_development_dependency "rake", "~> 10.0"
|
|
46
46
|
spec.add_development_dependency "redis", "~> 4.0"
|
|
47
47
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
48
|
+
spec.add_development_dependency "rubocop", "~> 0.69"
|
|
48
49
|
spec.add_development_dependency "simplecov", "~> 0.16"
|
|
49
50
|
spec.add_development_dependency "timecop", "~> 0.9.1"
|
|
50
51
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: moleculer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- fugufish
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-
|
|
11
|
+
date: 2019-06-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: concurrent-ruby
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '1.
|
|
19
|
+
version: '1.1'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '1.
|
|
26
|
+
version: '1.1'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: ougai
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,6 +122,20 @@ dependencies:
|
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '3.0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: rubocop
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0.69'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0.69'
|
|
125
139
|
- !ruby/object:Gem::Dependency
|
|
126
140
|
name: simplecov
|
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -157,9 +171,11 @@ executables: []
|
|
|
157
171
|
extensions: []
|
|
158
172
|
extra_rdoc_files: []
|
|
159
173
|
files:
|
|
174
|
+
- ".codeclimate.yml"
|
|
160
175
|
- ".gitignore"
|
|
161
176
|
- ".rspec"
|
|
162
177
|
- ".rubocop.yml"
|
|
178
|
+
- ".ruby-version"
|
|
163
179
|
- ".travis.yml"
|
|
164
180
|
- ".yardopts"
|
|
165
181
|
- CHANGELOG.md
|
|
@@ -207,6 +223,8 @@ files:
|
|
|
207
223
|
- lib/moleculer/support/open_struct.rb
|
|
208
224
|
- lib/moleculer/support/string_util.rb
|
|
209
225
|
- lib/moleculer/transporters.rb
|
|
226
|
+
- lib/moleculer/transporters/base.rb
|
|
227
|
+
- lib/moleculer/transporters/fake.rb
|
|
210
228
|
- lib/moleculer/transporters/redis.rb
|
|
211
229
|
- lib/moleculer/version.rb
|
|
212
230
|
- moleculer.gemspec
|
|
@@ -231,8 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
231
249
|
- !ruby/object:Gem::Version
|
|
232
250
|
version: '0'
|
|
233
251
|
requirements: []
|
|
234
|
-
|
|
235
|
-
rubygems_version: 2.7.7
|
|
252
|
+
rubygems_version: 3.0.3
|
|
236
253
|
signing_key:
|
|
237
254
|
specification_version: 4
|
|
238
255
|
summary: This is a Ruby implementation of the Moleculer framework.
|