memory_test_fix 1.0.0 → 1.1.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 +4 -4
- data/README.md +29 -9
- data/lib/memory_test_fix/railtie.rb +7 -0
- data/lib/memory_test_fix/schema_loader.rb +58 -0
- data/lib/memory_test_fix.rb +9 -46
- data/memory_test_fix.gemspec +5 -4
- metadata +24 -10
- data/init.rb +0 -1
- data/rails/init.rb +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b763773a933d7ce0b6b2eebdeafb5189177c7b87
|
4
|
+
data.tar.gz: 0f1b84af28dad943655f40bce6590ef68505af8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f129b1ac898e04657445684d28e4a541146ac06b7f5c16ff60919cc71ba406a67c3fdf9e1c1bd62906491feadc493d76b108e2e4c2888f2cdaa8dc20d4ff2af
|
7
|
+
data.tar.gz: 08948451d5f1a6bdbedb825178812c374c11dbc0c802034490017bab1479f4d630541fca9b7397d729f896bafb79c01e45aa82e1827be9e61c524e7e536c0827
|
data/README.md
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
A simple fix to run your Rails tests with sqlite. From the
|
4
4
|
[example by Chris Roos](http://blog.seagul.co.uk/articles/2006/02/08/in-memory-sqlite-database-for-rails-testing).
|
5
5
|
|
6
|
+
## Status
|
7
|
+
|
8
|
+
[](https://gemnasium.com/mvz/memory_test_fix)
|
9
|
+
[](https://travis-ci.org/mvz/memory_test_fix)
|
10
|
+
[](https://codeclimate.com/github/mvz/memory_test_fix)
|
11
|
+
|
6
12
|
## Usage
|
7
13
|
|
8
14
|
Add the gem to your bundle by adding
|
@@ -27,6 +33,15 @@ You can also adjust the verbosity of the output:
|
|
27
33
|
database: ":memory:"
|
28
34
|
verbosity: silent
|
29
35
|
|
36
|
+
To use rails migrations instead of loading `db/schema.rb`
|
37
|
+
|
38
|
+
```yaml
|
39
|
+
test:
|
40
|
+
adapter: sqlite3
|
41
|
+
database: ":memory:"
|
42
|
+
migrate: true
|
43
|
+
```
|
44
|
+
|
30
45
|
You can also use this with other (testing) environments, not just 'test'.
|
31
46
|
|
32
47
|
## Rails Versions
|
@@ -37,14 +52,19 @@ version 0.1.3.
|
|
37
52
|
|
38
53
|
## Authors
|
39
54
|
|
40
|
-
|
55
|
+
The [original
|
56
|
+
hack](http://chrisroos.co.uk/blog/2006-02-08-in-memory-sqlite-database-for-rails-testing)
|
57
|
+
this gem is based on was created by Chris Roos.
|
58
|
+
|
59
|
+
The hack was adapted as a Rails plugin by [Geoffrey
|
60
|
+
Grosenbach](http://nubyonrails.com).
|
41
61
|
|
42
|
-
The following people have contributed
|
62
|
+
The following people have contributed:
|
43
63
|
|
44
|
-
*
|
45
|
-
*
|
46
|
-
*
|
47
|
-
*
|
48
|
-
*
|
49
|
-
|
50
|
-
|
64
|
+
* Kakutani Shintaro
|
65
|
+
* Matijs van Zuijlen
|
66
|
+
* Erik Hanson & Matt Scilipoti
|
67
|
+
* Greg Weber
|
68
|
+
* Stephan Zalewski
|
69
|
+
|
70
|
+
MemoryTestFix is maintained by [Matijs van Zuijlen](http://www.matijs.net/)
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module MemoryTestFix
|
2
|
+
module SchemaLoader
|
3
|
+
def self.in_memory_database?
|
4
|
+
in_memory? && sqlite3?
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.in_memory?
|
8
|
+
configuration[:database] == ':memory:' || configuration[:dbfile] == ':memory:'
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.sqlite3?
|
12
|
+
configuration[:adapter] == 'sqlite3'
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.configuration
|
16
|
+
Rails.configuration.database_configuration[Rails.env].with_indifferent_access
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.verbosity
|
20
|
+
configuration[:verbosity]
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.migrate
|
24
|
+
configuration[:migrate] == true
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.inform_using_in_memory
|
28
|
+
puts "Creating sqlite :memory: database"
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.load_schema
|
32
|
+
if migrate
|
33
|
+
lambda {
|
34
|
+
ActiveRecord::Migrator.up('db/migrate') # use migrations
|
35
|
+
}
|
36
|
+
else
|
37
|
+
lambda {
|
38
|
+
load "#{Rails.root}/db/schema.rb" # use db agnostic schema by default
|
39
|
+
}
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.init_schema
|
44
|
+
if in_memory_database?
|
45
|
+
case verbosity
|
46
|
+
when "silent"
|
47
|
+
silence_stream(STDOUT, &load_schema)
|
48
|
+
when "quiet"
|
49
|
+
inform_using_in_memory
|
50
|
+
silence_stream(STDOUT, &load_schema)
|
51
|
+
else
|
52
|
+
inform_using_in_memory
|
53
|
+
load_schema.call
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/lib/memory_test_fix.rb
CHANGED
@@ -1,52 +1,15 @@
|
|
1
|
-
|
2
|
-
def self.in_memory_database?
|
3
|
-
in_memory? && sqlite3?
|
4
|
-
end
|
5
|
-
|
6
|
-
def self.in_memory?
|
7
|
-
configuration[:database] == ':memory:' || configuration[:dbfile] == ':memory:'
|
8
|
-
end
|
1
|
+
require 'memory_test_fix/schema_loader'
|
9
2
|
|
10
|
-
|
11
|
-
|
12
|
-
end
|
3
|
+
if defined?(Rails)
|
4
|
+
require 'memory_test_fix/railtie.rb'
|
13
5
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
def self.inform_using_in_memory
|
23
|
-
puts "Creating sqlite :memory: database"
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.init_schema
|
27
|
-
if in_memory_database?
|
28
|
-
load_schema = lambda {
|
29
|
-
load "#{Rails.root}/db/schema.rb" # use db agnostic schema by default
|
30
|
-
# ActiveRecord::Migrator.up('db/migrate') # use migrations
|
31
|
-
}
|
32
|
-
case verbosity
|
33
|
-
when "silent"
|
34
|
-
silence_stream(STDOUT, &load_schema)
|
35
|
-
when "quiet"
|
36
|
-
inform_using_in_memory
|
37
|
-
silence_stream(STDOUT, &load_schema)
|
38
|
-
else
|
39
|
-
inform_using_in_memory
|
40
|
-
load_schema.call
|
6
|
+
if Rails.version =~ /^4\.0\./
|
7
|
+
ActiveRecord::Base.class_eval do
|
8
|
+
def self.establish_connection(*_)
|
9
|
+
super.tap do
|
10
|
+
MemoryTestFix::SchemaLoader.init_schema
|
11
|
+
end
|
41
12
|
end
|
42
13
|
end
|
43
14
|
end
|
44
15
|
end
|
45
|
-
|
46
|
-
if ActiveSupport.respond_to? :on_load
|
47
|
-
ActiveSupport.on_load(:after_initialize) do
|
48
|
-
MemoryTestFix.init_schema
|
49
|
-
end
|
50
|
-
else
|
51
|
-
MemoryTestFix.init_schema
|
52
|
-
end
|
data/memory_test_fix.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "memory_test_fix"
|
3
|
-
s.version = "1.
|
3
|
+
s.version = "1.1.0"
|
4
4
|
|
5
5
|
if s.respond_to? :required_rubygems_version=
|
6
6
|
s.required_rubygems_version = Gem::Requirement.new(">= 0")
|
@@ -22,15 +22,16 @@ Gem::Specification.new do |s|
|
|
22
22
|
|
23
23
|
s.homepage = "http://wiki.github.com/mvz/memory_test_fix"
|
24
24
|
s.require_paths = ["lib"]
|
25
|
-
s.files = ["
|
26
|
-
"
|
27
|
-
"lib/memory_test_fix.rb",
|
25
|
+
s.files = ["lib/memory_test_fix.rb",
|
26
|
+
"lib/memory_test_fix/railtie.rb",
|
27
|
+
"lib/memory_test_fix/schema_loader.rb",
|
28
28
|
"README.md",
|
29
29
|
"memory_test_fix.gemspec"]
|
30
30
|
s.has_rdoc = true
|
31
31
|
s.extra_rdoc_files = ['README.md']
|
32
32
|
s.rubygems_version = %q{1.2.0}
|
33
33
|
|
34
|
+
s.add_runtime_dependency('railties', '>= 3.0.0')
|
34
35
|
s.add_development_dependency('rake', '~> 10.2')
|
35
36
|
s.add_development_dependency('minitest', '~> 5.2')
|
36
37
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memory_test_fix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matijs van Zuijlen
|
@@ -14,34 +14,48 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2014-
|
17
|
+
date: 2014-08-30 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
|
+
- !ruby/object:Gem::Dependency
|
20
|
+
name: railties
|
21
|
+
requirement: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: 3.0.0
|
26
|
+
type: :runtime
|
27
|
+
prerelease: false
|
28
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.0.0
|
19
33
|
- !ruby/object:Gem::Dependency
|
20
34
|
name: rake
|
21
35
|
requirement: !ruby/object:Gem::Requirement
|
22
36
|
requirements:
|
23
|
-
- - ~>
|
37
|
+
- - "~>"
|
24
38
|
- !ruby/object:Gem::Version
|
25
39
|
version: '10.2'
|
26
40
|
type: :development
|
27
41
|
prerelease: false
|
28
42
|
version_requirements: !ruby/object:Gem::Requirement
|
29
43
|
requirements:
|
30
|
-
- - ~>
|
44
|
+
- - "~>"
|
31
45
|
- !ruby/object:Gem::Version
|
32
46
|
version: '10.2'
|
33
47
|
- !ruby/object:Gem::Dependency
|
34
48
|
name: minitest
|
35
49
|
requirement: !ruby/object:Gem::Requirement
|
36
50
|
requirements:
|
37
|
-
- - ~>
|
51
|
+
- - "~>"
|
38
52
|
- !ruby/object:Gem::Version
|
39
53
|
version: '5.2'
|
40
54
|
type: :development
|
41
55
|
prerelease: false
|
42
56
|
version_requirements: !ruby/object:Gem::Requirement
|
43
57
|
requirements:
|
44
|
-
- - ~>
|
58
|
+
- - "~>"
|
45
59
|
- !ruby/object:Gem::Version
|
46
60
|
version: '5.2'
|
47
61
|
description: Makes use of SQLite3 in-memory database possible for your Rails tests
|
@@ -53,10 +67,10 @@ extra_rdoc_files:
|
|
53
67
|
- README.md
|
54
68
|
files:
|
55
69
|
- README.md
|
56
|
-
- init.rb
|
57
70
|
- lib/memory_test_fix.rb
|
71
|
+
- lib/memory_test_fix/railtie.rb
|
72
|
+
- lib/memory_test_fix/schema_loader.rb
|
58
73
|
- memory_test_fix.gemspec
|
59
|
-
- rails/init.rb
|
60
74
|
homepage: http://wiki.github.com/mvz/memory_test_fix
|
61
75
|
licenses:
|
62
76
|
- MIT
|
@@ -67,12 +81,12 @@ require_paths:
|
|
67
81
|
- lib
|
68
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
69
83
|
requirements:
|
70
|
-
- -
|
84
|
+
- - ">="
|
71
85
|
- !ruby/object:Gem::Version
|
72
86
|
version: '0'
|
73
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
88
|
requirements:
|
75
|
-
- -
|
89
|
+
- - ">="
|
76
90
|
- !ruby/object:Gem::Version
|
77
91
|
version: '0'
|
78
92
|
requirements: []
|
data/init.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/rails/init"
|
data/rails/init.rb
DELETED