resque-swapper 0.1 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,6 @@
1
1
  require 'resque'
2
2
  require 'resque-swapper/resque-swapper'
3
3
 
4
- Resque.servers = 'config/resque.yml'
4
+ if File.exists?('config/resque.yml')
5
+ Resque::Swapper.load('config/resque.yml')
6
+ end
@@ -1,11 +1,31 @@
1
1
  require 'yaml'
2
2
 
3
3
  module Resque
4
- def self.swap server
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, @swapper_config[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 self.servers &block
17
- @swapper_config.collect do |server, config|
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 self.servers= (path)
23
- @swapper_redis = Hash.new
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 self.server_connect(server, config)
47
+ def server_connect(server, config)
48
+ @swapper_redis ||= {}
49
+
39
50
  unless @swapper_redis[server]
40
- @swapper_redis[server] = Redis.new(config)
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
@@ -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
- YML
19
- File.open(file, 'a') do |f|
20
- f.write(append_config)
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
- puts "Write into #{file}: "
23
- puts append_config
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: "0.1"
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: 2011-08-07 00:00:00 -03:00
14
- default_executable:
15
- dependencies: []
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.6.2
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.