seamless_database_pool 1.0.4 → 1.0.5

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.
File without changes
data/Rakefile CHANGED
@@ -1,15 +1,20 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
  require 'rake/rdoctask'
4
- require 'rake/gempackagetask'
5
- require 'spec/rake/spectask'
6
4
 
7
5
  desc 'Default: run unit tests.'
8
6
  task :default => :test
9
7
 
10
- desc 'Test seamless_database_pool.'
11
- Spec::Rake::SpecTask.new(:test) do |t|
12
- t.spec_files = 'spec/**/*_spec.rb'
8
+ begin
9
+ require 'spec/rake/spectask'
10
+ desc 'Test seamless_database_pool.'
11
+ Spec::Rake::SpecTask.new(:test) do |t|
12
+ t.spec_files = FileList.new('spec/**/*_spec.rb')
13
+ end
14
+ rescue LoadError
15
+ tast :test do
16
+ STDERR.puts "You must have rspec >= 1.2.9 to run the tests"
17
+ end
13
18
  end
14
19
 
15
20
  desc 'Generate documentation for seamless_database_pool.'
@@ -20,25 +25,20 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
20
25
  rdoc.rdoc_files.include('lib/**/*.rb')
21
26
  end
22
27
 
23
- spec = Gem::Specification.new do |s|
24
- s.name = "seamless_database_pool"
25
- s.version = "1.0.4"
26
- s.author = "Brian Durand"
27
- s.platform = Gem::Platform::RUBY
28
- s.summary = "Support for master/slave database clusters in ActiveRecord"
29
- s.description = "Add support for master/slave database clusters in ActiveRecord to improve performance."
30
- s.files = FileList["lib/**/*", "init.rb", "MIT-LICENSE", 'Rakefile'].to_a
31
- s.require_path = "lib"
32
- s.test_files = FileList["{spec}/**/*_spec.rb"].to_a
33
- s.has_rdoc = true
34
- s.rdoc_options << '--title' << 'Seamless Database Pool' << '--line-numbers' << '--inline-source' << '--main' << 'README'
35
- s.extra_rdoc_files = ["README"]
36
- s.homepage = "http://seamlessdbpool.rubyforge.org"
37
- s.rubyforge_project = "seamlessdbpool"
38
- s.email = 'brian@embellishedvisions.com'
39
- s.requirements = 'rspec 1.0.8 or higher is needed to run the tests'
40
- end
41
-
42
- Rake::GemPackageTask.new(spec) do |pkg|
43
- pkg.need_tar = true
44
- end
28
+ begin
29
+ require 'jeweler'
30
+ Jeweler::Tasks.new do |gem|
31
+ gem.name = "seamless_database_pool"
32
+ gem.summary = "Add support for master/slave database clusters in ActiveRecord to improve performance."
33
+ gem.email = "brian@embellishedvisions.com"
34
+ gem.homepage = "http://github.com/bdurand/seamless_database_pool"
35
+ gem.authors = ["Brian Durand"]
36
+
37
+ gem.add_dependency('activerecord', '>= 2.2.2')
38
+ gem.add_development_dependency('rspec', '>= 1.2.9')
39
+ gem.add_development_dependency('jeweler')
40
+ end
41
+
42
+ Jeweler::GemcutterTasks.new
43
+ rescue LoadError
44
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.5
@@ -1,5 +1,3 @@
1
- require 'seamless_database_pool/connect_timeout'
2
-
3
1
  module ActiveRecord
4
2
  class Base
5
3
  def self.seamless_database_pool_connection (config)
@@ -1,3 +1,8 @@
1
+ require File.join(File.dirname(__FILE__), 'seamless_database_pool', 'connect_timeout')
2
+ require File.join(File.dirname(__FILE__), 'seamless_database_pool', 'connection_statistics')
3
+ require File.join(File.dirname(__FILE__), 'seamless_database_pool', 'controller_filter')
4
+ require File.join(File.dirname(__FILE__), 'active_record', 'connection_adapters', 'seamless_database_pool_adapter')
5
+
1
6
  # This module allows setting the read pool connection type. Generally you will use one of
2
7
  #
