activerecord-bogacs 0.3.0 → 0.4.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 930e066b793b68dafffe166563475cfa1812aad6
4
- data.tar.gz: 56cd2c22124126859b4e8bb5da2f8fe133c43a5e
3
+ metadata.gz: 1f7c9f5688cb27fb4c84bea3a516d1d2d014fb1c
4
+ data.tar.gz: 17a6269479cb432bda7d027c0d89586c6cecaa19
5
5
  SHA512:
6
- metadata.gz: 8b9a4c0e4877fd090e266096c7c48cff52d3a2856efc712c8e3919c659d9f8a866ccf1f19d92ac44258e0d44cbfc255bab33473ab4a2c2200fbd6a5e228ebcc5
7
- data.tar.gz: daaf27dcb6b82139cfeaf396181ddfbe6bf3ff36300f79dc56ae6aee9d4b604250f2172f434296136350c2bfb290907a2030d8b741e06330343b5fe51db2e4b2
6
+ metadata.gz: 1ad54c3ab7af8f4edbc2fea17cba7f1d32d784d4107ba8fe186e58fed676dd30f61b91bef610d3912b9f0bc1022286b39366b8b605228ba9e2c38939f155910b
7
+ data.tar.gz: 8dffdfc6857d604ab66931b0a30eca0d6e5b5d9fd148ec1dcb73721dd29cf338de3744730974581cb4f624e1cf402e2c1790357201310904e8cdef8787be7d54
@@ -5,8 +5,7 @@ jdk:
5
5
  - oraclejdk7
6
6
  - oraclejdk8
7
7
  rvm:
8
- - jruby-1.7.16
9
- #- jruby-head
8
+ - jruby-1.7.22
10
9
  #- 2.1.2
11
10
  before_install:
12
11
  - ((jruby -v | grep 1.8.7) && jruby --1.9 -S gem update --system 2.1.11) || true
@@ -21,8 +20,8 @@ script:
21
20
  - bundle exec rake dbcp:download
22
21
  - bundle exec rake db:create:mysql db:create:postgresql
23
22
  env:
24
- - JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.3.2"
25
- - JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=postgresql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.3.1-java6"
23
+ - JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.3.12"
24
+ - JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=postgresql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.3.2-java6"
26
25
  - JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.0.1-java6"
27
26
  - JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=postgresql AR_VERSION="~> 3.2.18" HIKARI_VERSION="1.4.0"
28
27
  - JRUBY_OPTS="--1.8 $JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 3.2.18" HIKARI_VERSION="2.2.5-java6"
@@ -30,15 +29,22 @@ matrix:
30
29
  #allow_failures:
31
30
  #- rvm: jruby-head
32
31
  exclude:
33
- - rvm: jruby-1.7.16
34
- env: JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.3.2"
32
+ - rvm: jruby-1.7.22
33
+ env: JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.3.12"
35
34
  jdk: oraclejdk7
36
- - rvm: jruby-1.7.16
37
- env: JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=postgresql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.3.1-java6"
35
+ - rvm: jruby-1.7.22
36
+ env: JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=postgresql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.3.2-java6"
38
37
  jdk: oraclejdk8
39
- - rvm: jruby-1.7.16
38
+ - rvm: jruby-1.7.22
40
39
  env: JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.0.1-java6"
41
40
  jdk: oraclejdk8
42
- - rvm: jruby-1.7.16
41
+ - rvm: jruby-1.7.22
43
42
  env: JRUBY_OPTS="--1.8 $JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 3.2.18" HIKARI_VERSION="2.2.5-java6"
43
+ jdk: oraclejdk8
44
+ include:
45
+ - rvm: jruby-9.0.1.0
46
+ env: JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.2.5-java6"
47
+ jdk: oraclejdk7
48
+ - rvm: jruby-9.0.1.0
49
+ env: JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 3.2.18" HIKARI_VERSION="2.3.9"
44
50
  jdk: oraclejdk8
