database_cleaner 1.99.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/lib/database_cleaner.rb +1 -47
  3. metadata +12 -482
  4. data/CONTRIBUTE.markdown +0 -27
  5. data/Gemfile.lock +0 -324
  6. data/History.rdoc +0 -514
  7. data/LICENSE +0 -20
  8. data/README.markdown +0 -389
  9. data/Rakefile +0 -44
  10. data/TODO +0 -3
  11. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/base.rb +0 -101
  12. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/deletion.rb +0 -108
  13. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/transaction.rb +0 -59
  14. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/truncation.rb +0 -288
  15. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/version.rb +0 -5
  16. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record.rb +0 -6
  17. data/adapters/database_cleaner-active_record/lib/database_cleaner-active_record.rb +0 -1
  18. data/adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato/base.rb +0 -7
  19. data/adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato/truncation.rb +0 -28
  20. data/adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato/version.rb +0 -5
  21. data/adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato.rb +0 -13
  22. data/adapters/database_cleaner-couch_potato/lib/database_cleaner-couch_potato.rb +0 -1
  23. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/base.rb +0 -25
  24. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/transaction.rb +0 -28
  25. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/truncation.rb +0 -173
  26. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/version.rb +0 -5
  27. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper.rb +0 -6
  28. data/adapters/database_cleaner-data_mapper/lib/database_cleaner-data_mapper.rb +0 -1
  29. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/base.rb +0 -16
  30. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/deletion.rb +0 -8
  31. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/truncation.rb +0 -74
  32. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/truncation_mixin.rb +0 -26
  33. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/version.rb +0 -5
  34. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo.rb +0 -11
  35. data/adapters/database_cleaner-mongo/lib/database_cleaner-mongo.rb +0 -1
  36. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/base.rb +0 -24
  37. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/truncation.rb +0 -35
  38. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/version.rb +0 -5
  39. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper.rb +0 -5
  40. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner-mongo_mapper.rb +0 -1
  41. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/base.rb +0 -20
  42. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/deletion.rb +0 -10
  43. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongo1_truncation_mixin.rb +0 -26
  44. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongo2_truncation_mixin.rb +0 -38
  45. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongoid_truncation_mixin.rb +0 -65
  46. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/truncation.rb +0 -49
  47. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/version.rb +0 -5
  48. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid.rb +0 -11
  49. data/adapters/database_cleaner-mongoid/lib/database_cleaner-mongoid.rb +0 -1
  50. data/adapters/database_cleaner-moped/lib/database_cleaner/moped/base.rb +0 -39
  51. data/adapters/database_cleaner-moped/lib/database_cleaner/moped/truncation.rb +0 -9
  52. data/adapters/database_cleaner-moped/lib/database_cleaner/moped/truncation_base.rb +0 -44
  53. data/adapters/database_cleaner-moped/lib/database_cleaner/moped/version.rb +0 -5
  54. data/adapters/database_cleaner-moped/lib/database_cleaner/moped.rb +0 -12
  55. data/adapters/database_cleaner-moped/lib/database_cleaner-moped.rb +0 -1
  56. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/base.rb +0 -66
  57. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/deletion.rb +0 -16
  58. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/transaction.rb +0 -35
  59. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/truncation.rb +0 -9
  60. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/version.rb +0 -5
  61. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j.rb +0 -7
  62. data/adapters/database_cleaner-neo4j/lib/database_cleaner-neo4j.rb +0 -1
  63. data/adapters/database_cleaner-ohm/lib/database_cleaner/ohm/truncation.rb +0 -24
  64. data/adapters/database_cleaner-ohm/lib/database_cleaner/ohm/version.rb +0 -5
  65. data/adapters/database_cleaner-ohm/lib/database_cleaner/ohm.rb +0 -12
  66. data/adapters/database_cleaner-ohm/lib/database_cleaner-ohm.rb +0 -1
  67. data/adapters/database_cleaner-redis/lib/database_cleaner/redis/base.rb +0 -45
  68. data/adapters/database_cleaner-redis/lib/database_cleaner/redis/deletion.rb +0 -9
  69. data/adapters/database_cleaner-redis/lib/database_cleaner/redis/truncation.rb +0 -26
  70. data/adapters/database_cleaner-redis/lib/database_cleaner/redis/version.rb +0 -5
  71. data/adapters/database_cleaner-redis/lib/database_cleaner/redis.rb +0 -5
  72. data/adapters/database_cleaner-redis/lib/database_cleaner-redis.rb +0 -1
  73. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/base.rb +0 -26
  74. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/deletion.rb +0 -47
  75. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/transaction.rb +0 -40
  76. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/truncation.rb +0 -79
  77. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/version.rb +0 -5
  78. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel.rb +0 -6
  79. data/adapters/database_cleaner-sequel/lib/database_cleaner-sequel.rb +0 -1
  80. data/cucumber.yml +0 -1
  81. data/lib/database_cleaner/base.rb +0 -169
  82. data/lib/database_cleaner/configuration.rb +0 -136
  83. data/lib/database_cleaner/cucumber.rb +0 -3
  84. data/lib/database_cleaner/deprecation.rb +0 -26
  85. data/lib/database_cleaner/generic/base.rb +0 -29
  86. data/lib/database_cleaner/generic/transaction.rb +0 -11
  87. data/lib/database_cleaner/generic/truncation.rb +0 -40
  88. data/lib/database_cleaner/null_strategy.rb +0 -20
  89. data/lib/database_cleaner/orm_autodetector.rb +0 -41
  90. data/lib/database_cleaner/safeguard.rb +0 -107
  91. data/lib/database_cleaner/spec/database_helper.rb +0 -82
  92. data/lib/database_cleaner/spec/shared_examples.rb +0 -15
  93. data/lib/database_cleaner/spec.rb +0 -2
  94. data/lib/database_cleaner/version.rb +0 -3
