resque-swapper 0.1 → 0.1.1
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.
- data/lib/resque-swapper.rb +3 -1
- data/lib/resque-swapper/resque-swapper.rb +34 -22
- data/lib/resque-swapper/tasks.rb +9 -11
- metadata +15 -7
data/lib/resque-swapper.rb
CHANGED
@@ -1,11 +1,31 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
|
3
3
|
module Resque
|
4
|
-
|
4
|
+
extend self
|
5
|
+
|
6
|
+
module Swapper
|
7
|
+
extend self
|
8
|
+
|
9
|
+
def load(path)
|
10
|
+
@swapper_config = Hash.new
|
11
|
+
if File.exists?(path)
|
12
|
+
@swapper_config = YAML.load_file(path)
|
13
|
+
else
|
14
|
+
puts "Warning: config file doesn't not exists."
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def config(server=nil)
|
19
|
+
c = @swapper_config[Resque.info[:environment]]
|
20
|
+
server.nil? ? c : c[server.to_s]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def swap server
|
5
25
|
current = Resque.redis
|
6
|
-
|
26
|
+
|
7
27
|
# Create Redis connection.
|
8
|
-
Resque.redis = server_connect(server,
|
28
|
+
Resque.redis = server_connect(server, Swapper.config(server))
|
9
29
|
if block_given?
|
10
30
|
yield Resque
|
11
31
|
Resque.redis = current
|
@@ -13,32 +33,24 @@ module Resque
|
|
13
33
|
Resque
|
14
34
|
end
|
15
35
|
|
16
|
-
def
|
17
|
-
|
36
|
+
def servers &block
|
37
|
+
Swapper.config.collect do |server, config|
|
18
38
|
swap(server, &block)
|
19
39
|
end
|
20
40
|
end
|
21
|
-
|
22
|
-
def
|
23
|
-
|
24
|
-
if File.exists?(path)
|
25
|
-
config = YAML.load_file(path)
|
26
|
-
# Force configuration keys as symbols
|
27
|
-
@swapper_config = Hash[config.collect {|n| [n[0].to_sym, Hash[n[1].collect{|c| [c[0].to_sym, c[1]] }] ] }]
|
28
|
-
else
|
29
|
-
puts "Warning: config file doesn't not exists."
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.server(server)
|
34
|
-
server_connect(server, @swapper_config[server])
|
41
|
+
|
42
|
+
def server(server)
|
43
|
+
server_connect(server, Swapper.config(server))
|
35
44
|
end
|
36
45
|
|
37
46
|
protected
|
38
|
-
def
|
47
|
+
def server_connect(server, config)
|
48
|
+
@swapper_redis ||= {}
|
49
|
+
|
39
50
|
unless @swapper_redis[server]
|
40
|
-
|
51
|
+
# Force configuration keys as symbols
|
52
|
+
@swapper_redis[server] = Redis.new(Hash[config.collect {|n| [n[0].to_sym, n[1] ] }])
|
41
53
|
end
|
42
54
|
@swapper_redis[server]
|
43
55
|
end
|
44
|
-
end
|
56
|
+
end
|
data/lib/resque-swapper/tasks.rb
CHANGED
@@ -9,17 +9,15 @@ namespace 'resque' do
|
|
9
9
|
|
10
10
|
file = 'config/resque.yml'
|
11
11
|
FileUtils.mkdir_p('config')
|
12
|
-
|
13
|
-
append_config = <<YML
|
14
|
-
#{name}:
|
15
|
-
host: #{host}
|
16
|
-
port: #{port}
|
17
12
|
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
server = {'name' => {'host' => host, 'port' => port}}
|
14
|
+
|
15
|
+
configuration = (File.exists?(file)) ? YAML.load_file(file) : {}
|
16
|
+
%w{production development test}.each do |env|
|
17
|
+
configuration[env] = server
|
21
18
|
end
|
22
|
-
|
23
|
-
|
19
|
+
|
20
|
+
File.open(file, 'w+') {|f| f.write(configuration.to_yaml) }
|
21
|
+
"#{file} was updated."
|
24
22
|
end
|
25
|
-
end
|
23
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: resque-swapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version:
|
5
|
+
version: 0.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Endel Dreyer
|
@@ -10,10 +10,19 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date:
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
date: 2012-01-04 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: resque
|
17
|
+
prerelease: false
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.15.0
|
24
|
+
type: :runtime
|
25
|
+
version_requirements: *id001
|
17
26
|
description: " Swapping tool for Resque server on runtime.\n"
|
18
27
|
email: endel.dreyer@gmail.com
|
19
28
|
executables: []
|
@@ -27,7 +36,6 @@ files:
|
|
27
36
|
- lib/resque-swapper/resque-swapper.rb
|
28
37
|
- lib/resque-swapper/tasks.rb
|
29
38
|
- lib/resque-swapper.rb
|
30
|
-
has_rdoc: true
|
31
39
|
homepage: http://github.com/endel/resque-swapper
|
32
40
|
licenses: []
|
33
41
|
|
@@ -51,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
59
|
requirements: []
|
52
60
|
|
53
61
|
rubyforge_project:
|
54
|
-
rubygems_version: 1.
|
62
|
+
rubygems_version: 1.8.11
|
55
63
|
signing_key:
|
56
64
|
specification_version: 3
|
57
65
|
summary: Swapping tool for Resque server on runtime.
|