data/Gemfile CHANGED
@@ -19,6 +19,9 @@ end
19
19
  if RUBY_VERSION.index('1.8') == 0
20
20
  gem 'i18n', '< 0.7.0' # Gem::InstallError: i18n requires Ruby version >= 1.9.3
21
21
  gem 'atomic', '1.1.16' # concurrent-ruby gem only for Ruby version >= 1.9.3
22
+ gem 'thread_safe', '~> 0.3'
23
+ else
24
+ gem 'concurrent-ruby', '1.0.0.pre4', :require => nil
22
25
  end
23
26
 
24
27
  platform :jruby do
data/Rakefile CHANGED
@@ -29,6 +29,21 @@ task 'db:create:mysql' do
29
29
  # puts "... run tests with MySQL using: `AR_ADAPTER=mysql rake test `"
30
30
  end
31
31
 
32
+ task 'db:drop:mysql' do
33
+ fail "could not create database: mysql executable not found" unless mysql = _which('mysql')
34
+ ENV['Rake'] = true.to_s; ENV['AR_ADAPTER'] ||= 'mysql'
35
+ require File.expand_path('test/test_helper.rb', File.dirname(__FILE__))
36
+
37
+ script = "DROP DATABASE `#{AR_CONFIG[:database]}`;"
38
+ params = { '-u' => 'root' }
39
+ if ENV['DATABASE_YML']; require 'yaml'
40
+ password = YAML.load(File.new(ENV['DATABASE_YML']))["production"]["password"]
41
+ params['--password'] = password
42
+ end
43
+ puts "Creating MySQL database: #{AR_CONFIG[:database]}"
44
+ sh "cat #{_sql_script(script).path} | #{mysql} #{params.to_a.join(' ')}", :verbose => $VERBOSE
45
+ end
46
+
32
47
  desc "Creates a (test) PostgreSQL database"
33
48
  task 'db:create:postgresql' do
34
49
  fail 'could not create database: psql executable not found' unless psql = _which('psql')
@@ -94,14 +109,14 @@ namespace :tomcat do
94
109
 
95
110
  tomcat_maven_repo = 'http://repo2.maven.org/maven2/org/apache/tomcat'
96
111
  download_dir = File.expand_path('test/jars', File.dirname(__FILE__))
97
- version_default = '7.0.59'
112
+ version_default = '7.0.64'
98
113
 
99
114
  [ 'tomcat-jdbc', 'tomcat-dbcp' ].each do |tomcat_pool|
100
115
  namespace tomcat_pool.sub('tomcat-', '') do # rake tomcat:dbcp:download
101
116
 
102
117
  tomcat_pool_jar = "#{tomcat_pool}.jar"
103
118
 
104
- task :download, :version do |_,args| # rake tomcat:jdbc:download[7.0.54]
119
+ task :download, :version do |_,args| # rake tomcat:jdbc:download[7.0.64]
105
120
  env_key = "#{tomcat_pool.upcase.sub('-', '_')}_VERSION" # 'TOMCAT_JDBC_VERSION'
106
121
  version = args[:version] || ENV[env_key] || version_default
107
122
 
@@ -8,19 +8,21 @@ Gem::Specification.new do |gem|
8
8
 
9
9
  gem.authors = ['Karol Bucek']
10
10
  gem.email = ['self@kares.org']
11
- gem.description = %q{(experimental) alternatives for ActiveRecord::ConnectionAdapters::ConnectionPool}
12
- gem.summary = %q{A small body of still water, usually fresh ... for ActiveRecord!}
11
+ gem.description = %q{Improved ActiveRecord::ConnectionAdapters::ConnectionPool alternatives}
12
+ gem.summary = 'Bogacs contains several pool implementations that can be used as a replacement ' <<
13
+ "for ActiveRecord's built-in pool, e.g. DefaultPool is an upstream tuned version with an API " <<
14
+ 'that is compatible with older AR versions.' <<
15
+ "\n\nNOTE: you'll need concurrent-ruby or thread_safe gem."
13
16
  gem.homepage = "http://github.com/kares/activerecord-bogacs"
