moleculer 0.1.0 → 0.1.1

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
  SHA256:
3
- metadata.gz: 585ff4890f2ecff42a4d8c52a3b1a5d564b573fe4d1a4f2b885d67c4474076cb
4
- data.tar.gz: 40879caafedd0acb902f9ef45fac1e7523b9b151eb36adfa7dfa7f298f52a187
3
+ metadata.gz: adca17fdd330fd7afa3d94ffd7768e1b1c732b9a6ff106defd5dcd6b7437f9ab
4
+ data.tar.gz: '097cb23699252db25857b462712f18279c4fb712ccb6b5873d846c897ae6447f'
5
5
  SHA512:
6
- metadata.gz: fe5cda825507a25095f432630c819c8c162868f24e13d0cdcc6415654b69e01a7117282a166fa9ecaca0c76cfb8a3f6c19298454da5133c763934e8d75a534ad
7
- data.tar.gz: 91ca2bba2f49ed50c560a56361c2583e20f04abd5d9327e6737ef2e263b8e86a8562e6e36822590254285de4f871ccbb8a663559b24de09ca7c1ba4f6da1fce4
6
+ metadata.gz: 476c7b017f50e95d1bbbba1b3ee933dc9b0168265a2386d250ec74cdba1989839753896f4a55e639e8e783ee2731d44e36cfa7e7f35cd1ca9c40971b176742bc
7
+ data.tar.gz: 6c1ab62da8bb22d066adc09507ee3010112eeefc53f85f26d3d3d4c523ef7d0f2ec6909fe7d40b4831b0b5303e12b073357309fda66b09648ac512975e7080a6
data/.travis.yml CHANGED
@@ -11,7 +11,7 @@ rvm:
11
11
  env:
12
12
  global:
13
13
  - CC_TEST_REPORTER_ID=270a7dd1c7f3f40fdb0d62c2403dd1f643e4cadbf6b8f5992e74b62ea4e6974b
14
- before_install: gem install bundler -v 1.16.6
14
+ before_install: gem install bundler -v 1.17.1
15
15
  before_script:
16
16
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
17
17
  - chmod +x ./cc-test-reporter
data/CHANGELOG.md ADDED
@@ -0,0 +1,5 @@
1
+ # CHANGELOG
2
+
3
+ ## 0.1.1
4
+ * fixes bug where event publishing uses the wrong method name to look up local events
5
+ * fixes condition where events may double publish when multiple events are registered
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- moleculer (0.1.0)
4
+ moleculer (0.1.1)
5
5
  awesome_print (~> 1.8)
6
6
  concurrent-ruby (~> 1.0)
7
7
  ougai (~> 1.7)
@@ -14,7 +14,7 @@ GEM
14
14
  diff-lcs (1.3)
15
15
  docile (1.3.1)
16
16
  json (2.1.0)
17
- oj (3.7.11)
17
+ oj (3.7.12)
18
18
  ougai (1.7.1)
19
19
  oj (~> 3.4)