3
8
  # - use_random_read_connection
@@ -0,0 +1,69 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{seamless_database_pool}
8
+ s.version = "1.0.5"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Brian Durand"]
12
+ s.date = %q{2010-02-07}
13
+ s.email = %q{brian@embellishedvisions.com}
14
+ s.extra_rdoc_files = [
15
+ "README.rdoc"
16
+ ]
17
+ s.files = [
18
+ "MIT-LICENSE",
19
+ "README.rdoc",
20
+ "Rakefile",
21
+ "VERSION",
22
+ "init.rb",
23
+ "lib/active_record/connection_adapters/seamless_database_pool_adapter.rb",
24
+ "lib/seamless_database_pool.rb",
25
+ "lib/seamless_database_pool/connect_timeout.rb",
26
+ "lib/seamless_database_pool/connection_statistics.rb",
27
+ "lib/seamless_database_pool/controller_filter.rb",
28
+ "seamless_database_pool.gemspec",
29
+ "spec/connection_statistics_spec.rb",
30
+ "spec/filter_spec.rb",
31
+ "spec/seamless_database_pool_adapter_spec.rb",
32
+ "spec/seamless_database_pool_spec.rb",
33
+ "spec/spec_helper.rb",
34
+ "spec/test_models.rb"
35
+ ]
36
+ s.homepage = %q{http://github.com/bdurand/seamless_database_pool}
37
+ s.rdoc_options = ["--charset=UTF-8"]
38
+ s.require_paths = ["lib"]
39
+ s.rubygems_version = %q{1.3.5}
40
+ s.summary = %q{Add support for master/slave database clusters in ActiveRecord to improve performance.}
41
+ s.test_files = [
42
+ "spec/connection_statistics_spec.rb",
43
+ "spec/filter_spec.rb",
44
+ "spec/seamless_database_pool_adapter_spec.rb",
45
+ "spec/seamless_database_pool_spec.rb",
46
+ "spec/spec_helper.rb",
47
+ "spec/test_models.rb"
48
+ ]
49
+
50
+ if s.respond_to? :specification_version then
51
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
52
+ s.specification_version = 3
53
+
54
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
55
+ s.add_runtime_dependency(%q<activerecord>, [">= 2.2.2"])
56
+ s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
57
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
58
+ else
59
+ s.add_dependency(%q<activerecord>, [">= 2.2.2"])
60
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
61
+ s.add_dependency(%q<jeweler>, [">= 0"])
62
+ end
63
+ else
64
+ s.add_dependency(%q<activerecord>, [">= 2.2.2"])
65
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
66
+ s.add_dependency(%q<jeweler>, [">= 0"])
67
+ end
68
+ end
69
+
@@ -1,6 +1,6 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
2
2
 
3
- describe "SeamlessDatabasePool::ConnectionStatistics" do
3
+ describe SeamlessDatabasePool::ConnectionStatistics do
4
4
 
5
5
  module SeamlessDatabasePool
6
6
  class ConnectionStatisticsTester
@@ -23,7 +23,7 @@ describe "SeamlessDatabasePool::ConnectionStatistics" do
23
23
  "SELECT #{sql}/#{name}"
24
24
  end
25
25
 
26
- include ConnectionStatistics
26
+ include ::SeamlessDatabasePool::ConnectionStatistics
27
27
  end
28
28
  end
29
29
 
data/spec/filter_spec.rb CHANGED
@@ -22,21 +22,21 @@ describe "SeamlessDatabasePool::ControllerFilter" do
22
22
  end
23
23
 
24
24
  def base_action
25
- SeamlessDatabasePool.read_only_connection_type
25
+ ::SeamlessDatabasePool.read_only_connection_type
26
26
  end
27
27
  end
28
28
 
29
29
  class TestBaseController < TestApplicationController
30
- include SeamlessDatabasePool::ControllerFilter
30
+ include ::SeamlessDatabasePool::ControllerFilter
31
31
 
32
32
  use_database_pool :read => :persistent
33
33
 
34
34
  def read
35
- SeamlessDatabasePool.read_only_connection_type
35
+ ::SeamlessDatabasePool.read_only_connection_type
36
36
  end
37
37
 
38
38
  def other
39
- SeamlessDatabasePool.read_only_connection_type
39
+ ::SeamlessDatabasePool.read_only_connection_type
40
40
  end
41
41
  end
42
42
 
@@ -44,11 +44,11 @@ describe "SeamlessDatabasePool::ControllerFilter" do
44
44
  use_database_pool :all => :random, [:edit, :save, :redirect_master_action] => :master
45
45
 
46
46
  def edit
47
- SeamlessDatabasePool.read_only_connection_type
47
+ ::SeamlessDatabasePool.read_only_connection_type
48
48
  end
49
49
 
50
50
  def save
51
- SeamlessDatabasePool.read_only_connection_type
51
+ ::SeamlessDatabasePool.read_only_connection_type
52
52
  end
53
53
 
54
54
  def redirect_master_action
@@ -363,32 +363,13 @@ end
363
363
 
364
364
  describe "Reload extensions" do
365
365
  before(:all) do
366
- ActiveRecord::Migration.suppress_messages do
367
- class SeamlessDatabasePoolTestThing < ActiveRecord::Base
368
- ActiveRecord::Migration.create_table(:seamless_database_pool_test_things) do |t|
369
- t.column :name, :string
370
- t.column :seamless_database_pool_test_model_id, :integer
371
- end unless table_exists?
372
- belongs_to :seamless_database_pool_test_model
373
- end
374
-
375
- class SeamlessDatabasePoolTestModel < ActiveRecord::Base
376
- ActiveRecord::Migration.create_table(:seamless_database_pool_test_models) do |t|
377
- t.column :name, :string
378
- end unless table_exists?
379
- has_many :seamless_database_pool_test_things
380
- end
381
- end
382
-
383
- @record = SeamlessDatabasePoolTestModel.create(:name => 'test')
384
- @thing = SeamlessDatabasePoolTestThing.create(:name => 'thing', :seamless_database_pool_test_model_id => @record.id)
366
+ SeamlessDatabasePool::Test.create_tables
367
+ @record = SeamlessDatabasePool::Test::Model.create(:name => 'test')
368
+ @thing = SeamlessDatabasePool::Test::Thing.create(:name => 'thing', :model_id => @record.id)
385
369
  end
386
370
 
387
371
  after(:all) do
388
- ActiveRecord::Migration.suppress_messages do
389
- ActiveRecord::Migration.drop_table(:seamless_database_pool_test_models) if SeamlessDatabasePoolTestModel.table_exists?
390
- ActiveRecord::Migration.drop_table(:seamless_database_pool_test_things) if SeamlessDatabasePoolTestThing.table_exists?
391
- end
372
+ SeamlessDatabasePool::Test.drop_tables
392
373
  end
393
374
 
394
375
  it "should force the master connection on reload" do
@@ -0,0 +1,12 @@
1
+ require 'rubygems'
2
+
3
+ active_record_version = ENV["ACTIVE_RECORD_VERSION"] || [">= 2.2.2", "< 3.0"]
4
+ active_record_version = [active_record_version] unless active_record_version.is_a?(Array)
5
+ gem 'activerecord', *active_record_version
6
+
7
+ require 'spec'
8
+ require 'active_record'
9
+ puts "Testing Against ActiveRecord #{ActiveRecord::VERSION::STRING}" if defined?(ActiveRecord::VERSION)
10
+
11
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'seamless_database_pool'))
12
+ require File.expand_path(File.join(File.dirname(__FILE__), 'test_models'))
@@ -0,0 +1,35 @@
1
+ module SeamlessDatabasePool
2
+ class Test < ActiveRecord::Base
3
+ def self.create_tables
4
+ db_dir = File.expand_path(File.join(__FILE__, '..', 'tmp'))
5
+ Dir.mkdir(db_dir) unless File.exist?(db_dir)
6
+ db = File.join(db_dir, 'test_SeamlessDatabasePool.sqlite3')
7
+ establish_connection("adapter" => "sqlite3", "database" => db)
8
+
9
+ connection.create_table(Thing.table_name) do |t|
10
+ t.column :name, :string
11
+ t.column :model_id, :integer
12
+ end unless Thing.table_exists?
13
+
14
+ connection.create_table(Model.table_name) do |t|
15
+ t.column :name, :string
16
+ end unless Model.table_exists?
17
+ end
18
+
19
+ def self.drop_tables
20
+ db_dir = File.expand_path(File.join(__FILE__, '..', 'tmp'))
21
+ db = File.join(db_dir, 'test_SeamlessDatabasePool.sqlite3')
22
+ connection.disconnect!
23
+ File.delete(db) if File.exist?(db)
24
+ Dir.delete(db_dir) if File.exist?(db_dir) and Dir.entries(db_dir).reject{|f| f.match(/^\.+$/)}.empty?
25
+ end
26
+
27
+ class Thing < Test
28
+ belongs_to :model, :class_name => "SeamlessDatabasePool::Test::Model"
29
+ end
30
+
31
+ class Model < Test
32
+ has_many :things, :class_name => "SeamlessDatabasePool::Test::Thing"
33
+ end
34
+ end
35
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seamless_database_pool
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Durand
@@ -9,40 +9,72 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-05 00:00:00 -05:00
12
+ date: 2010-02-07 00:00:00 -06:00
13
13
  default_executable:
14
- dependencies: []
15
-
16
- description: Add support for master/slave database clusters in ActiveRecord to improve performance.
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: activerecord
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.2.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.2.9
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: jeweler
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ description:
17
46
  email: brian@embellishedvisions.com
18
47
  executables: []
19
48
 
20
49
  extensions: []
21
50
 
22
51
  extra_rdoc_files:
23
- - README
52
+ - README.rdoc
24
53
  files:
54
+ - MIT-LICENSE
55
+ - README.rdoc
56
+ - Rakefile
57
+ - VERSION
58
+ - init.rb
25
59
  - lib/active_record/connection_adapters/seamless_database_pool_adapter.rb
60
+ - lib/seamless_database_pool.rb
26
61
  - lib/seamless_database_pool/connect_timeout.rb
27
62
  - lib/seamless_database_pool/connection_statistics.rb
28
63
  - lib/seamless_database_pool/controller_filter.rb
29
- - lib/seamless_database_pool.rb
30
- - init.rb
31
- - MIT-LICENSE
32
- - Rakefile
33
- - README
64
+ - seamless_database_pool.gemspec
65
+ - spec/connection_statistics_spec.rb
66
+ - spec/filter_spec.rb
67
+ - spec/seamless_database_pool_adapter_spec.rb
68
+ - spec/seamless_database_pool_spec.rb
69
+ - spec/spec_helper.rb
70
+ - spec/test_models.rb
34
71
  has_rdoc: true
