activerecord-bogacs 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +27 -9
- data/Gemfile +5 -0
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/Rakefile +44 -14
- data/activerecord-bogacs.gemspec +1 -1
- data/lib/active_record/bogacs/shareable_pool.rb +16 -1
- data/lib/active_record/bogacs/version.rb +1 -1
- data/test/active_record/bogacs/false_pool_test.rb +64 -4
- data/test/test_helper.rb +42 -4
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 930e066b793b68dafffe166563475cfa1812aad6
|
4
|
+
data.tar.gz: 56cd2c22124126859b4e8bb5da2f8fe133c43a5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8b9a4c0e4877fd090e266096c7c48cff52d3a2856efc712c8e3919c659d9f8a866ccf1f19d92ac44258e0d44cbfc255bab33473ab4a2c2200fbd6a5e228ebcc5
|
7
|
+
data.tar.gz: daaf27dcb6b82139cfeaf396181ddfbe6bf3ff36300f79dc56ae6aee9d4b604250f2172f434296136350c2bfb290907a2030d8b741e06330343b5fe51db2e4b2
|
data/.travis.yml
CHANGED
@@ -1,26 +1,44 @@
|
|
1
1
|
language: ruby
|
2
|
+
sudo: false
|
2
3
|
jdk:
|
3
4
|
#- openjdk6
|
4
5
|
- oraclejdk7
|
5
6
|
- oraclejdk8
|
6
7
|
rvm:
|
7
|
-
- jruby
|
8
|
+
- jruby-1.7.16
|
8
9
|
#- jruby-head
|
9
|
-
#- jruby-18mode
|
10
|
-
#- jruby-19mode
|
11
10
|
#- 2.1.2
|
12
11
|
before_install:
|
13
12
|
- ((jruby -v | grep 1.8.7) && jruby --1.9 -S gem update --system 2.1.11) || true
|
14
13
|
before_script:
|
15
14
|
#- echo \"JRUBY_OPTS: $JRUBY_OPTS\"
|
16
|
-
- export JRUBY_OPTS="--server -Xcext.enabled=false -Xcompile.invokedynamic=false"
|
15
|
+
- export JRUBY_OPTS="$JRUBY_OPTS --server -Xcext.enabled=false -Xcompile.invokedynamic=false"
|
17
16
|
- export JAVA_OPTS="$JAVA_OPTS" # -Xmx600M
|
18
17
|
script:
|
19
18
|
- bundle exec rake tomcat:jndi:download tomcat:jdbc:download tomcat:dbcp:download
|
20
|
-
- bundle exec rake c3p0:download
|
19
|
+
- bundle exec rake c3p0:download
|
20
|
+
- bundle exec rake hikari:download
|
21
|
+
- bundle exec rake dbcp:download
|
21
22
|
- bundle exec rake db:create:mysql db:create:postgresql
|
22
23
|
env:
|
23
|
-
- JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 4.1.
|
24
|
-
- JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=postgresql AR_VERSION="~> 4.1.
|
25
|
-
- JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=
|
26
|
-
- JRUBY_OPTS="
|
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"
|
26
|
+
- JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.0.1-java6"
|
27
|
+
- JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=postgresql AR_VERSION="~> 3.2.18" HIKARI_VERSION="1.4.0"
|
28
|
+
- JRUBY_OPTS="--1.8 $JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 3.2.18" HIKARI_VERSION="2.2.5-java6"
|
29
|
+
matrix:
|
30
|
+
#allow_failures:
|
31
|
+
#- rvm: jruby-head
|
32
|
+
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"
|
35
|
+
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"
|
38
|
+
jdk: oraclejdk8
|
39
|
+
- rvm: jruby-1.7.16
|
40
|
+
env: JRUBY_OPTS="$JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 4.1.9" HIKARI_VERSION="2.0.1-java6"
|
41
|
+
jdk: oraclejdk8
|
42
|
+
- rvm: jruby-1.7.16
|
43
|
+
env: JRUBY_OPTS="--1.8 $JRUBY_OPTS" AR_ADAPTER=mysql AR_VERSION="~> 3.2.18" HIKARI_VERSION="2.2.5-java6"
|
44
|
+
jdk: oraclejdk8
|
data/Gemfile
CHANGED
@@ -16,6 +16,11 @@ else
|
|
16
16
|
gem 'activerecord', :require => nil
|
17
17
|
end
|
18
18
|
|
19
|
+
if RUBY_VERSION.index('1.8') == 0
|
20
|
+
gem 'i18n', '< 0.7.0' # Gem::InstallError: i18n requires Ruby version >= 1.9.3
|
21
|
+
gem 'atomic', '1.1.16' # concurrent-ruby gem only for Ruby version >= 1.9.3
|
22
|
+
end
|
23
|
+
|
19
24
|
platform :jruby do
|
20
25
|
if version = ENV['AR_JDBC_VERSION']
|
21
26
|
if version.index('/') && ::File.exist?(version)
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -117,7 +117,7 @@ Only tested with ActiveRecord-JDBC-Adapter using the official Postgres' driver.
|
|
117
117
|
|
118
118
|
## Copyright
|
119
119
|
|
120
|
-
Copyright (c)
|
120
|
+
Copyright (c) 2015 [Karol Bucek](http://kares.org).
|
121
121
|
See LICENSE (http://en.wikipedia.org/wiki/MIT_License) for details.
|
122
122
|
|
123
123
|
[0]: http://res.cloudinary.com/kares/image/upload/c_scale,h_600,w_800/v1406451696/bogacs.jpg
|
data/Rakefile
CHANGED
@@ -94,7 +94,7 @@ namespace :tomcat do
|
|
94
94
|
|
95
95
|
tomcat_maven_repo = 'http://repo2.maven.org/maven2/org/apache/tomcat'
|
96
96
|
download_dir = File.expand_path('test/jars', File.dirname(__FILE__))
|
97
|
-
version_default = '7.0.
|
97
|
+
version_default = '7.0.59'
|
98
98
|
|
99
99
|
[ 'tomcat-jdbc', 'tomcat-dbcp' ].each do |tomcat_pool|
|
100
100
|
namespace tomcat_pool.sub('tomcat-', '') do # rake tomcat:dbcp:download
|
@@ -102,7 +102,8 @@ namespace :tomcat do
|
|
102
102
|
tomcat_pool_jar = "#{tomcat_pool}.jar"
|
103
103
|
|
104
104
|
task :download, :version do |_,args| # rake tomcat:jdbc:download[7.0.54]
|
105
|
-
|
105
|
+
env_key = "#{tomcat_pool.upcase.sub('-', '_')}_VERSION" # 'TOMCAT_JDBC_VERSION'
|
106
|
+
version = args[:version] || ENV[env_key] || version_default
|
106
107
|
|
107
108
|
uri = "#{tomcat_maven_repo}/#{tomcat_pool}/#{version}/#{tomcat_pool}-#{version}.jar"
|
108
109
|
|
@@ -173,24 +174,47 @@ namespace :tomcat do
|
|
173
174
|
|
174
175
|
end
|
175
176
|
|
177
|
+
namespace :dbcp do # a.k.a DBCP2
|
178
|
+
|
179
|
+
commons_repo = 'http://repo2.maven.org/maven2/org/apache/commons'
|
180
|
+
download_dir = File.expand_path('test/jars', File.dirname(__FILE__))
|
181
|
+
version_default = '2.0.1'
|
182
|
+
|
183
|
+
task :download, :version do |_,args| # rake dbcp:download
|
184
|
+
version = args[:version] || ENV['DBCP_VERSION'] || version_default
|
185
|
+
|
186
|
+
dbcp_jar = "commons-dbcp2-#{version}.jar"
|
187
|
+
|
188
|
+
uri = "#{commons_repo}/commons-dbcp2/#{version}/#{dbcp_jar}"
|
189
|
+
|
190
|
+
_download(uri, download_dir, dbcp_jar)
|
191
|
+
end
|
192
|
+
|
193
|
+
task :clear do
|
194
|
+
Dir.glob( File.join(download_dir, '{commons-dbcp2}*.jar') ).each { |jar| rm jar }
|
195
|
+
end
|
196
|
+
|
197
|
+
end
|
198
|
+
|
176
199
|
namespace :c3p0 do
|
177
200
|
|
178
201
|
mchange_base_repo = 'http://repo2.maven.org/maven2/com/mchange'
|
179
202
|
download_dir = File.expand_path('test/jars', File.dirname(__FILE__))
|
180
|
-
c3p0_version = '0.9.5
|
181
|
-
mchange_commons_version = '0.2.
|
203
|
+
c3p0_version = '0.9.5'
|
204
|
+
mchange_commons_version = '0.2.9'
|
182
205
|
|
183
|
-
c3p0_jar = "c3p0-#{c3p0_version}.jar"
|
184
206
|
mchange_commons_jar = "mchange-commons-java-#{mchange_commons_version}.jar"
|
185
207
|
|
186
208
|
task :download, :version do |_,args| # rake c3p0:download
|
187
|
-
|
209
|
+
version = args[:version] || ENV['C3P0_VERSION'] || c3p0_version
|
210
|
+
|
211
|
+
c3p0_jar = "c3p0-#{version}.jar"
|
188
212
|
|
189
213
|
uri = "#{mchange_base_repo}/mchange-commons-java/#{mchange_commons_version}/#{mchange_commons_jar}"
|
190
214
|
|
191
215
|
_download(uri, download_dir, mchange_commons_jar)
|
192
216
|
|
193
|
-
uri = "#{mchange_base_repo}/c3p0/#{
|
217
|
+
uri = "#{mchange_base_repo}/c3p0/#{version}/#{c3p0_jar}"
|
194
218
|
|
195
219
|
_download(uri, download_dir, c3p0_jar)
|
196
220
|
end
|
@@ -207,8 +231,8 @@ namespace :hikari do
|
|
207
231
|
slf4j_base_repo = 'http://repo2.maven.org/maven2/org/slf4j'
|
208
232
|
javassist_base_repo = 'http://repo2.maven.org/maven2/org/javassist'
|
209
233
|
download_dir = File.expand_path('test/jars', File.dirname(__FILE__))
|
210
|
-
hikari_version = '1.
|
211
|
-
slf4j_version = '1.7.
|
234
|
+
hikari_version = '1.4.0'
|
235
|
+
slf4j_version = '1.7.10'
|
212
236
|
javassist_version = '3.18.2-GA'
|
213
237
|
|
214
238
|
slf4j_api_jar = "slf4j-api-#{slf4j_version}.jar"
|
@@ -216,11 +240,17 @@ namespace :hikari do
|
|
216
240
|
javassist_jar = "javassist-#{javassist_version}.jar"
|
217
241
|
|
218
242
|
task :download, :version do |_,args| # rake c3p0:download
|
219
|
-
version = args[:version] || hikari_version
|
220
|
-
|
221
|
-
|
243
|
+
version = args[:version] || ENV['HIKARI_VERSION'] || hikari_version
|
244
|
+
|
245
|
+
version = version.dup
|
246
|
+
if version.sub!('-java6', '') # e.g. '2.3.2-java6'
|
247
|
+
hikari_jar = "HikariCP-java6-#{version}.jar"
|
248
|
+
uri = "#{hikari_base_repo}/HikariCP-java6/#{version}/#{hikari_jar}"
|
249
|
+
else
|
250
|
+
hikari_jar = "HikariCP-#{version}.jar"
|
251
|
+
uri = "#{hikari_base_repo}/HikariCP/#{version}/#{hikari_jar}"
|
252
|
+
end
|
222
253
|
|
223
|
-
uri = "#{hikari_base_repo}/HikariCP/#{version}/#{hikari_jar}"
|
224
254
|
_download(uri, download_dir, hikari_jar)
|
225
255
|
|
226
256
|
uri = "#{slf4j_base_repo}/slf4j-api/#{slf4j_version}/#{slf4j_api_jar}"
|
@@ -234,7 +264,7 @@ namespace :hikari do
|
|
234
264
|
end
|
235
265
|
|
236
266
|
task :clear do
|
237
|
-
Dir.glob( File.join(download_dir, '{HikariCP,slf4j}*.jar') ).each { |jar| rm jar }
|
267
|
+
Dir.glob( File.join(download_dir, '{HikariCP,slf4j,javassist}*.jar') ).each { |jar| rm jar }
|
238
268
|
end
|
239
269
|
|
240
270
|
end
|
data/activerecord-bogacs.gemspec
CHANGED
@@ -18,9 +18,9 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.test_files = gem.files.grep(%r{^test/})
|
19
19
|
gem.require_paths = ["lib"]
|
20
20
|
|
21
|
-
gem.add_runtime_dependency 'atomic', '~> 1.1'
|
22
21
|
gem.add_runtime_dependency 'thread_safe', '~> 0.3'
|
23
22
|
|
23
|
+
gem.add_development_dependency 'concurrent-ruby', '>= 0.8' if RUBY_VERSION.index('1.8') != 0
|
24
24
|
gem.add_development_dependency 'rake', '~> 10.3'
|
25
25
|
gem.add_development_dependency 'test-unit', '~> 2.5'
|
26
26
|
end
|
@@ -2,7 +2,16 @@ require 'active_record/connection_adapters/abstract/connection_pool'
|
|
2
2
|
|
3
3
|
require 'thread'
|
4
4
|
require 'thread_safe'
|
5
|
-
|
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
|
6
15
|
|
7
16
|
require 'active_record/bogacs/pool_support'
|
8
17
|
|
@@ -223,6 +232,12 @@ module ActiveRecord
|
|
223
232
|
least_shared # might be nil in that case we'll likely wait (as super)
|
224
233
|
end
|
225
234
|
|
235
|
+
if defined? Concurrent::Atomic
|
236
|
+
Atomic = Concurrent::Atomic
|
237
|
+
else
|
238
|
+
Atomic = ::Atomic
|
239
|
+
end
|
240
|
+
|
226
241
|
def add_shared_connection(connection)
|
227
242
|
@shared_connections[connection] = Atomic.new(1)
|
228
243
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
require File.expand_path('../../test_helper', File.dirname(__FILE__))
|
2
2
|
|
3
|
-
require 'atomic'
|
4
|
-
|
5
3
|
ActiveRecord::Bogacs::FalsePool.class_eval do
|
6
4
|
# ...
|
7
5
|
end
|
@@ -178,7 +176,7 @@ module ActiveRecord
|
|
178
176
|
(max_pool_size - 1).times { threads_ready.pop } # awaits
|
179
177
|
|
180
178
|
connection = t1_ready.pop
|
181
|
-
t1_jdbc_connection = connection
|
179
|
+
t1_jdbc_connection = unwrap_connection(connection)
|
182
180
|
|
183
181
|
# pool = ActiveRecord::Base.connection_pool
|
184
182
|
|
@@ -202,7 +200,7 @@ module ActiveRecord
|
|
202
200
|
|
203
201
|
if defined? JRUBY_VERSION
|
204
202
|
if connection2 = t2.join.value
|
205
|
-
assert_equal t1_jdbc_connection, connection2
|
203
|
+
assert_equal t1_jdbc_connection, unwrap_connection(connection2)
|
206
204
|
end
|
207
205
|
end
|
208
206
|
|
@@ -212,6 +210,12 @@ module ActiveRecord
|
|
212
210
|
threads && threads.each(&:join)
|
213
211
|
end
|
214
212
|
|
213
|
+
protected
|
214
|
+
|
215
|
+
def unwrap_connection(connection)
|
216
|
+
connection.jdbc_connection(true)
|
217
|
+
end
|
218
|
+
|
215
219
|
end
|
216
220
|
|
217
221
|
class ConnectionPoolWrappingTomcatJdbcDataSourceTest < TestBase
|
@@ -235,6 +239,62 @@ module ActiveRecord
|
|
235
239
|
|
236
240
|
end
|
237
241
|
|
242
|
+
class ConnectionPoolWrappingTomcatDbcpDataSourceTest < TestBase
|
243
|
+
include ConnectionPoolWrappingDataSourceTestMethods
|
244
|
+
|
245
|
+
def self.build_data_source(config)
|
246
|
+
build_tomcat_dbcp_data_source(config)
|
247
|
+
end
|
248
|
+
|
249
|
+
def self.jndi_name; 'jdbc/TestTomcatDbcpDB' end
|
250
|
+
|
251
|
+
def self.close_data_source
|
252
|
+
@@data_source.close if @@data_source
|
253
|
+
end
|
254
|
+
|
255
|
+
def max_pool_size; @@data_source.max_active end
|
256
|
+
|
257
|
+
def teardown
|
258
|
+
self.class.establish_jndi_connection # for next test
|
259
|
+
end
|
260
|
+
|
261
|
+
protected
|
262
|
+
|
263
|
+
def unwrap_connection(connection)
|
264
|
+
connection = connection.jdbc_connection(true)
|
265
|
+
connection.delegate
|
266
|
+
end
|
267
|
+
|
268
|
+
end
|
269
|
+
|
270
|
+
class ConnectionPoolWrappingDbcpDataSourceTest < TestBase
|
271
|
+
include ConnectionPoolWrappingDataSourceTestMethods
|
272
|
+
|
273
|
+
def self.build_data_source(config)
|
274
|
+
build_tomcat_dbcp_data_source(config)
|
275
|
+
end
|
276
|
+
|
277
|
+
def self.jndi_name; 'jdbc/TestTomcatDbcpDB' end
|
278
|
+
|
279
|
+
def self.close_data_source
|
280
|
+
@@data_source.close if @@data_source
|
281
|
+
end
|
282
|
+
|
283
|
+
def max_pool_size; @@data_source.max_active end
|
284
|
+
|
285
|
+
def teardown
|
286
|
+
self.class.establish_jndi_connection # for next test
|
287
|
+
end
|
288
|
+
|
289
|
+
protected
|
290
|
+
|
291
|
+
def unwrap_connection(connection)
|
292
|
+
connection = connection.jdbc_connection(true)
|
293
|
+
connection.delegate
|
294
|
+
end
|
295
|
+
|
296
|
+
end
|
297
|
+
|
238
298
|
class ConnectionPoolWrappingC3P0DataSourceTest < TestBase
|
239
299
|
include ConnectionPoolWrappingDataSourceTestMethods
|
240
300
|
|
data/test/test_helper.rb
CHANGED
@@ -110,6 +110,14 @@ end
|
|
110
110
|
module ActiveRecord
|
111
111
|
module Bogacs
|
112
112
|
|
113
|
+
begin
|
114
|
+
require 'concurrent/atomic'
|
115
|
+
Atomic = Concurrent::Atomic
|
116
|
+
rescue LoadError
|
117
|
+
require 'atomic'
|
118
|
+
Atomic = ::Atomic
|
119
|
+
end
|
120
|
+
|
113
121
|
module TestHelper
|
114
122
|
|
115
123
|
def _test_name
|
@@ -251,6 +259,28 @@ module ActiveRecord
|
|
251
259
|
data_source
|
252
260
|
end
|
253
261
|
|
262
|
+
def build_tomcat_dbcp_data_source(ar_jdbc_config = AR_CONFIG)
|
263
|
+
load 'test/jars/tomcat-dbcp.jar'
|
264
|
+
|
265
|
+
data_source = org.apache.tomcat.dbcp.dbcp.BasicDataSource.new
|
266
|
+
configure_dbcp_data_source(data_source, ar_jdbc_config)
|
267
|
+
|
268
|
+
data_source.setAccessToUnderlyingConnectionAllowed true
|
269
|
+
|
270
|
+
data_source
|
271
|
+
end
|
272
|
+
|
273
|
+
def build_commons_dbcp_data_source(ar_jdbc_config = AR_CONFIG)
|
274
|
+
load Dir.glob('test/jars/{commons-dbcp}*.jar').first
|
275
|
+
|
276
|
+
data_source = org.apache.tomcat.dbcp.dbcp.BasicDataSource.new
|
277
|
+
configure_dbcp_data_source(data_source, ar_jdbc_config)
|
278
|
+
|
279
|
+
data_source.setAccessToUnderlyingConnectionAllowed true
|
280
|
+
|
281
|
+
data_source
|
282
|
+
end
|
283
|
+
|
254
284
|
def configure_dbcp_data_source(data_source, ar_jdbc_config)
|
255
285
|
unless driver = ar_jdbc_config[:driver]
|
256
286
|
jdbc_driver_module.load_driver
|
@@ -261,10 +291,18 @@ module ActiveRecord
|
|
261
291
|
data_source.setUrl ar_jdbc_config[:url]
|
262
292
|
data_source.setUsername ar_jdbc_config[:username] if ar_jdbc_config[:username]
|
263
293
|
data_source.setPassword ar_jdbc_config[:password] if ar_jdbc_config[:password]
|
264
|
-
if ar_jdbc_config[:properties]
|
265
|
-
|
266
|
-
|
267
|
-
|
294
|
+
if properties = ar_jdbc_config[:properties]
|
295
|
+
if data_source.respond_to?(:setDbProperties) # TC-JDBC
|
296
|
+
db_properties = java.util.Properties.new
|
297
|
+
properties.each { |name, value| db_properties.put(name, value.to_s) }
|
298
|
+
data_source.setDbProperties db_properties
|
299
|
+
else # Tomcat-DBCP / Commons DBCP2
|
300
|
+
# format of the string must be: [propertyName=property;]
|
301
|
+
connection_properties = properties.inject('') do
|
302
|
+
|str, name, val| str << "[#{name}=#{val};]"; str
|
303
|
+
end
|
304
|
+
data_source.setConnectionProperties connection_properties
|
305
|
+
end
|
268
306
|
end
|
269
307
|
# JDBC pool tunings (some mapped from AR configuration) :
|
270
308
|
if ar_jdbc_config[:pool] # default is 100
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-bogacs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.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:
|
11
|
+
date: 2015-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: thread_safe
|
15
15
|
version_requirements: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0.3'
|
20
20
|
requirement: !ruby/object:Gem::Requirement
|
21
21
|
requirements:
|
22
22
|
- - ~>
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version: '
|
24
|
+
version: '0.3'
|
25
25
|
prerelease: false
|
26
26
|
type: :runtime
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: concurrent-ruby
|
29
29
|
version_requirements: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.8'
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
35
35
|
requirements:
|
36
|
-
- -
|
36
|
+
- - '>='
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version: '0.
|
38
|
+
version: '0.8'
|
39
39
|
prerelease: false
|
40
|
-
type: :
|
40
|
+
type: :development
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
115
|
version: '0'
|
116
116
|
requirements: []
|
117
117
|
rubyforge_project:
|
118
|
-
rubygems_version: 2.
|
118
|
+
rubygems_version: 2.4.5
|
119
119
|
signing_key:
|
120
120
|
specification_version: 4
|
121
121
|
summary: A small body of still water, usually fresh ... for ActiveRecord!
|