slnky 0.10.2 → 0.11.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/lib/slnky/cli/command.rb +2 -1
- data/lib/slnky/cli/service.rb +9 -1
- data/lib/slnky/command/response.rb +12 -7
- data/lib/slnky/command.rb +8 -3
- data/lib/slnky/generator.rb +0 -2
- data/lib/slnky/log.rb +2 -2
- data/lib/slnky/template/service/spec/slnky/NAME/service_spec.rb.erb +1 -1
- data/lib/slnky/template/service/spec/spec_helper.rb.erb +1 -1
- data/lib/slnky/transport.rb +19 -16
- data/lib/slnky/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60ccd795293874420c8feeb8b5f8e4f088e567f1
|
4
|
+
data.tar.gz: 6b3b948310f95d6704244dde2558c329f600e427
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22fbb510b160aa8214331c479a78227663188398179e11a67c35efe4e1db133d256c12ec11224e6d2235ec1616e68d4fb857816cb9da42171658eb54ac3ad04a
|
7
|
+
data.tar.gz: 4f40e12b83f8853cfe6692d1c9ed3215f6536a23c6366095dfa4779d7583c40a83758bf15ada9f8259513e74335de1e93b2c14e8095d6f7c4379c3f5272fa440
|
data/lib/slnky/cli/command.rb
CHANGED
@@ -39,6 +39,7 @@ module Slnky
|
|
39
39
|
tx.start!(self) do |_|
|
40
40
|
tx.exchange('response', :direct)
|
41
41
|
queue = tx.queue(response, 'response', durable: false, auto_delete: true, routing_key: response)
|
42
|
+
# queue = tx.queue(response, 'response', durable: true, routing_key: response)
|
42
43
|
queue.subscribe do |raw|
|
43
44
|
message = Slnky::Message.parse(raw)
|
44
45
|
level = message.level.to_sym
|
@@ -47,7 +48,7 @@ module Slnky
|
|
47
48
|
elsif level == :start
|
48
49
|
# start tracking responders?
|
49
50
|
else
|
50
|
-
out
|
51
|
+
out level, message.message, message.service
|
51
52
|
end
|
52
53
|
end
|
53
54
|
|
data/lib/slnky/cli/service.rb
CHANGED
@@ -6,6 +6,7 @@ module Slnky
|
|
6
6
|
n.gsub(/^slnky-/, '')
|
7
7
|
end
|
8
8
|
# option %w{-f --force}, :flag, "force overwrite of files"
|
9
|
+
option %w{-t --trace}, :flag, "print full backtrace on error"
|
9
10
|
def execute
|
10
11
|
lib = File.expand_path("#{Dir.pwd}/lib", __FILE__)
|
11
12
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
@@ -20,9 +21,16 @@ module Slnky
|
|
20
21
|
|
21
22
|
Slnky::Config.reset!
|
22
23
|
Slnky::Config.configure(name, 'environment' => environment)
|
23
|
-
|
24
|
+
|
25
|
+
klass = "Slnky::#{name.capitalize}::Service".constantize
|
26
|
+
klass.new.start
|
24
27
|
rescue => e
|
25
28
|
puts "failed to run service #{name}: #{e.message} at #{e.backtrace.first}"
|
29
|
+
if trace?
|
30
|
+
e.backtrace.each do |b|
|
31
|
+
puts " #{b}"
|
32
|
+
end
|
33
|
+
end
|
26
34
|
end
|
27
35
|
end
|
28
36
|
end
|
@@ -8,13 +8,14 @@ module Slnky
|
|
8
8
|
@route = route
|
9
9
|
@service = Slnky::System.pid
|
10
10
|
@started = false
|
11
|
+
@exchange = nil
|
12
|
+
@transport = nil
|
11
13
|
@trace = []
|
12
14
|
end
|
13
15
|
|
14
|
-
[:info, :warn, :error].each do |l|
|
16
|
+
[:debug, :info, :warn, :error].each do |l|
|
15
17
|
define_method(l) do |message|
|
16
18
|
start! unless @started
|
17
|
-
log.local.send(l, "RESPONSE: #{message}")
|
18
19
|
pub l, message
|
19
20
|
end
|
20
21
|
end
|
@@ -43,11 +44,19 @@ module Slnky
|
|
43
44
|
end
|
44
45
|
|
45
46
|
def pub(level, message)
|
46
|
-
# puts "
|
47
|
+
# puts "not connected?" unless transport.connected? && exchange
|
47
48
|
exchange.publish(msg(level, message), routing_key: @route)
|
48
49
|
@trace << message
|
49
50
|
end
|
50
51
|
|
52
|
+
def config
|
53
|
+
Slnky.config
|
54
|
+
end
|
55
|
+
|
56
|
+
def log
|
57
|
+
Slnky.log
|
58
|
+
end
|
59
|
+
|
51
60
|
def exchange
|
52
61
|
@exchange ||= transport.exchanges['response']
|
53
62
|
end
|
@@ -55,10 +64,6 @@ module Slnky
|
|
55
64
|
def transport
|
56
65
|
@transport ||= Slnky::Transport.instance
|
57
66
|
end
|
58
|
-
|
59
|
-
def channel
|
60
|
-
@channel ||= transport.channel
|
61
|
-
end
|
62
67
|
end
|
63
68
|
end
|
64
69
|
end
|
data/lib/slnky/command.rb
CHANGED
@@ -24,10 +24,11 @@ module Slnky
|
|
24
24
|
end
|
25
25
|
|
26
26
|
rescue => e
|
27
|
+
puts "ERROR: #{e.message}"
|
27
28
|
log.error "failed to run command: #{name}: #{data.command}: #{e.message} at #{e.backtrace.first}"
|
28
29
|
ensure
|
29
|
-
res.done!
|
30
30
|
log.response = false
|
31
|
+
res.done!
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
@@ -55,8 +56,12 @@ module Slnky
|
|
55
56
|
@name ||= self.class.name.split('::')[1].downcase
|
56
57
|
end
|
57
58
|
|
59
|
+
def config
|
60
|
+
Slnky.config
|
61
|
+
end
|
62
|
+
|
58
63
|
def log
|
59
|
-
|
64
|
+
Slnky.log
|
60
65
|
end
|
61
66
|
|
62
67
|
class << self
|
@@ -85,7 +90,7 @@ module Slnky
|
|
85
90
|
end
|
86
91
|
|
87
92
|
def process(args)
|
88
|
-
opts = Docopt::docopt(@doc, argv: args)
|
93
|
+
opts = Docopt::docopt(@doc, argv: args||[])
|
89
94
|
data = Slnky::Data.new
|
90
95
|
opts.each do |key, value|
|
91
96
|
k = key.gsub(/^--/, '').downcase
|
data/lib/slnky/generator.rb
CHANGED
data/lib/slnky/log.rb
CHANGED
@@ -29,7 +29,7 @@ module Slnky
|
|
29
29
|
@service = false
|
30
30
|
else # development or unset
|
31
31
|
@local = Slnky::Log::Local.new
|
32
|
-
@service =
|
32
|
+
@service = Slnky::Log::Service.new
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -72,7 +72,7 @@ module Slnky
|
|
72
72
|
class Local < Base
|
73
73
|
def initialize
|
74
74
|
super
|
75
|
-
@logger = Logger.new(STDOUT)
|
75
|
+
@logger = ::Logger.new(STDOUT)
|
76
76
|
@logger.formatter = proc do |severity, datetime, progname, msg|
|
77
77
|
"%-5s %s: %s: %s\n" % [severity, datetime, Slnky::System.pid, msg]
|
78
78
|
end
|
@@ -6,7 +6,7 @@ describe Slnky::<%= cap %>::Service do
|
|
6
6
|
s.client = Slnky::<%= cap %>::Mock.new
|
7
7
|
s
|
8
8
|
end
|
9
|
-
let(:test_event) {
|
9
|
+
let(:test_event) { slnky_event('test')}
|
10
10
|
|
11
11
|
it 'handles event' do
|
12
12
|
# test that the handler method receives and responds correctly
|
data/lib/slnky/transport.rb
CHANGED
@@ -13,8 +13,7 @@ module Slnky
|
|
13
13
|
class Rabbit
|
14
14
|
attr_reader :channel
|
15
15
|
attr_reader :exchanges
|
16
|
-
attr_reader :queues
|
17
|
-
attr_reader :stopper
|
16
|
+
# attr_reader :queues
|
18
17
|
|
19
18
|
def initialize
|
20
19
|
@config = Slnky.config
|
@@ -48,12 +47,10 @@ module Slnky
|
|
48
47
|
yield self if block_given?
|
49
48
|
|
50
49
|
if service.is_a?(Slnky::Service::Base)
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
service.
|
55
|
-
service.send(method.to_sym, event.name, event.payload)
|
56
|
-
end
|
50
|
+
queue(service.name, 'events').subscribe do |raw|
|
51
|
+
event = Slnky::Message.parse(raw)
|
52
|
+
service.subscriber.for(event.name) do |name, method|
|
53
|
+
service.send(method.to_sym, event.name, event.payload)
|
57
54
|
end
|
58
55
|
end
|
59
56
|
|
@@ -72,10 +69,14 @@ module Slnky
|
|
72
69
|
@connection.close { EventMachine.stop { exit } }
|
73
70
|
end
|
74
71
|
|
72
|
+
def connected?
|
73
|
+
@channel != nil
|
74
|
+
end
|
75
|
+
|
75
76
|
def exchange(desc, type)
|
76
77
|
raise 'attempting to create exchange without channel' unless @channel
|
77
78
|
name = "slnky.#{desc}"
|
78
|
-
@exchanges[desc]
|
79
|
+
@exchanges[desc] =
|
79
80
|
case type
|
80
81
|
when :fanout
|
81
82
|
@channel.fanout(name)
|
@@ -86,15 +87,17 @@ module Slnky
|
|
86
87
|
end
|
87
88
|
end
|
88
89
|
|
89
|
-
def queue(desc, exchange, options={})
|
90
|
+
def queue(desc, exchange='events', options={})
|
90
91
|
raise 'attempting to create queue without channel' unless @channel
|
91
92
|
name = "service.#{desc}.#{exchange}"
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
93
|
+
@queues[name] ||= begin
|
94
|
+
options = {
|
95
|
+
durable: true
|
96
|
+
}.merge(options)
|
97
|
+
routing = options.delete(:routing_key)
|
98
|
+
bindoptions = routing ? {routing_key: routing} : {}
|
99
|
+
@channel.queue(name, options).bind(@exchanges[exchange], bindoptions)
|
100
|
+
end
|
98
101
|
end
|
99
102
|
end
|
100
103
|
|
data/lib/slnky/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slnky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shawn Catanzarite
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|