14
- #gem.licenses = ['MIT']
17
+ gem.licenses = ['MIT']
15
18
 
16
19
  gem.files = `git ls-files`.split($/)
17
20
  gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
21
  gem.test_files = gem.files.grep(%r{^test/})
19
22
  gem.require_paths = ["lib"]
20
23
 
21
- gem.add_runtime_dependency 'thread_safe', '~> 0.3'
24
+ gem.add_development_dependency 'concurrent-ruby', '>= 0.9' if RUBY_VERSION.index('1.8') != 0
22
25
 
23
- gem.add_development_dependency 'concurrent-ruby', '>= 0.8' if RUBY_VERSION.index('1.8') != 0
24
26
  gem.add_development_dependency 'rake', '~> 10.3'
25
27
  gem.add_development_dependency 'test-unit', '~> 2.5'
26
28
  end
@@ -1,9 +1,9 @@
1
1
  require 'thread'
2
- require 'thread_safe'
3
2
  require 'monitor'
4
3
 
5
4
  require 'active_record/connection_adapters/adapter_compat'
6
5
  require 'active_record/bogacs/pool_support'
6
+ require 'active_record/bogacs/thread_safe'
7
7
 
8
8
  module ActiveRecord
9
9
  module Bogacs
@@ -234,7 +234,7 @@ module ActiveRecord
234
234
  end
235
235
 
236
236
  # The cache of reserved connections mapped to threads
237
- @reserved_connections = ThreadSafe::Cache.new(:initial_capacity => @size)
237
+ @reserved_connections = ThreadSafe::Map.new(:initial_capacity => @size)
238
238
 
239
239
  @connections = []
240
240
  @automatic_reconnect = true
@@ -279,7 +279,7 @@ module ActiveRecord
279
279
  def release_connection(with_id = current_connection_id)
280
280
  #synchronize do
281
281
  conn = @reserved_connections.delete(with_id)
282
- checkin conn if conn
282
+ checkin conn, true if conn
283
283
  #end
284
284
  end
285
285
 
@@ -381,15 +381,13 @@ module ActiveRecord
381
381
  #
382
382
  # +conn+: an AbstractAdapter object, which was obtained by earlier by
383
383
  # calling +checkout+ on this pool.
384
- def checkin(conn)
384
+ def checkin(conn, released = nil)
385
385
  synchronize do
386
- owner = conn.owner
387
-
388
386
  conn.run_callbacks :checkin do
389
387
  conn.expire
390
388
  end
391
389
 
392
- release owner
390
+ release conn.owner unless released
393
391
 
394
392
  @available.add conn
395
393
  end
@@ -453,7 +451,6 @@ module ActiveRecord
453
451
 
454
452
  def release(owner)
455
453
  thread_id = owner.object_id
456
-
457
454
  @reserved_connections.delete thread_id
458
455
  end
459
456
 
@@ -1,5 +1,5 @@
1
- require 'thread_safe'
2
1
  require 'active_record/bogacs/pool_support'
2
+ require 'active_record/bogacs/thread_safe'
3
3
 
4
4
  module ActiveRecord
5
5
  module Bogacs
@@ -7,8 +7,7 @@ module ActiveRecord
7
7
 
8
8
  include PoolSupport
9
9
 
10
- include ThreadSafe::Util::CheapLockable
11
- alias_method :synchronize, :cheap_synchronize
10
+ include ThreadSafe::Synchronized
12
11
 
13
12
  attr_accessor :automatic_reconnect
14
13
 
@@ -21,7 +20,7 @@ module ActiveRecord
21
20
  @size = nil
22
21
  #@automatic_reconnect = true
23
22
 
24
- @reserved_connections = ThreadSafe::Cache.new #:initial_capacity => @size
23
+ @reserved_connections = ThreadSafe::Map.new #:initial_capacity => @size
25
24
  end
