slnky 0.12.4 → 0.13.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7cfe54e170e8248c911458a77b5d73c0c2c3640e
4
- data.tar.gz: 285c09739886dc2383e5109e5d403a62e5261646
3
+ metadata.gz: b3c1ed8013e3e37e78007da5f7ea94fb8a184e38
4
+ data.tar.gz: 116c7139be8b7476587bd148cddf676960f1c71d
5
5
  SHA512:
6
- metadata.gz: b8188e6017231bd395507e9fc6583277001bccf1bda16c78fe6e5a8600f2bb2deb804ae7b30c5158e66f706bf82e6ce8f351958e7ffdac3267b17dc925a0b54c
7
- data.tar.gz: 614be9e8493f7b11dfa4f9e66d2bf30d7caa0357dfb9ffa50c26eaa518739cbc5991674b3c4d246779c2a0966bbd2ef35cf7588a5cea90832c960cd498c7f19b
6
+ metadata.gz: 5566ee1d01a4abec62e40070e9597241623a37308a3970a865af544d13e5e00a5be37167989f2a214963640427055824c6a43f9d42a2ad8a3cc7ff9a33804b31
7
+ data.tar.gz: eda9b8ba0146900f2463c34aed0e05ba3279047fdf7085b57e39b1a49450dee4530d4b6685d1f9a65d403045e9b10361b78742f8727f95a7c223901484297107
@@ -9,6 +9,7 @@ require 'slnky/config'
9
9
  require 'slnky/log'
10
10
  require 'slnky/system'
11
11
  require 'slnky/message'
12
+ require 'slnky/brain'
12
13
  require 'slnky/transport'
13
14
  require 'slnky/service'
14
15
  require 'slnky/client'
@@ -21,8 +22,9 @@ module Slnky
21
22
  end
22
23
 
23
24
  def heartbeat(name)
24
- server = ENV['SLNKY_URL'] || Slnky.config.url
25
- RestClient.post "#{server}/hooks/heartbeat", {name: name}, content_type: :json, accept: :json
25
+ # server = ENV['SLNKY_URL'] || Slnky.config.url
26
+ # RestClient.post "#{server}/hooks/heartbeat", {name: name}, content_type: :json, accept: :json
27
+ Slnky.brain.hset(:heartbeat, name, Time.now.to_i)
26
28
  end
27
29
 
28
30
  def notify(msg)
@@ -0,0 +1,71 @@
1
+ require 'redis'
2
+ require 'json'
3
+
4
+ module Slnky
5
+ class << self
6
+ def brain
7
+ Slnky::Brain::Base.instance
8
+ end
9
+ end
10
+ module Brain
11
+ class Base
12
+ class << self
13
+ def instance
14
+ @brain ||= self.new(Slnky.config.redis.to_h)
15
+ end
16
+
17
+ def connect(config)
18
+ @brain = self.new(config)
19
+ end
20
+ end
21
+
22
+ def initialize(redis={})
23
+ @options = {
24
+ host: '127.0.0.1',
25
+ port: 6379,
26
+ user: nil,
27
+ pass: nil,
28
+ db: '15'
29
+ }
30
+ @options.merge!(redis) if redis
31
+ userpass = @options[:user] ? "#{@options[:user]}:#{@options[:pass]}" : ''
32
+ @redis = Redis.new(url: "redis://#{userpass}#{@options[:host]}:#{@options[:port]}/#{@options[:db]}")
33
+ end
34
+
35
+ # def keys(pattern='*')
36
+ # @redis.keys(pattern)
37
+ # end
38
+ #
39
+ # def set(key, value)
40
+ # @redis.set key, value.is_a?(String) ? value : value.to_json
41
+ # end
42
+ #
43
+ # def get(key)
44
+ # val = @redis.get key
45
+ # begin
46
+ # JSON.parse(val)
47
+ # rescue
48
+ # val
49
+ # end
50
+ # end
51
+
52
+ def hset(key, field, value)
53
+ @redis.hset("slnky.#{key}", field, value.is_a?(String) ? value : value.to_json)
54
+ end
55
+
56
+ def hget(key, field)
57
+ val = @redis.hget("slnky.#{key}", field)
58
+ begin
59
+ JSON.parse(val)
60
+ rescue
61
+ val
62
+ end
63
+ end
64
+
65
+ def hgetall(key)
66
+ keys = @redis.hkeys("slnky.#{key}")
67
+ keys.inject({}) {|h, e| h[e] = hget(key, e); h}
68
+ end
69
+ end
70
+ end
71
+ end
@@ -8,7 +8,6 @@ module Slnky
8
8
  if route =~ /\:/
9
9
  (route, reply) = route.split(':', 2)
10
10
  end
11
- puts "ROUTE: #{route} #{reply}"
12
11
  @route = route
13
12
  @reply = reply
14
13
  @service = Slnky::System.pid
@@ -24,7 +24,7 @@ module Slnky
24
24
  subscriber.add "slnky.#{name}.command", :handle_command
25
25
  subscriber.add "slnky.help.command", :handle_command
26
26
  subscriber.add "slnky.service.restart", :handle_restart
27
- timers.add 5.seconds, :handle_heartbeat unless config.development?
27
+ timers.add 5.seconds, :handle_heartbeat # unless config.development?
28
28
 
29
29
  subscriber.each do |name, method|
30
30
  log.info "subscribed to: #{name} -> #{self.class.name}.#{method}"
@@ -47,11 +47,8 @@ module Slnky
47
47
  end
48
48
 
49
49
  def handle_heartbeat
50
- return if @server_down
50
+ # log.debug "heartbeat #{name}"
51
51
  Slnky.heartbeat(name)
52
- rescue => e
53
- log.info "could not post heartbeat, server down? #{e.message}"
54
- @server_down = true
55
52
  end
56
53
 
57
54
  def subscriber
@@ -1,3 +1,3 @@
1
1
  module Slnky
2
- VERSION = "0.12.4"
2
+ VERSION = "0.13.0"
3
3
  end
@@ -41,4 +41,5 @@ Gem::Specification.new do |spec|
41
41
  spec.add_dependency 'docopt', '~> 0.5.0'
42
42
  spec.add_dependency 'highline', '~> 1.7.8'
43
43
  spec.add_dependency 'colorize', '~> 0.7.7'
44
+ spec.add_dependency 'redis', '~> 3.2'
44
45
  end
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.12.4
4
+ version: 0.13.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-22 00:00:00.000000000 Z
11
+ date: 2016-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -192,6 +192,20 @@ dependencies:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
194
  version: 0.7.7
195
+ - !ruby/object:Gem::Dependency
196
+ name: redis
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '3.2'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '3.2'
195
209
  description: core slnky lib and command line
196
210
  email:
197
211
  - me@shawncatz.com
@@ -216,6 +230,7 @@ files:
216
230
  - lib/capistrano/slnky/templates/upstart.conf.erb
217
231
  - lib/capistrano/tasks/slnky.rake
218
232
  - lib/slnky.rb
233
+ - lib/slnky/brain.rb
219
234
  - lib/slnky/cli.rb
220
235
  - lib/slnky/cli/command.rb
221
236
  - lib/slnky/cli/generate.rb