multi_db 0.3.0 → 0.3.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.
@@ -28,13 +28,15 @@ master database.
28
28
  * works with activerecord 2.1, 2.2, 2.3, and 3.0
29
29
 
30
30
  === Install
31
+ ==== Rails 2
32
+ gem install multi_db
31
33
 
32
- gem sources --add http://gems.github.com # only if you haven't already added github
33
- gem install schoefmax-multi_db
34
+ Then add this to your environment.rb:
35
+ config.gem 'multi_db', :lib => 'multi_db'
34
36
 
35
- When using Rails, add this to your environment.rb:
36
-
37
- config.gem 'schoefmax-multi_db', :lib => 'multi_db', :source => 'http://gems.github.com'
37
+ ==== Rails 3
38
+ put this in your Gemfile
39
+ gem 'multi_db'
38
40
 
39
41
  === Setup
40
42
 
@@ -18,7 +18,7 @@ module MultiDb
18
18
 
19
19
  module ClassMethods
20
20
  # Make sure transactions always switch to the master
21
- def transaction(&block)
21
+ def transaction(options = {}, &block)
22
22
  if self.connection.kind_of?(ConnectionProxy)
23
23
  super
24
24
  else
@@ -51,4 +51,4 @@ module MultiDb
51
51
  end
52
52
  end
53
53
  end
54
- end
54
+ end
@@ -23,7 +23,7 @@ module MultiDb
23
23
 
24
24
  class << self
25
25
 
26
- # defaults to RAILS_ENV if multi_db is used with Rails
26
+ # defaults to Rails.env if multi_db is used with Rails
27
27
  # defaults to 'development' when used outside Rails
28
28
  attr_accessor :environment
29
29
 
@@ -47,7 +47,7 @@ module MultiDb
47
47
  # establishes the connections to the slaves.
48
48
  def setup!(scheduler = Scheduler)
49
49
  self.master_models ||= DEFAULT_MASTER_MODELS
50
- self.environment ||= (defined?(RAILS_ENV) ? RAILS_ENV : 'development')
50
+ self.environment ||= (defined?(Rails) ? Rails.env : 'development')
51
51
  self.sticky_slave ||= false
52
52
 
53
53
  master = ActiveRecord::Base
@@ -218,4 +218,4 @@ module MultiDb
218
218
  end
219
219
 
220
220
  end
221
- end
221
+ end
@@ -12,7 +12,7 @@ module MultiDb
12
12
  @items = items
13
13
  @blacklist = Array.new(@n, Time.at(0))
14
14
  @blacklist_timeout = blacklist_timeout
15
- self.current_index = 0
15
+ self.current_index = rand(@n)
16
16
  end
17
17
 
18
18
  def blacklist!(item)
@@ -1,12 +1,13 @@
1
+ # coding: utf-8
1
2
  # -*- encoding: utf-8 -*-
2
3
 
3
4
  Gem::Specification.new do |s|
4
5
  s.name = %q{multi_db}
5
- s.version = "0.3.0"
6
+ s.version = "0.3.1"
6
7
 
7
8
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
9
  s.authors = ["Maximilian Sch\303\266fmann"]
9
- s.date = %q{2011-05-17}
10
+ s.date = %q{2012-03-29}
10
11
  s.description = "Connection proxy for ActiveRecord for single master / multiple slave database deployments"
11
12
  s.email = "max@pragmatic-it.de"
12
13
  s.extra_rdoc_files = ["LICENSE", "README.rdoc"]
@@ -5,8 +5,6 @@ require MULTI_DB_SPEC_DIR + '/../lib/multi_db/observer_extensions'
5
5
  require MULTI_DB_SPEC_DIR + '/../lib/multi_db/scheduler'
6
6
  require MULTI_DB_SPEC_DIR + '/../lib/multi_db/connection_proxy'
7
7
 
8
- RAILS_ROOT = MULTI_DB_SPEC_DIR
9
-
10
8
  describe MultiDb::ConnectionProxy do
11
9
 
12
10
  before(:all) do
@@ -2,10 +2,14 @@ require 'rubygems'
2
2
  gem 'activerecord', '3.0.5'
3
3
  %w[tlattr_accessors active_record yaml erb rspec logger].each {|lib| require lib}
4
4
 
5
- RAILS_ENV = ENV['RAILS_ENV'] = 'test'
5
+ module Rails
6
+ def self.env
7
+ ActiveSupport::StringInquirer.new("test")
8
+ end
9
+ end
6
10
 
7
11
  MULTI_DB_SPEC_DIR = File.dirname(__FILE__)
8
12
  MULTI_DB_SPEC_CONFIG = YAML::load(File.open(MULTI_DB_SPEC_DIR + '/config/database.yml'))
9
13
 
10
14
  ActiveRecord::Base.logger = Logger.new(MULTI_DB_SPEC_DIR + "/debug.log")
11
- ActiveRecord::Base.configurations = MULTI_DB_SPEC_CONFIG
15
+ ActiveRecord::Base.configurations = MULTI_DB_SPEC_CONFIG
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: multi_db
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ hash: 17
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 1
10
+ version: 0.3.1
5
11
  platform: ruby
6
12
  authors:
7
13
  - "Maximilian Sch\xC3\xB6fmann"
@@ -9,29 +15,40 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2011-05-17 00:00:00 +02:00
13
- default_executable:
18
+ date: 2012-03-29 00:00:00 Z
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: activerecord
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
20
25
  requirements:
21
26
  - - ">="
22
27
  - !ruby/object:Gem::Version
28
+ hash: 11
29
+ segments:
30
+ - 2
31
+ - 1
32
+ - 0
23
33
  version: 2.1.0
24
- version:
34
+ type: :runtime
35
+ version_requirements: *id001
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: tlattr_accessors
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
38
+ prerelease: false
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
30
41
  requirements:
31
42
  - - ">="
32
43
  - !ruby/object:Gem::Version
44
+ hash: 25
45
+ segments:
46
+ - 0
47
+ - 0
48
+ - 3
33
49
  version: 0.0.3
34
- version:
50
+ type: :runtime
51
+ version_requirements: *id002
35
52
  description: Connection proxy for ActiveRecord for single master / multiple slave database deployments
36
53
  email: max@pragmatic-it.de
37
54
  executables: []
@@ -55,7 +72,6 @@ files:
55
72
  - spec/scheduler_spec.rb
56
73
  - spec/spec_helper.rb
57
74
  - multi_db.gemspec
58
- has_rdoc: true
59
75
  homepage: http://github.com/schoefmax/multi_db
60
76
  licenses: []
61
77
 
@@ -70,21 +86,28 @@ rdoc_options:
70
86
  require_paths:
71
87
  - lib
72
88
  required_ruby_version: !ruby/object:Gem::Requirement
89
+ none: false
73
90
  requirements:
74
91
  - - ">="
75
92
  - !ruby/object:Gem::Version
93
+ hash: 3
94
+ segments:
95
+ - 0
76
96
  version: "0"
77
- version:
78
97
  required_rubygems_version: !ruby/object:Gem::Requirement
98
+ none: false
79
99
  requirements:
80
100
  - - ">="
81
101
  - !ruby/object:Gem::Version
102
+ hash: 11
103
+ segments:
104
+ - 1
105
+ - 2
82
106
  version: "1.2"
83
- version:
84
107
  requirements: []
85
108
 
86
109
  rubyforge_project: multi_db
87
- rubygems_version: 1.3.5
110
+ rubygems_version: 1.8.17
88
111
  signing_key:
89
112
  specification_version: 2
90
113
  summary: Connection proxy for ActiveRecord for single master / multiple slave database deployments