26
25
 
27
26
  # @private replacement for attr_reader :connections
@@ -4,9 +4,9 @@ module ActiveRecord
4
4
  module Bogacs
5
5
  module PoolSupport
6
6
 
7
- def self.included(base)
8
- #base.send :include, ThreadSafe::Util::CheapLockable
9
- end
7
+ #def self.included(base)
8
+ #base.send :include, ThreadSafe::Synchronized
9
+ #end
10
10
 
11
11
  def new_connection
12
12
  Base.send(spec.adapter_method, spec.config)
@@ -1,17 +1,8 @@
1
1
  require 'active_record/connection_adapters/abstract/connection_pool'
2
2
 
3
3
  require 'thread'
4
- require 'thread_safe'
5
- begin
6
- require 'concurrent/atomic'
7
- rescue LoadError => e
8
- begin
9
- require 'atomic'
10
- rescue LoadError
11
- warn "shareable pool needs gem 'concurrent-ruby' please install or add it to your Gemfile"
12
- raise e
13
- end
14
- end
4
+
5
+ require 'active_record/bogacs/thread_safe'
15
6
 
16
7
  require 'active_record/bogacs/pool_support'
17
8
 
@@ -23,9 +14,17 @@ require 'active_record/bogacs/pool_support'
23
14
  module ActiveRecord
24
15
  module Bogacs
25
16
  class ShareablePool < ConnectionAdapters::ConnectionPool # NOTE: maybe do not override?!
26
- include ThreadSafe::Util::CheapLockable
27
17
  include PoolSupport
28
18
 
19
+ if ActiveRecord::Bogacs::ThreadSafe.load_cheap_lockable(false)
20
+ include ThreadSafe::CheapLockable
21
+ else
22
+ alias_method :cheap_synchronize, :synchronize
23
+ end
24
+
25
+ ActiveRecord::Bogacs::ThreadSafe.load_atomic_reference
26
+ AtomicReference = ThreadSafe::AtomicReference
27
+
29
28
  DEFAULT_SHARED_POOL = 0.25 # only allow 25% of the pool size to be shared
30
29
  MAX_THREAD_SHARING = 5 # not really a strict limit but should hold
31
30
 
@@ -39,7 +38,7 @@ module ActiveRecord
39
38
  # size 0.0 - 1.0 assumes percentage of the pool size
40
39
  shared_size = ( @size * shared_size ).round if shared_size <= 1.0
41
40
  @shared_size = shared_size.to_i
42
- @shared_connections = ThreadSafe::Cache.new # :initial_capacity => @shared_size, :concurrency_level => 20
41
+ @shared_connections = ThreadSafe::Map.new # :initial_capacity => @shared_size, :concurrency_level => 20
43
42
  end
44
43
 
45
44
  # @override
@@ -232,14 +231,8 @@ module ActiveRecord
232
231
  least_shared # might be nil in that case we'll likely wait (as super)
233
232
  end
234
233
 
235
- if defined? Concurrent::Atomic
236
- Atomic = Concurrent::Atomic
237
- else
238
- Atomic = ::Atomic
239
- end
240
-
241
234
  def add_shared_connection(connection)
242
- @shared_connections[connection] = Atomic.new(1)
235
+ @shared_connections[connection] = AtomicReference.new(1)
243
236
  end
244
237
 
245
238
  def rem_shared_connection(connection)