20
20
  rake (10.5.0)
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # Moleculer
2
+ ![Moleculer logo](https://github.com/moleculerjs/moleculer/raw/master/docs/assets/logo.png)
3
+
2
4
  [![Build Status](https://travis-ci.org/moleculer-ruby/moleculer.svg?branch=develop)](https://travis-ci.org/moleculer-ruby/moleculer)
3
5
  [![Maintainability](https://api.codeclimate.com/v1/badges/d4211bbefca62cb4c10e/maintainability)](https://codeclimate.com/github/moleculer-ruby/moleculer/maintainability)
4
6
  [![Test Coverage](https://api.codeclimate.com/v1/badges/d4211bbefca62cb4c10e/test_coverage)](https://codeclimate.com/github/moleculer-ruby/moleculer/test_coverage)
@@ -22,22 +24,63 @@ microservices.
22
24
  - all nodes are equal, no master/leader node
23
25
 
24
26
 
27
+ ## Getting Started
28
+ ### Install the Gem
29
+
30
+ ```ruby
31
+ gem install "moleculer-ruby"
32
+ ```
33
+
34
+ or add to your Gemfile:
35
+
36
+ ```ruby
37
+ gem "moleculer-ruby", "~>0.1"
38
+ ```
39
+
40
+ ### Create a Simple Service
41
+
42
+ ```ruby
43
+ class SimpleService < Moleculer::Service::Base
44
+ action :get_user, :get_user
45
+
46
+
47
+ def get_user
48
+ # .. usery getting stuff
49
+ end
50
+ end
51
+
52
+
53
+ Moleculer.config do |c|
54
+ c.services << SimpleService
55
+ end
56
+
57
+ Moleculer.start
58
+
59
+ ```
60
+
61
+
25
62
  ## Configuration
26
63
 
27
64
  Moleculer is configured through the Moleculer::config method. Example:
28
65
 
29
66
  ```ruby
30
- Moleculer.config do |c|
31
- c.log_level :debug
67
+ Moleculer.configure do |c|
68
+ c.log_level = :debug
32
69
  end
33
70
  ```
34
71
 
35
72
  ### Configuration Options
36
73
 
74
+ #### logger (default: Ougai::Logger)
75
+ Sets teh Moleculer logger, this must be a Ruby `Logger` or `Ougai` compatible logger.
76
+
37
77
  #### log_level (default: debug)
38
78
  Sets the log level of the node. defaults to `:debug`. Can be one of `:trace`, `:debug`, `:info`, `:warn`, `:error`,
39
79
  `:fatal`.
40
80
 
81
+ #### heartbeat_interval (default: 5)
82
+ The interval in which to send heartbeats.
83
+
41
84
  #### node_id (default: \<hostname\>-\<pid\>)
42
85
  The node id. Node IDs are required to be unique. In Moleculer-ruby all node ids are suffixed with the PID of the
43
86
  running process, allowing multiple copies of the same node to be run on the same machine. When using a containerized
@@ -13,7 +13,7 @@ class Users < Moleculer::Service::Base
13
13
  end
14
14
  end
15
15
 
16
- Moleculer.config do |c|
16
+ Moleculer.configure do |c|
17
17
  c.services << Users
18
18
  c.log_level = :info
19
19
  end
@@ -138,9 +138,9 @@ module Moleculer
138
138
 
139
139
  def process_event(packet)
140
140
  @logger.debug("processing event '#{packet.event}'")
141
- events = @registry.fetch_events_for_node_id(packet.event, node_id)
141
+ events = @registry.fetch_events_for_emit(packet.event)
142
142
 
143
- events.each { |e| e.execute(packet.data) }
143
+ events.each { |e| e.execute(packet.data, self) }
144
144
  rescue StandardError => e
145
145
  @logger.error e
146
146
  end
@@ -182,7 +182,7 @@ module Moleculer
182
182
  end
183
183
 
184
184
  def publish(packet_type, message = {})
185
- packet = Packets.for(packet_type).new(message)
185
+ packet = Packets.for(packet_type).new(message.merge(sender: @registry.local_node.id))
186
186
  @transporter.publish(packet)
187
187
  end
188
188
 
@@ -222,7 +222,8 @@ module Moleculer
222
222
 
223
223
  def register_local_node
224
224
  @logger.info "registering #{services.length} local services"
225
- node = Node.new(
225
+ services.each { |s| s.broker = self }
226
+ node = Node.new(
226
227
  node_id: node_id,
227
228
  services: services,
228
229
  local: true,
@@ -28,6 +28,10 @@ module Moleculer
28
28
  @services.map(&block)
29
29
  end
30
30
 
31
+ def each(&block)
32
+ @services.each(&block)
33
+ end
34
+
31
35
  def include?(service)
32
36
  @services.include?(service)
33
37
  end
@@ -83,12 +83,13 @@ module Moleculer
83
83
 
84
84
  def as_json
85
85
  {
86
+ sender: @id,
86
87
  config: {},
87
88
  seq: 1,
88
89
  ipList: [],
89
90
  hostname: @hostname,
90
91
  services: @services.values.map(&:as_json),
91
- client: client_attrubutes
92
+ client: client_attrubutes,
92
93
  }
93
94
  end
94
95
 
@@ -98,7 +99,7 @@ module Moleculer
98
99
  {
99
100
  type: "Ruby",
100
101
  version: Moleculer::VERSION,
101
- lang_version: RUBY_VERSION
102
+ lang_version: RUBY_VERSION,
102
103
  }
103
104
  end
104
105
  end
@@ -130,7 +130,7 @@ module Moleculer
130
130
  def fetch_events(event_name)
131
131
  return [] unless @events[event_name]
132
132
 
133
- @events[event_name].fetch_nodes.map { |n| n.events[event_name] }.flatten
133
+ @events[event_name].fetch_nodes.map { |n| n.events[event_name] }.flatten.uniq { |e| e.service.service_name }
134
134
  end
135
135
  end
136
136
 
@@ -14,7 +14,7 @@ module Moleculer
14
14
 
15
15
  ##
16
16
  # The broker this service is attached to
17
- attr_accessor :broker
17
+ attr_writer :broker
18
18
 
19
19
  def service_prefix
20
20
  Moleculer.service_prefix
@@ -1,3 +1,3 @@
1
1
  module Moleculer
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  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.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - fugufish
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-16 00:00:00.000000000 Z
11
+ date: 2019-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -162,6 +162,7 @@ files:
162
162
  - ".rubocop.yml"
163
163
  - ".travis.yml"
164
164
  - ".yardopts"
165
+ - CHANGELOG.md
165
166
  - CODE_OF_CONDUCT.md
166
167
  - Gemfile
167
168
  - Gemfile.lock