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.
@@ -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.