@@ -0,0 +1,76 @@
1
+ module ActiveRecord
2
+ module Bogacs
3
+ module ThreadSafe
4
+
5
+ #def self.load_map
6
+ begin
7
+ require 'concurrent/map.rb'
8
+ rescue LoadError => e
9
+ begin
10
+ require 'thread_safe'
11
+ rescue
12
+ warn "activerecord-bogacs needs gem 'concurrent-ruby', '~> 1.0' (or the old 'thread_safe' gem) " <<
13
+ "please install or add it to your Gemfile"
14
+ raise e
15
+ end
16
+ end
17
+ #end
18
+
19
+ #load_map # always pre-load thread_safe
20
+
21
+ if defined? ::Concurrent::Map
22
+ Map = ::Concurrent::Map
23
+ else
24
+ Map = ::ThreadSafe::Cache
25
+ end
26
+
27
+ autoload :Synchronized, 'active_record/bogacs/thread_safe/synchronized'
28
+
29
+ def self.load_atomic_reference
30
+ return const_get :AtomicReference if const_defined? :AtomicReference
31
+
32
+ begin
33
+ require 'concurrent/atomic/atomic_reference.rb'
34
+ rescue LoadError => e
35
+ begin
36
+ require 'atomic'
37
+ rescue LoadError
38
+ warn "shareable pool needs gem 'concurrent-ruby', '>= 0.9.1' (or the old 'atomic' gem) " <<
39
+ "please install or add it to your Gemfile"
40
+ raise e
41
+ end
42
+ end
43
+
44
+ if defined? ::Concurrent::AtomicReference
45
+ const_set :AtomicReference, ::Concurrent::AtomicReference
46
+ else
47
+ const_set :AtomicReference, ::Atomic
48
+ end
49
+ end
50
+
51
+ def self.load_cheap_lockable(required = true)
52
+ return const_get :CheapLockable if const_defined? :CheapLockable
53
+
54
+ begin
55
+ require 'concurrent/thread_safe/util/cheap_lockable.rb'
56
+ rescue LoadError => e
57
+ begin
58
+ require 'thread_safe'
59
+ rescue
60
+ return nil unless required
61
+ warn "activerecord-bogacs needs gem 'concurrent-ruby', '~> 1.0' (or the old 'thread_safe' gem) " <<
62
+ "please install or add it to your Gemfile"
63
+ raise e
64
+ end
65
+ end
66
+
67
+ if defined? ::Concurrent::ThreadSafe::Util::CheapLockable
68
+ const_set :CheapLockable, ::Concurrent::ThreadSafe::Util::CheapLockable
69
+ else
70
+ const_set :CheapLockable, ::ThreadSafe::Util::CheapLockable
71
+ end
72
+ end
73
+
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,33 @@
1
+ # @note Inpspired by thread_safe gem's Util::CheapLockable mixin.
2
+ module ActiveRecord::Bogacs
3
+ module ThreadSafe
4
+ engine = defined?(RUBY_ENGINE) && RUBY_ENGINE
5
+ if engine == 'rbx'
6
+ module Synchronized
7
+ # Making use of the Rubinius' ability to lock via object headers to avoid
8
+ # the overhead of the extra Mutex objects.
9
+ def synchronize
10
+ ::Rubinius.lock(self)
11
+ begin
12
+ yield
13
+ ensure
14
+ ::Rubinius.unlock(self)
15
+ end
16
+ end
17
+ end
18
+ elsif engine == 'jruby'
19
+ module Synchronized
20
+ require 'jruby'
21
+ # Use Java's native synchronized (this) { wait(); notifyAll(); } to avoid
22
+ # the overhead of the extra Mutex objects
23
+ def synchronize
24
+ ::JRuby.reference0(self).synchronized { yield }
25
+ end
26
+ end
27
+ else
28
+ require 'thread'; require 'monitor'
29
+ # on MRI fallback to built-in MonitorMixin
30
+ Synchronized = MonitorMixin
31
+ end
32
+ end
33
+ end
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module Bogacs
3
- VERSION = '0.3.0'
3
+ VERSION = '0.4.0'
4
4
  end
5
5
  end
@@ -42,7 +42,7 @@ if url = ENV['AR_URL'] || ENV['JDBC_URL']
42
42
  config[:'url'] = url
43
43
  else
44
44
  config[:'host'] = ENV['AR_HOST'] || 'localhost'
