database_cleaner-sequel 1.99.0 → 2.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ac1d7b048e8a0cf3dd46697461f02f4160b282cec181bbae02ea2b3e35e27312
4
- data.tar.gz: 4343b28aec3a9b7597870ec113ea7378caa3d5cadca6daeb3dea84aee3a68db4
3
+ metadata.gz: e24b91d918b8069ebdd520d9c18819dd4510bf86be4e4c57f5fdc5b4db0139ab
4
+ data.tar.gz: 24f698fd0cbc73c3fddcd880ff19113ef9fbc18e8bfe55239ed1dd5e2dc6fefb
5
5
  SHA512:
6
- metadata.gz: 3adb3012a002b76fbaa022a54f333166ac4b91e277649159bcd7a92fca02aacc822626188c153c477e682d19719c267d2d7724c25960694f9bf3dbb5269faad4
7
- data.tar.gz: 4cc0f024eac20463ec6d6ab69dffd3c68759ba7af3d28beb0c302e2a7ad6a1e7d419c7fa19bd538b5598414af5e4810d9d0c2118175e512f89a56f3bb00434d6
6
+ metadata.gz: 59e1da73beffd21c0cb434a9ff1652843163e93c49c243ae74557ee719724c3ace97efdd89d8745b0bb98101e9215550841cdf107bb6e6e419f84ed504267ee4
7
+ data.tar.gz: 446c42ee8814a6ad9bbb72cfb1ef712af626d33adf3a76e4d05ada473615663f09ac00d74fb5cf5ea06cbc31be83d0dd295fae23948ca68fa4cca9fcf7aff3d0
data/.gitignore CHANGED
@@ -8,6 +8,9 @@
8
8
  /spec/support/config.yml
9
9
  /tmp/
10
10
  !/tmp/.keep
11
+ /.ruby-version
12
+ /.byebug_history
13
+ /Gemfile.lock
11
14
 
12
15
  # rspec failure tracking
13
16
  .rspec_status
data/.travis.yml CHANGED
@@ -1,4 +1,11 @@
1
1
  language: ruby
2
+ services:
3
+ - mysql
4
+ - postgresql
2
5
  rvm:
3
- - 2.2.9
4
- before_install: gem install bundler -v 1.17.2
6
+ - 2.5
7
+ - 2.6
8
+ - 2.7
9
+ before_script:
10
+ - bin/setup
11
+
data/Gemfile CHANGED
@@ -1,8 +1,12 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
-
5
3
  # Specify your gem's dependencies in database_cleaner-sequel.gemspec
6
4
  gemspec
7
5
 