@@ -1,136 +0,0 @@
1
- require 'database_cleaner/base'
2
- require 'database_cleaner/deprecation'
3
- require 'forwardable'
4
-
5
- module DatabaseCleaner
6
-
7
- class NoORMDetected < StandardError; end
8
- class UnknownStrategySpecified < ArgumentError; end
9
-
10
- class Cleaners < Hash
11
- # FIXME this method conflates creation with lookup... both a command and a query. yuck.
12
- def [](orm, opts = {})
13
- raise NoORMDetected unless orm
14
- fetch([orm, opts]) { add_cleaner(orm, opts) }
15
- end
16
-
17
- def strategy=(strategy)
18
- add_cleaner(:autodetect) if none?
19
- values.each { |cleaner| cleaner.strategy = strategy }
20
- remove_duplicates
21
- end
22
-
23
- def orm=(orm)
24
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.orm=` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
25
- add_cleaner(:autodetect) if none?
26
- values.each { |cleaner| cleaner.orm = orm }
27
- remove_duplicates
28
- end
29
-
30
- # TODO privatize the following methods in 2.0
31
-
32
- def add_cleaner(orm, opts = {})
33
- self[[orm, opts]] = ::DatabaseCleaner::Base.new(orm, opts)
34
- end
35
-
36
- def remove_duplicates
37
- replace(reduce(Cleaners.new) do |cleaners, (key, value)|
38
- cleaners[key] = value unless cleaners.values.include?(value)
39
- cleaners
40
- end)
41
- end
42
- end
43
-
44
- class Configuration
45
- def initialize
46
- @cleaners ||= Cleaners.new
47
- end
48
-
49
- extend Forwardable
50
- delegate [
51
- :[],
52
- :strategy=,
53
- :orm=,
54
- ] => :cleaners
55
-
56
- attr_accessor :cleaners
57
-
58
- def app_root
59
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.app_root` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner::ActiveRecord.config_file_location`, instead."
60
- @app_root ||= Dir.pwd
61
- end
62
-
63
- def app_root= value
64
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.app_root=` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner::ActiveRecord.config_file_location=`, instead."
65
- @app_root = value
66
- end
67
-
68
- def logger
69
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.logger` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
70
- @logger ||= Logger.new(STDOUT).tap { |l| l.level = Logger::ERROR }
71
- end
72
-
73
- def logger= value
74
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.logger=` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
75
- @logger = value
76
- end
77
-
78
- def start
79
- connections.each { |connection| connection.start }
80
- end
81
-
82
- def clean
83
- connections.each { |connection| connection.clean }
84
- end
85
-
86
- def cleaning(&inner_block)
87
- connections.inject(inner_block) do |curr_block, connection|
88
- proc { connection.cleaning(&curr_block) }
89
- end.call
90
- end
91
-
92
- def clean_with(*args)
93
- connections.each { |connection| connection.clean_with(*args) }
94
- end
95
-
96
- # TODO remove the following methods in 2.0
97
-
98
- def clean!
99
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.clean!` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.clean`, instead."
100
- clean
101
- end
102
-
103
- def clean_with!(*args)
104
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.clean_with!` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.clean_with`, instead."
105
- clean_with(*args)
106
- end
107
-
108
- def init_cleaners
109
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.init_cleaners` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
110
- end
111
-
112
- def connections
113
- if DatabaseCleaner.called_externally?(__FILE__, caller)
114
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.connections` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.cleaners.values`, instead."
115
- end
116
- add_cleaner(:autodetect) if @cleaners.none?
117
- @cleaners.values
118
- end
119
-
120
- # TODO privatize the following methods in 2.0
121
-
122
- def add_cleaner(orm, opts = {})
123
- if DatabaseCleaner.called_externally?(__FILE__, caller)
124
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.add_cleaner` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.[]`, instead."
125
- end
126
- @cleaners.add_cleaner(orm, opts = {})
127
- end
128
-
129
- def remove_duplicates
130
- if DatabaseCleaner.called_externally?(__FILE__, caller)
131
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.remove_duplicates` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
132
- end
133
- @cleaners.remove_duplicates
134
- end
135
- end
136
- end
@@ -1,3 +0,0 @@
1
- Around do |scenario, block|
2
- DatabaseCleaner.cleaning(&block)
3
- end
@@ -1,26 +0,0 @@
1
- module DatabaseCleaner
2
- def deprecate message
3
- method = caller.first[/\d+:in `(.*)'$/, 1].to_sym
4
- @@deprecator ||= Deprecator.new
5
- @@deprecator.deprecate method, message
6
- end
7
- module_function :deprecate
8
-
9
- def called_externally?(file, caller)
10
- file != caller.first[/^(.+\.rb):\d+/, 1]
11
- end
12
- module_function :called_externally?
13
-
14
- class Deprecator
15
- def initialize
16
- @methods_already_warned = {}
17
- end
18
-
19
- def deprecate method, message
20
- return if @methods_already_warned.key?(method)
21
- $stderr.puts message
22
- @methods_already_warned[method] = true
23
- end
24
- end
25
- end
26
-
@@ -1,29 +0,0 @@
1
- module ::DatabaseCleaner
2
- module Generic
3
- module Base
4
-
5
- def self.included(base)
6
- base.extend(ClassMethods)
7
- end
8
-
9
- def db
10
- :default
11
- end
12
-
13
- def cleaning(&block)
14
- begin
15
- start
16
- yield
17
- ensure
18
- clean
19
- end
20
- end
21
-
22
- module ClassMethods
23
- def available_strategies
24
- %W[]
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,11 +0,0 @@
1
- module DatabaseCleaner
2
- module Generic
3
- module Transaction
4
- def initialize(opts = {})
5
- if !opts.empty?
6
- raise ArgumentError, "Options are not available for transaction strategies."
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,40 +0,0 @@
1
- module DatabaseCleaner
2
- module Generic
3
- module Truncation
4
- def initialize(opts={})
5
- if !opts.empty? && !(opts.keys - [:only, :except, :pre_count, :reset_ids, :cache_tables]).empty?
6
- raise ArgumentError, "The only valid options are :only, :except, :pre_count, :reset_ids or :cache_tables. You specified #{opts.keys.join(',')}."
7
- end
8
- if opts.has_key?(:only) && opts.has_key?(:except)
9
- raise ArgumentError, "You may only specify either :only or :except. Doing both doesn't really make sense does it?"
10
- end
11
-
12
- @only = opts[:only]
13
- @tables_to_exclude = Array( (opts[:except] || []).dup ).flatten
14
- @tables_to_exclude += migration_storage_names
15
- @pre_count = opts[:pre_count]
16
- @reset_ids = opts[:reset_ids]
17
- @cache_tables = opts.has_key?(:cache_tables) ? !!opts[:cache_tables] : true
18
- end
19
-
20
- def start
21
- #included for compatability reasons, do nothing if you don't need to
22
- end
23
-
24
- def clean
25
- raise NotImplementedError
26
- end
27
-
28
- private
29
- def tables_to_truncate
30
- raise NotImplementedError
31
- end
32
-
33
- # overwrite in subclasses
34
- # default implementation given because migration storage need not be present
35
- def migration_storage_names
36
- %w[]
37
- end
38
- end
39
- end
40
- end
@@ -1,20 +0,0 @@
1
- module DatabaseCleaner
2
- class NullStrategy
3
- def start
4
- # no-op
5
- end
6
-
7
- def db=(connection)
8
- # no-op
9
- end
10
-
11
- def clean
12
- # no-op
13
- end
14
-
15
- def cleaning(&block)
16
- # no-op
17
- yield
18
- end
19
- end
20
- end
@@ -1,41 +0,0 @@
1
- module DatabaseCleaner
2
- class ORMAutodetector
3
- ORMS = {
4
- active_record: "ActiveRecord",
5
- data_mapper: "DataMapper",
6
- mongo_mapper: "MongoMapper",
7
- mongoid: "Mongoid",
8
- mongo: "Mongo",
9
- couch_potato: "CouchPotato",
10
- sequel: "Sequel",
11
- moped: "Moped",
12
- ohm: "Ohm",
13
- redis: "Redis",
14
- neo4j: "Neo4j",
15
- }
16
-
17
- def orm
18
- @autodetected = true
19
- autodetected_orm or raise no_orm_detected_error
20
- ORMS.key(autodetected_orm.to_s)
21
- end
22
-
23
- def autodetected?
24
- !!@autodetected
25
- end
26
-
27
- private
28
-
29
- def autodetected_orm
30
- ORMS.values.find do |orm|
31
- Kernel.const_get(orm) rescue next
32
- end
33
- end
34
-
35
- def no_orm_detected_error
36
- orm_list = ORMS.values.join(", ").sub(ORMS.values.last, "or #{ORMS.values.last}")
37
- NoORMDetected.new("No known ORM was detected! Is #{orm_list} loaded?")
38
- end
39
- end
40
- private_constant :ORMAutodetector
41
- end
@@ -1,107 +0,0 @@
1
- module DatabaseCleaner
2
- class Safeguard
3
- class Error < Exception
4
- class RemoteDatabaseUrl < Error
5
- def initialize
6
- super("ENV['DATABASE_URL'] is set to a remote URL. Please refer to https://github.com/DatabaseCleaner/database_cleaner#safeguards")
7
- end
8
- end
9
-
10
- class ProductionEnv < Error
11
- def initialize(env)
12
- super("ENV['#{env}'] is set to production. Please refer to https://github.com/DatabaseCleaner/database_cleaner#safeguards")
13
- end
14
- end
15
-
16
- class NotWhitelistedUrl < Error
17
- def initialize
18
- super("ENV['DATABASE_URL'] is set to a URL that is not on the whitelist. Please refer to https://github.com/DatabaseCleaner/database_cleaner#safeguards")
19
- end
20
- end
21
- end
22
-
23
- class WhitelistedUrl
24
- def run
25
- return if skip?
26
- raise Error::NotWhitelistedUrl if database_url_not_whitelisted?
27
- end
28
-
29
- private
30
-
31
- def database_url_not_whitelisted?
32
- !DatabaseCleaner.url_whitelist.include?(ENV['DATABASE_URL'])
33
- end
34
-
35
- def skip?
36
- !DatabaseCleaner.url_whitelist
37
- end
38
- end
39
-
40
-
41
- class RemoteDatabaseUrl
42
- LOCAL = %w(localhost 127.0.0.1)
43
-
44
- def run
45
- raise Error::RemoteDatabaseUrl if !skip? && given?
46
- end
47
-
48
- private
49
-
50
- def given?
51
- remote?(ENV['DATABASE_URL'])
52
- end
53
-
54
- def remote?(url)
55
- return false unless url
56
-
57
- parsed = URI.parse(url)
58
- return false if parsed.scheme == 'sqlite3:'
59
-
60
- host = parsed.host
61
- return false unless host
62
- return false if LOCAL.include?(host)
63
- return false if host.end_with? '.local'
64
- true
65
- end
66
-
67
- def skip?
68
- ENV['DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL'] ||
69
- DatabaseCleaner.allow_remote_database_url ||
70
- DatabaseCleaner.url_whitelist
71
- end
72
- end
73
-
74
- class Production
75
- KEYS = %w(ENV RACK_ENV RAILS_ENV)
76
-
77
- def run
78
- raise Error::ProductionEnv.new(key) if !skip? && given?
79
- end
80
-
81
- private
82
-
83
- def given?
84
- !!key
85
- end
86
-
87
- def key
88
- @key ||= KEYS.detect { |key| ENV[key] == 'production' }
89
- end
90
-
91
- def skip?
92
- ENV['DATABASE_CLEANER_ALLOW_PRODUCTION'] ||
93
- DatabaseCleaner.allow_production
94
- end
95
- end
96
-
97
- CHECKS = [
98
- RemoteDatabaseUrl,
99
- Production,
100
- WhitelistedUrl
101
- ]
102
-
103
- def run
104
- CHECKS.each { |const| const.new.run }
105
- end
106
- end
107
- end
@@ -1,82 +0,0 @@
1
- require 'yaml'
2
-
3
- module DatabaseCleaner
4
- module Spec
5
- class DatabaseHelper < Struct.new(:db)
6
- def self.with_all_dbs &block
7
- %w[mysql mysql2 sqlite3 postgres].map(&:to_sym).each do |db|
8
- yield new(db)
9
- end
10
- end
11
-
12
- def setup
13
- create_db
14
- establish_connection
15
- load_schema
16
- end
17
-
18
- attr_reader :connection
19
-
20
- def teardown
21
- drop_db
22
- end
23
-
24
- private
25
-
26
- def establish_connection(config = default_config)
27
- raise NotImplementedError
28
- end
29
-
30
- def create_db
31
- if db == :sqlite3
32
- # NO-OP
33
- elsif db == :postgres
34
- establish_connection default_config.merge('database' => 'postgres')
35
- connection.execute "CREATE DATABASE #{default_config['database']}" rescue nil
36
- else
37
- establish_connection default_config.merge("database" => nil)
38
- connection.execute "CREATE DATABASE IF NOT EXISTS #{default_config['database']}"
39
- end
40
- end
41
-
42
- def load_schema
43
- connection.execute <<-SQL
44
- CREATE TABLE IF NOT EXISTS users (
45
- id SERIAL PRIMARY KEY,
46
- name INTEGER
47
- );
48
- SQL
49
-
50
- connection.execute <<-SQL
51
- CREATE TABLE IF NOT EXISTS agents (
52
- name INTEGER
53
- );
54
- SQL
55
- end
56
-
57
- def drop_db
58
- if db == :sqlite3
59
- begin
60
- File.unlink(db_config['sqlite3']['database'])
61
- rescue Errno::ENOENT
62
- end
63
- elsif db == :postgres
64
- # FIXME
65
- connection.execute "DROP TABLE IF EXISTS users"
66
- connection.execute "DROP TABLE IF EXISTS agents"
67
- else
68
- connection.execute "DROP DATABASE IF EXISTS #{default_config['database']}"
69
- end
70
- end
71
-
72
- def db_config
73
- config_path = 'spec/support/config.yml'
74
- @db_config ||= YAML.load(IO.read(config_path))
75
- end
76
-
77
- def default_config
78
- db_config[db.to_s]
79
- end
80
- end
81
- end
82
- end
@@ -1,15 +0,0 @@
1
- RSpec.shared_examples_for "a generic strategy" do
2
- it { is_expected.to respond_to(:db) }
3
- end
4
-
5
- RSpec.shared_examples_for "a generic truncation strategy" do
6
- it { is_expected.to respond_to(:start) }
7
- it { is_expected.to respond_to(:clean) }
8
- it { is_expected.to respond_to(:cleaning) }
9
- end
10
-
11
- RSpec.shared_examples_for "a generic transaction strategy" do
12
- it { is_expected.to respond_to(:start) }
13
- it { is_expected.to respond_to(:clean) }
14
- it { is_expected.to respond_to(:cleaning) }
15
- end
@@ -1,2 +0,0 @@
1
- require "database_cleaner/spec/database_helper"
2
- require "database_cleaner/spec/shared_examples"
@@ -1,3 +0,0 @@
1
- module DatabaseCleaner
2
- VERSION = "1.99.0"
3
- end