45
- config[:'database'] = ENV['AR_DATABASE'] || 'ar_basin'
45
+ config[:'database'] = ENV['AR_DATABASE'] || 'ar_bogacs'
46
46
  end
47
47
 
48
48
  config[:'pool'] = ENV['AR_POOL_SIZE'] ? ENV['AR_POOL_SIZE'].to_i : pool_size
@@ -111,8 +111,8 @@ module ActiveRecord
111
111
  module Bogacs
112
112
 
113
113
  begin
114
- require 'concurrent/atomic'
115
- Atomic = Concurrent::Atomic
114
+ require 'concurrent/atomic/atomic_reference'
115
+ Atomic = Concurrent::AtomicReference
116
116
  rescue LoadError
117
117
  require 'atomic'
118
118
  Atomic = ::Atomic
metadata CHANGED
@@ -1,41 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-bogacs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karol Bucek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-08 00:00:00.000000000 Z
11
+ date: 2015-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: thread_safe
15
- version_requirements: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '0.3'
20
- requirement: !ruby/object:Gem::Requirement
21
- requirements:
22
- - - ~>
23
- - !ruby/object:Gem::Version
24
- version: '0.3'
25
- prerelease: false
26
- type: :runtime
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: concurrent-ruby
29
15
  version_requirements: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - '>='
32
18
  - !ruby/object:Gem::Version
33
- version: '0.8'
19
+ version: '0.9'
34
20
  requirement: !ruby/object:Gem::Requirement
35
21
  requirements:
36
22
  - - '>='
37
23
  - !ruby/object:Gem::Version
38
- version: '0.8'
24
+ version: '0.9'
39
25
  prerelease: false
40
26
  type: :development
41
27
  - !ruby/object:Gem::Dependency
@@ -66,7 +52,7 @@ dependencies:
66
52
  version: '2.5'
67
53
  prerelease: false
68
54
  type: :development
69
- description: (experimental) alternatives for ActiveRecord::ConnectionAdapters::ConnectionPool
55
+ description: Improved ActiveRecord::ConnectionAdapters::ConnectionPool alternatives
70
56
  email:
71
57
  - self@kares.org
72
58
  executables: []
@@ -85,6 +71,8 @@ files:
85
71
  - lib/active_record/bogacs/false_pool.rb
86
72
  - lib/active_record/bogacs/pool_support.rb
87
73
  - lib/active_record/bogacs/shareable_pool.rb
74
+ - lib/active_record/bogacs/thread_safe.rb
75
+ - lib/active_record/bogacs/thread_safe/synchronized.rb
88
76
  - lib/active_record/bogacs/version.rb
89
77
  - lib/active_record/connection_adapters/adapter_compat.rb
90
78
  - lib/active_record/shared_connection.rb
@@ -97,7 +85,8 @@ files:
97
85
  - test/active_record/connection_pool_test_methods.rb
98
86
  - test/test_helper.rb
99
87
  homepage: http://github.com/kares/activerecord-bogacs
100
- licenses: []
88
+ licenses:
89
+ - MIT
101
90
  metadata: {}
102
91
  post_install_message:
103
92
  rdoc_options: []
@@ -115,10 +104,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
104
  version: '0'
116
105
  requirements: []
117
106
  rubyforge_project:
118
- rubygems_version: 2.4.5
107
+ rubygems_version: 2.4.8
119
108
  signing_key:
120
109
  specification_version: 4
121
- summary: A small body of still water, usually fresh ... for ActiveRecord!
110
+ summary: 'Bogacs contains several pool implementations that can be used as a replacement
111
+ for ActiveRecord''s built-in pool, e.g. DefaultPool is an upstream tuned version
112
+ with an API that is compatible with older AR versions. NOTE: you''ll need concurrent-ruby
113
+ or thread_safe gem.'
122
114
  test_files:
123
115
  - test/active_record/bogacs/default_pool_test.rb
124
116
  - test/active_record/bogacs/false_pool_test.rb