8
- gem "database_cleaner", path: "../.."
6
+ gem "database_cleaner-core", git: "https://github.com/DatabaseCleaner/database_cleaner"
7
+ gem "byebug"
8
+
9
+ group :test do
10
+ gem "simplecov", require: false
11
+ gem "codecov", require: false
12
+ end
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/DatabaseCleaner/database_cleaner-sequel.svg?branch=master)](https://travis-ci.org/DatabaseCleaner/database_cleaner-sequel)
4
4
  [![Code Climate](https://codeclimate.com/github/DatabaseCleaner/database_cleaner-sequel/badges/gpa.svg)](https://codeclimate.com/github/DatabaseCleaner/database_cleaner-sequel)
5
+ [![codecov](https://codecov.io/gh/DatabaseCleaner/database_cleaner-sequel/branch/master/graph/badge.svg)](https://codecov.io/gh/DatabaseCleaner/database_cleaner-sequel)
5
6
 
6
7
  Clean your Sequel databases with Database Cleaner.
7
8
 
@@ -16,50 +17,62 @@ group :test do
16
17
  end
17
18
  ```
18
19
 
20
+ ```ruby
21
+ # test_helper.rb
22
+ DatabaseCleaner[:sequel].strategy = :transaction
23
+
24
+ class Minitest::Spec
25
+ before :each do
26
+ DatabaseCleaner[:sequel].start
27
+ end
28
+
29
+ after :each do
30
+ DatabaseCleaner[:sequel].clean
31
+ end
32
+ end
33
+ ```
34
+
19
35
  ## Supported Strategies
20
36
 
21
- Here is an overview of the supported strategies:
22
-
23
- <table>
24
- <tbody>
25
- <tr>
26
- <th>Truncation</th>
27
- <th>Transaction</th>
28
- <th>Deletion</th>
29
- </tr>
30
- <tr>
31
- <td> Yes</td>
32
- <td> <b>Yes</b></td>
33
- <td> Yes</td>
34
- </tr>
35
- </tbody>
36
- </table>
37
-
38
- (Default strategy is denoted in bold)
39
-
40
- ## Configuration options
41
-
42
- <table>
43
- <tbody>
44
- <tr>
45
- <th>ORM</th>
46
- <th>How to access</th>
47
- <th>Notes</th>
48
- </tr>
49
- <tr>
50
- <td> Sequel</td>
51
- <td> <code>DatabaseCleaner[:sequel]</code></td>
52
- <td> Multiple databases supported; specify <code>DatabaseCleaner[:sequel, {:db =&gt; Sequel.connect(uri)}]</code></td>
53
- </tr>
54
- </tbody>
55
- </table>
56
-
57
- ## Common Errors
58
-
59
- ### Nothing happens in JRuby with Sequel using transactions
60
-
61
- Due to an inconsistency in JRuby's implementation of Fibers, Sequel gives a different connection to `DatabaseCleaner.start` than is used for tests run between `.start` and `.clean`. This can be worked around by running your tests in a block like `DatabaseCleaner.cleaning { run_my_tests }` instead, which does not use Fibers.
37
+ Three strategies are supported:
38
+
39
+ * Transaction (default)
40
+ * Truncation
41
+ * Deletion
42
+
43
+ ## Strategy configuration options
44
+
45
+ The transaction strategy accepts no options.
46
+
47
+ The truncation and deletion strategies may accept the following options:
48
+
49
+ * `:only` and `:except` may take a list of table names:
62
50
 
51
+ ```ruby
52
+ # Only truncate the "users" table.
53
+ DatabaseCleaner[:sequel].strategy = :truncation, { only: ["users"] }
54
+
55
+ # Delete all tables except the "users" table.
56
+ DatabaseCleaner[:sequel].strategy = :deletion, { except: ["users"] }
57
+ ```
58
+
59
+ * `:pre_count` - When set to `true`, this will check each table for existing rows before truncating or deleting it. This can speed up test suites when many of the tables are never populated. Defaults to `false`.
60
+
61
+ ## Adapter configuration options
62
+
63
+ `#db` defaults to the default Sequel database, but can be specified manually in a few ways:
64
+
65
+ ```ruby
66
+ # Sequel connection object
67
+ DatabaseCleaner[:sequel].db = Sequel.connect(uri)
68
+
69
+ # Back to default:
70
+ DatabaseCleaner[:sequel].db = :default
71
+
72
+ # Multiple Sequel databases can be specified:
73
+ DatabaseCleaner[:sequel, connection: :default]
74
+ DatabaseCleaner[:sequel, connection: Sequel.connect(uri)]
75
+ ```
63
76
  ## COPYRIGHT
64
77
 
65
- See [LICENSE] for details.
78
+ See [LICENSE](LICENSE) for details.
data/bin/setup CHANGED
@@ -1,8 +1,44 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
  IFS=$'\n\t'
4
- set -vx
4
+
5
+ NAME=$0
6
+ DOCKER=NO
7
+
8
+ usage() {
9
+ cat <<EOF
10
+ Usage:
11
+ $NAME
12
+
13
+ OPTIONS
14
+ -d|--docker copy example config that works with docker-composed test
15
+ databases, copy default otherwise.
16
+ -h|--help display this message and exit.
17
+ EOF
18
+ }
19
+
20
+ while [[ $# -gt 0 ]]
21
+ do
22
+
23
+ opt="$1"
24
+ case $opt in
25
+ -d|--docker)
26
+ DOCKER=YES
27
+ shift
28
+ ;;
29
+ -h|--help)
30
+ usage
31
+ exit
32
+ ;;
33
+ esac
34
+ done
5
35
 
6
36
  bundle check || bundle install
7
- cp spec/support/sample.config.yml spec/support/config.yml
8
37
 
38
+ if [[ $DOCKER = "YES" ]]
39
+ then
40
+ cp spec/support/sample-docker.config.yml spec/support/config.yml
41
+ echo "Run \`docker-compose up\` to setup databases"
42
+ else
43
+ cp spec/support/sample.config.yml spec/support/config.yml
44
+ fi
@@ -1,12 +1,9 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "database_cleaner/sequel/version"
1
+ require_relative "./lib/database_cleaner/sequel/version"
5
2
 
6
3
  Gem::Specification.new do |spec|
7
4
  spec.name = "database_cleaner-sequel"
8
5
  spec.version = DatabaseCleaner::Sequel::VERSION
9
- spec.authors = ["Ernesto Tagwerker"]
6
+ spec.authors = ["Ernesto Tagwerker", "Micah Geisel"]
10
7
  spec.email = ["ernesto@ombulabs.com"]
11
8
 
12
9
  spec.summary = "Strategies for cleaning databases using Sequel. Can be used to ensure a clean state for testing."
@@ -14,9 +11,6 @@ Gem::Specification.new do |spec|
14
11
  spec.homepage = "https://github.com/DatabaseCleaner/database_cleaner-sequel"
15
12
  spec.license = "MIT"
16
13
 
17
- spec.add_dependency "database_cleaner", "~> 1.99.0"
18
- spec.add_dependency "sequel"
19
-
20
14
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
21
15
  f.match(%r{^(test|spec|features)/})
22
16
  end
@@ -24,12 +18,13 @@ Gem::Specification.new do |spec|
24
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
19
  spec.require_paths = ["lib"]
26
20
 
27
- spec.add_development_dependency "bundler", "~> 1.16"
28
- spec.add_development_dependency "rake", "~> 10.0"
29
- spec.add_development_dependency "rspec", "~> 3.0"
21
+ spec.add_dependency "database_cleaner-core", "~>2.0.0.beta2"
22
+ spec.add_dependency "sequel"
30
23
 
31
- spec.add_development_dependency 'mysql', '~> 2.9.1'
32
- spec.add_development_dependency 'mysql2'
33
- spec.add_development_dependency 'pg'
24
+ spec.add_development_dependency "bundler"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "rspec"
27
+ spec.add_development_dependency "mysql2"
28
+ spec.add_development_dependency "pg"
34
29
  spec.add_development_dependency "sqlite3"
35
30
  end
@@ -0,0 +1,29 @@
1
+ version: '3.1'
2
+
3
+ services:
4
+ mysql:
5
+ image: mysql:8
6
+ ports:
7
+ - 3307:3306
8
+ environment:
9
+ MYSQL_ROOT_PASSWORD: root-password
10
+ MYSQL_DATABASE: database_cleaner_test
11
+ MYSQL_USER: database_cleaner
12
+ MYSQL_PASSWORD: database_cleaner
13
+ volumes:
14
+ - mydata:/var/lib/mysql
15
+
16
+ postgres:
17
+ image: postgres:12
18
+ ports:
19
+ - 5433:5432
20
+ environment:
21
+ POSTGRES_DB: database_cleaner_test
22
+ POSTGRES_USER: database_cleaner
23
+ POSTGRES_PASSWORD: database_cleaner
24
+ volumes:
25
+ - pgdata:/var/lib/postgresql/data
26
+
27
+ volumes:
28
+ mydata:
29
+ pgdata:
@@ -1,21 +1,8 @@
1
- require 'database_cleaner/generic/base'
1
+ require "database_cleaner/strategy"
2
+
2
3
  module DatabaseCleaner
3
4
  module Sequel
4
- def self.available_strategies
5
- %w(truncation transaction deletion)
6
- end
7
-
8
- def self.default_strategy
9
- :transaction
10
- end
11
-
12
- module Base
13
- include ::DatabaseCleaner::Generic::Base
14
-
15
- def db=(desired_db)
16
- @db = desired_db
17
- end
18
-
5
+ class Base < Strategy
19
6
  def db
20
7
  return @db if @db && @db != :default
21
8
  raise "As you have more than one active sequel database you have to specify the one to use manually!" if ::Sequel::DATABASES.count > 1
@@ -1,45 +1,45 @@
1
- require 'database_cleaner/sequel/base'
2
- require 'database_cleaner/generic/truncation'
3
1
  require 'database_cleaner/sequel/truncation'
4
2
 
5
- module DatabaseCleaner::Sequel
6
- class Deletion < Truncation
7
- def disable_referential_integrity(tables)
8
- case db.database_type
9
- when :postgres
10
- db.run('SET CONSTRAINTS ALL DEFERRED')
11
- tables_to_truncate(db).each do |table|
12
- db.run("ALTER TABLE \"#{table}\" DISABLE TRIGGER ALL")
3
+ module DatabaseCleaner
4
+ module Sequel
5
+ class Deletion < Truncation
6
+ def disable_referential_integrity(tables)
7
+ case db.database_type
8
+ when :postgres
9
+ db.run('SET CONSTRAINTS ALL DEFERRED')
10
+ tables_to_truncate(db).each do |table|
11
+ db.run("ALTER TABLE \"#{table}\" DISABLE TRIGGER ALL")
12
+ end
13
+ when :mysql
14
+ old = db.fetch('SELECT @@FOREIGN_KEY_CHECKS').first[:@@FOREIGN_KEY_CHECKS]
15
+ db.run('SET FOREIGN_KEY_CHECKS = 0')
13
16
  end
14
- when :mysql
15
- old = db.fetch('SELECT @@FOREIGN_KEY_CHECKS').first[:@@FOREIGN_KEY_CHECKS]
16
- db.run('SET FOREIGN_KEY_CHECKS = 0')
17
- end
18
- yield
19
- ensure
20
- case db.database_type
21
- when :postgres
22
- tables.each do |table|
23
- db.run("ALTER TABLE \"#{table}\" ENABLE TRIGGER ALL")
17
+ yield
18
+ ensure
19
+ case db.database_type
20
+ when :postgres
21
+ tables.each do |table|
22
+ db.run("ALTER TABLE \"#{table}\" ENABLE TRIGGER ALL")
23
+ end
24
+ when :mysql
25
+ db.run("SET FOREIGN_KEY_CHECKS = #{old}")
24
26
  end
25
- when :mysql
26
- db.run("SET FOREIGN_KEY_CHECKS = #{old}")
27
27
  end
28
- end
29
28
 
30
- def delete_tables(db, tables)
31
- tables.each do |table|
32
- db[table.to_sym].delete
29
+ def delete_tables(db, tables)
30
+ tables.each do |table|
31
+ db[table.to_sym].delete
32
+ end
33
33
  end
34
- end
35
34
 
36
- def clean
37
- return unless dirty?
35
+ def clean
36
+ return unless dirty?
38
37
 
39
- tables = tables_to_truncate(db)
40
- db.transaction do
41
- disable_referential_integrity(tables) do
42
- delete_tables(db, tables)
38
+ tables = tables_to_truncate(db)
39
+ db.transaction do
40
+ disable_referential_integrity(tables) do
41
+ delete_tables(db, tables)
42
+ end
43
43
  end
44
44
  end
45
45
  end
@@ -1,25 +1,13 @@
1
1
  require 'database_cleaner/sequel/base'
2
+
2
3
  module DatabaseCleaner
3
4
  module Sequel
4
- class Transaction
5
- include ::DatabaseCleaner::Sequel::Base
6
-
7
- def self.check_fiber_brokenness
8
- if !@checked_fiber_brokenness && Fiber.new { Thread.current }.resume != Thread.current
9
- raise RuntimeError, "This ruby engine's Fibers are not compatible with Sequel's connection pool. " +
10
- "To work around this, please use DatabaseCleaner.cleaning with a block instead of " +
11
- "DatabaseCleaner.start and DatabaseCleaner.clean"
12
- end
13
- @checked_fiber_brokenness = true
14
- end
15
-
5
+ class Transaction < Base
16
6
  def start
17
- self.class.check_fiber_brokenness
18
-
19
7
  @fibers ||= []
20
8
  db = self.db
21
9
  f = Fiber.new do
22
- db.transaction(:rollback => :always, :savepoint => true) do
10
+ db.transaction(:rollback => :always, :savepoint => true, :auto_savepoint => true) do
23
11
  Fiber.yield
24
12
  end
25
13
  end
@@ -31,10 +19,6 @@ module DatabaseCleaner
31
19
  f = @fibers.pop
32
20
  f.resume
33
21
  end
34
-
35
- def cleaning
36
- self.db.transaction(:rollback => :always, :savepoint => true) { yield }
37
- end
38
22
  end
39
23
  end
40
24
  end
@@ -1,11 +1,13 @@
1
- require 'database_cleaner/generic/truncation'
2
1
  require 'database_cleaner/sequel/base'
3
2
 
4
3
  module DatabaseCleaner
5
4
  module Sequel
6
- class Truncation
7
- include ::DatabaseCleaner::Sequel::Base
8
- include ::DatabaseCleaner::Generic::Truncation
5
+ class Truncation < Base
6
+ def initialize only: [], except: [], pre_count: false
7
+ @only = only
8
+ @except = except
9
+ @pre_count = pre_count
10
+ end
9
11
 
10
12
  def start
11
13
  @last_txid = txid
@@ -63,7 +65,7 @@ module DatabaseCleaner
63
65
  end
64
66
 
65
67
  def tables_to_truncate(db)
66
- (@only || db.tables.map(&:to_s)) - @tables_to_exclude
68
+ (@only.any? ? @only : db.tables.map(&:to_s)) - @except - migration_storage_names
67
69
  end
68
70
 
69
71
  # overwritten
@@ -1,5 +1,5 @@
1
1
  module DatabaseCleaner
2
2
  module Sequel
3
- VERSION = "1.99.0"
3
+ VERSION = "2.0.0.beta"
4
4
  end
5
5
  end
@@ -1,6 +1,7 @@
1
1
  require "database_cleaner/sequel/version"
2
- require "database_cleaner"
3
- require "database_cleaner/sequel/truncation"
2
+ require "database_cleaner/core"
4
3
  require "database_cleaner/sequel/transaction"
4
+ require "database_cleaner/sequel/truncation"
5
5
  require "database_cleaner/sequel/deletion"
6
6
 
7
+ DatabaseCleaner[:sequel].strategy = :transaction
metadata CHANGED
@@ -1,29 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: database_cleaner-sequel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.99.0
4
+ version: 2.0.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ernesto Tagwerker
8
+ - Micah Geisel
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2021-01-31 00:00:00.000000000 Z
12
+ date: 2020-05-30 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
- name: database_cleaner
15
+ name: database_cleaner-core
15
16
  requirement: !ruby/object:Gem::Requirement
16
17
  requirements:
17
18
  - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: 1.99.0
20
+ version: 2.0.0.beta2
20
21
  type: :runtime
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - "~>"
25
26
  - !ruby/object:Gem::Version
26
- version: 1.99.0
27
+ version: 2.0.0.beta2
27
28
  - !ruby/object:Gem::Dependency
28
29
  name: sequel
29
30
  requirement: !ruby/object:Gem::Requirement
@@ -42,58 +43,44 @@ dependencies:
42
43
  name: bundler
43
44
  requirement: !ruby/object:Gem::Requirement
44
45
  requirements:
45
- - - "~>"
46
+ - - ">="
46
47
  - !ruby/object:Gem::Version
47
- version: '1.16'
48
+ version: '0'
48
49
  type: :development
49
50
  prerelease: false
50
51
  version_requirements: !ruby/object:Gem::Requirement
51
52
  requirements:
52
- - - "~>"
53
+ - - ">="
53
54
  - !ruby/object:Gem::Version
54
- version: '1.16'
55
+ version: '0'
55
56
  - !ruby/object:Gem::Dependency
56
57
  name: rake
57
58
  requirement: !ruby/object:Gem::Requirement
58
59
  requirements:
59
- - - "~>"
60
+ - - ">="
60
61
  - !ruby/object:Gem::Version
61
- version: '10.0'
62
+ version: '0'
62
63
  type: :development
63
64
  prerelease: false
64
65
  version_requirements: !ruby/object:Gem::Requirement
65
66
  requirements:
66
- - - "~>"
67
+ - - ">="
67
68
  - !ruby/object:Gem::Version
68
- version: '10.0'
69
+ version: '0'
69
70
  - !ruby/object:Gem::Dependency
70
71
  name: rspec
71
72
  requirement: !ruby/object:Gem::Requirement
72
73
  requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.0'
83
- - !ruby/object:Gem::Dependency
84
- name: mysql
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
74
+ - - ">="
88
75
  - !ruby/object:Gem::Version
89
- version: 2.9.1
76
+ version: '0'
90
77
  type: :development
91
78
  prerelease: false
92
79
  version_requirements: !ruby/object:Gem::Requirement
93
80
  requirements:
94
- - - "~>"
81
+ - - ">="
95
82
  - !ruby/object:Gem::Version
96
- version: 2.9.1
83
+ version: '0'
97
84
  - !ruby/object:Gem::Dependency
98
85
  name: mysql2
99
86
  requirement: !ruby/object:Gem::Requirement
@@ -148,13 +135,13 @@ files:
148
135
  - ".rspec"
149
136
  - ".travis.yml"
150
137
  - Gemfile
151
- - Gemfile.lock
152
138
  - LICENSE.txt
153
139
  - README.md
154
140
  - Rakefile
155
141
  - bin/console
156
142
  - bin/setup
157
143
  - database_cleaner-sequel.gemspec
144
+ - docker-compose.yml
158
145
  - lib/database_cleaner-sequel.rb
159
146
  - lib/database_cleaner/sequel.rb
160
147
  - lib/database_cleaner/sequel/base.rb
@@ -178,11 +165,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
178
165
  version: '0'
179
166
  required_rubygems_version: !ruby/object:Gem::Requirement
180
167
  requirements:
181
- - - ">="
168
+ - - ">"
182
169
  - !ruby/object:Gem::Version
183
- version: '0'
170
+ version: 1.3.1
184
171
  requirements: []
185
- rubygems_version: 3.0.8
172
+ rubygems_version: 3.0.3
186
173
  signing_key:
187
174
  specification_version: 4
188
175
  summary: Strategies for cleaning databases using Sequel. Can be used to ensure a clean
data/Gemfile.lock DELETED
@@ -1,52 +0,0 @@
1
- PATH
2
- remote: ../..
3
- specs:
4
- database_cleaner (1.99.0)
5
-
6
- PATH
7
- remote: .
8
- specs:
9
- database_cleaner-sequel (1.99.0)
10
- database_cleaner (~> 1.99.0)
11
- sequel
12
-
13
- GEM
14
- remote: https://rubygems.org/
15
- specs:
16
- diff-lcs (1.3)
17
- mysql (2.9.1)
18
- mysql2 (0.3.18)
19
- pg (0.18.2)
20
- rake (10.4.2)
21
- rspec (3.7.0)
22
- rspec-core (~> 3.7.0)
23
- rspec-expectations (~> 3.7.0)
24
- rspec-mocks (~> 3.7.0)
25
- rspec-core (3.7.1)
26
- rspec-support (~> 3.7.0)
27
- rspec-expectations (3.7.0)
28
- diff-lcs (>= 1.2.0, < 2.0)
29
- rspec-support (~> 3.7.0)
30
- rspec-mocks (3.7.0)
31
- diff-lcs (>= 1.2.0, < 2.0)
32
- rspec-support (~> 3.7.0)
33
- rspec-support (3.7.1)
34
- sequel (5.28.0)
35
- sqlite3 (1.3.10)
36
-
37
- PLATFORMS
38
- ruby
39
-
40
- DEPENDENCIES
41
- bundler (~> 1.16)
42
- database_cleaner!
43
- database_cleaner-sequel!
44
- mysql (~> 2.9.1)
45
- mysql2
46
- pg
47
- rake (~> 10.0)
48
- rspec (~> 3.0)
49
- sqlite3
50
-
51
- BUNDLED WITH
52
- 1.17.3