memory_test_fix 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,55 @@
1
+ # MemoryTestFix
2
+
3
+ A simple fix to run your Rails tests with sqlite. From the
4
+ [example by Chris Roos](http://blog.seagul.co.uk/articles/2006/02/08/in-memory-sqlite-database-for-rails-testing).
5
+
6
+ ## Usage
7
+
8
+ Add the gem to your bundle by adding
9
+
10
+ ```ruby
11
+ gem 'memory_test_fix'
12
+ ```
13
+
14
+ to your `Gemfile`
15
+
16
+
17
+ In your database.yml, use:
18
+
19
+ ```yaml
20
+ test:
21
+ adapter: sqlite3
22
+ database: ":memory:"
23
+ ```
24
+
25
+ It runs much faster!
26
+
27
+ You can also adjust the verbosity of the output:
28
+
29
+ ```yaml
30
+ test:
31
+ adapter: sqlite3
32
+ database: ":memory:"
33
+ verbosity: silent
34
+ ```
35
+
36
+ You can also use this with other (testing) environments, not just 'test'.
37
+
38
+ ## Rails Versions
39
+
40
+ This gem is compatible with Rails 3 and Rails 2.3. If you're using an
41
+ older version of Rails, use the 0.1.x version of this gem.
42
+
43
+ ## Authors
44
+
45
+ MemoryTestFix is maintained by [Matijs van Zuijlen](http://www.matijs.net/)
46
+
47
+ The following people have contributed to this gem:
48
+
49
+ * [Original hack](http://chrisroos.co.uk/blog/2006-02-08-in-memory-sqlite-database-for-rails-testing) by Chris Roos
50
+ * Adapted by [Geoffrey Grosenbach](http://nubyonrails.com)
51
+ * Verbosity patch by Kakutani Shintaro
52
+ * Adapted as GemPlugin by Matijs van Zuijlen
53
+ * Support for environments besides 'test' by Erik Hanson & Matt Scilipoti
54
+ * Support for Rails 3 by Greg Weber
55
+ * Fix for Rails 3.2 by Stephan Zalewski
@@ -1,19 +1,22 @@
1
1
  module MemoryTestFix
2
2
  def self.in_memory_database?
3
- if (configuration['database'] == ':memory:' or configuration['dbfile'] == ':memory:')
4
- if ActiveRecord::Base.connection.class == ActiveRecord::ConnectionAdapters::SQLite3Adapter
5
- return true
6
- end
7
- end
8
- false
3
+ in_memory? && sqlite3?
4
+ end
5
+
6
+ def self.in_memory?
7
+ configuration[:database] == ':memory:' || configuration[:dbfile] == ':memory:'
8
+ end
9
+
10
+ def self.sqlite3?
11
+ configuration[:adapter] == 'sqlite3'
9
12
  end
10
13
 
11
14
  def self.configuration
12
- Rails.configuration.database_configuration[Rails.env]
15
+ Rails.configuration.database_configuration[Rails.env].with_indifferent_access
13
16
  end
14
17
 
15
18
  def self.verbosity
16
- configuration['verbosity']
19
+ configuration[:verbosity]
17
20
  end
18
21
 
19
22
  def self.inform_using_in_memory
@@ -23,23 +26,27 @@ module MemoryTestFix
23
26
  def self.init_schema
24
27
  if in_memory_database?
25
28
  load_schema = lambda {
26
- load "#{Rails.root}/db/schema.rb" # use db agnostic schema by default
27
- # ActiveRecord::Migrator.up('db/migrate') # use migrations
29
+ load "#{Rails.root}/db/schema.rb" # use db agnostic schema by default
30
+ # ActiveRecord::Migrator.up('db/migrate') # use migrations
28
31
  }
29
32
  case verbosity
30
33
  when "silent"
31
- silence_stream(STDOUT, &load_schema)
34
+ silence_stream(STDOUT, &load_schema)
32
35
  when "quiet"
33
- inform_using_in_memory
34
- silence_stream(STDOUT, &load_schema)
36
+ inform_using_in_memory
37
+ silence_stream(STDOUT, &load_schema)
35
38
  else
36
- inform_using_in_memory
37
- load_schema.call
39
+ inform_using_in_memory
40
+ load_schema.call
38
41
  end
39
42
  end
40
43
  end
41
44
  end
42
45
 
43
- ActiveSupport.on_load(:before_initialize) do
46
+ if ActiveSupport.respond_to? :on_load
47
+ ActiveSupport.on_load(:after_initialize) do
48
+ MemoryTestFix.init_schema
49
+ end
50
+ else
44
51
  MemoryTestFix.init_schema
45
52
  end
@@ -1,16 +1,31 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "memory_test_fix"
3
- s.version = "0.2.0"
3
+ s.version = "0.2.2"
4
4
 
5
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
- s.authors = ["Chris Roos", "Geoffrey Grosenbach", "Kakutani Shintaro",
7
- "Erik Hanson and Matt Scilipoti", "Matijs van Zuijlen", "Greg Weber"]
5
+ if s.respond_to? :required_rubygems_version=
6
+ s.required_rubygems_version = Gem::Requirement.new(">= 0")
7
+ end
8
+
9
+ s.authors = [ "Matijs van Zuijlen",
10
+ "Chris Roos",
11
+ "Geoffrey Grosenbach",
12
+ "Kakutani Shintaro",
13
+ "Erik Hanson and Matt Scilipoti",
14
+ "Greg Weber",
15
+ "Stephan Zalewski" ]
8
16
  s.email = "matijs@matijs.net"
9
- s.summary = "Makes SQLite3 memory tests possible by preloading the schema."
17
+
18
+ s.summary = "Use SQLite3 in-memory database for Rails tests."
19
+ s.description = "Makes use of SQLite3 in-memory database possible for your Rails tests by preloading the schema."
20
+
10
21
  s.homepage = "http://wiki.github.com/mvz/memory_test_fix"
11
22
  s.require_paths = ["lib"]
12
- s.files = ["init.rb", "rails/init.rb", "lib/memory_test_fix.rb", "README", "memory_test_fix.gemspec"]
23
+ s.files = ["init.rb",
24
+ "rails/init.rb",
25
+ "lib/memory_test_fix.rb",
26
+ "README.md",
27
+ "memory_test_fix.gemspec"]
13
28
  s.has_rdoc = true
14
- s.extra_rdoc_files = ['README']
29
+ s.extra_rdoc_files = ['README.md']
15
30
  s.rubygems_version = %q{1.2.0}
16
31
  end
metadata CHANGED
@@ -1,76 +1,58 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: memory_test_fix
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 0
10
- version: 0.2.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.2
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
8
+ - Matijs van Zuijlen
13
9
  - Chris Roos
14
10
  - Geoffrey Grosenbach
15
11
  - Kakutani Shintaro
16
12
  - Erik Hanson and Matt Scilipoti
17
- - Matijs van Zuijlen
18
13
  - Greg Weber
14
+ - Stephan Zalewski
19
15
  autorequire:
20
16
  bindir: bin
21
17
  cert_chain: []
22
-
23
- date: 2011-01-06 00:00:00 +01:00
24
- default_executable:
18
+ date: 2013-02-02 00:00:00.000000000 Z
25
19
  dependencies: []
26
-
27
- description:
20
+ description: Makes use of SQLite3 in-memory database possible for your Rails tests
21
+ by preloading the schema.
28
22
  email: matijs@matijs.net
29
23
  executables: []
30
-
31
24
  extensions: []
32
-
33
- extra_rdoc_files:
34
- - README
35
- files:
25
+ extra_rdoc_files:
26
+ - README.md
27
+ files:
36
28
  - init.rb
37
29
  - rails/init.rb
38
30
  - lib/memory_test_fix.rb
39
- - README
31
+ - README.md
40
32
  - memory_test_fix.gemspec
41
- has_rdoc: true
42
33
  homepage: http://wiki.github.com/mvz/memory_test_fix
43
34
  licenses: []
44
-
45
35
  post_install_message:
46
36
  rdoc_options: []
47
-
48
- require_paths:
37
+ require_paths:
49
38
  - lib
50
- required_ruby_version: !ruby/object:Gem::Requirement
39
+ required_ruby_version: !ruby/object:Gem::Requirement
51
40
  none: false
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- hash: 3
56
- segments:
57
- - 0
58
- version: "0"
59
- required_rubygems_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
46
  none: false
61
- requirements:
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- hash: 3
65
- segments:
66
- - 0
67
- version: "0"
47
+ requirements:
48
+ - - ! '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
68
51
  requirements: []
69
-
70
52
  rubyforge_project:
71
- rubygems_version: 1.3.7
53
+ rubygems_version: 1.8.23
72
54
  signing_key:
73
55
  specification_version: 3
74
- summary: Makes SQLite3 memory tests possible by preloading the schema.
56
+ summary: Use SQLite3 in-memory database for Rails tests.
75
57
  test_files: []
76
-
58
+ has_rdoc: true
data/README DELETED
@@ -1,51 +0,0 @@
1
- MemoryTestFix
2
- =============
3
-
4
- A simple fix to run your Rails tests with sqlite. From the example at
5
-
6
- http://blog.seagul.co.uk/articles/2006/02/08/in-memory-sqlite-database-for-rails-testing
7
-
8
- Install the gem:
9
-
10
- gem install memory_test_fix
11
-
12
- In your config/environments.rb, use:
13
-
14
- config.gem 'memory_test_fix'
15
-
16
- In your database.yml, use:
17
-
18
- test:
19
- adapter: sqlite3
20
- database: ":memory:"
21
-
22
- It runs much faster!
23
-
24
- You can also adjust the verbosity of the output:
25
-
26
- test:
27
- adapter: sqlite3
28
- database: ":memory:"
29
- verbosity: silent
30
-
31
- You can also use this with other (testing) environments, not just 'test'.
32
-
33
- == Rails Versions
34
-
35
- Due to incompatibilities in the loading of gem plugins by Rails, this gem
36
- only works with Rails 3 starting from version 0.2.0. If you're using an
37
- older version of Rails, use the 0.1.x version of this gem.
38
-
39
- == Authors
40
-
41
- Chris Roos
42
-
43
- Adapted by Geoffrey Grosenbach, http://nubyonrails.com
44
-
45
- Verbosity patch by Kakutani Shintaro
46
-
47
- Adapted as GemPlugin by Matijs van Zuijlen
48
-
49
- Support for environments besides 'test' by Erik Hanson & Matt Scilipoti
50
-
51
- Support for Rails 3 by Greg Weber