35
- homepage: http://seamlessdbpool.rubyforge.org
72
+ homepage: http://github.com/bdurand/seamless_database_pool
36
73
  licenses: []
37
74
 
38
75
  post_install_message:
39
76
  rdoc_options:
40
- - --title
41
- - Seamless Database Pool
42
- - --line-numbers
43
- - --inline-source
44
- - --main
45
- - README
77
+ - --charset=UTF-8
46
78
  require_paths:
47
79
  - lib
48
80
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -57,15 +89,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
57
89
  - !ruby/object:Gem::Version
58
90
  version: "0"
59
91
  version:
60
- requirements:
61
- - rspec 1.0.8 or higher is needed to run the tests
62
- rubyforge_project: seamlessdbpool
92
+ requirements: []
93
+
94
+ rubyforge_project:
63
95
  rubygems_version: 1.3.5
64
96
  signing_key:
65
97
  specification_version: 3
66
- summary: Support for master/slave database clusters in ActiveRecord
98
+ summary: Add support for master/slave database clusters in ActiveRecord to improve performance.
67
99
  test_files:
68
100
  - spec/connection_statistics_spec.rb
69
101
  - spec/filter_spec.rb
70
102
  - spec/seamless_database_pool_adapter_spec.rb
71
103
  - spec/seamless_database_pool_spec.rb
104
+ - spec/spec_helper.rb
105
+ - spec/test_models.rb