slnky 0.10.2 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|