gemika 0.3.2 → 0.3.3
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 +5 -5
- data/.gitignore +1 -1
- data/.travis.yml +8 -4
- data/README.md +36 -30
- data/gemfiles/Gemfile.3.2.mysql2.lock +2 -2
- data/gemfiles/Gemfile.4.2.mysql2.lock +2 -1
- data/gemfiles/Gemfile.4.2.pg.lock +2 -2
- data/gemfiles/Gemfile.5.0.mysql2.lock +2 -1
- data/gemfiles/Gemfile.5.0.pg.lock +2 -1
- data/gemfiles/Gemfile.5.0.sqlite3 +16 -0
- data/gemfiles/Gemfile.5.0.sqlite3.lock +61 -0
- data/lib/gemika/database.rb +5 -1
- data/lib/gemika/version.rb +1 -1
- metadata +5 -4
- data/spec/support/database.yml +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0495f6f88a9bf0b59ed3159f166a2c1edc397deb3083d1f069cf329723267ea6
|
4
|
+
data.tar.gz: 95e504c573edc50e0fdb9ce423eee9073f1ed880b6c0dc24a04c352efaec871e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3ab40e196aee3aa4fbc13b87828f75e2417a81ac26e2b2ef94b5b525784139e6f2c7c66ff0e22d0e2143347958338de7cb46065e3fba919e82273f0b9a80544
|
7
|
+
data.tar.gz: 588f5ec2600fb5de6d5f2cd88714491475ab8f7bef2e430724b25a05fc9e64ce74d1c9905e9ebad6191e69bfdb6d6db7aea21da88a644abec75e41c94c3ecaa2
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -13,6 +13,7 @@ gemfile:
|
|
13
13
|
- gemfiles/Gemfile.4.2.pg
|
14
14
|
- gemfiles/Gemfile.5.0.mysql2
|
15
15
|
- gemfiles/Gemfile.5.0.pg
|
16
|
+
- gemfiles/Gemfile.5.0.sqlite3
|
16
17
|
|
17
18
|
matrix:
|
18
19
|
exclude:
|
@@ -32,16 +33,19 @@ matrix:
|
|
32
33
|
rvm: 1.8.7
|
33
34
|
- gemfile: gemfiles/Gemfile.5.0.pg
|
34
35
|
rvm: 1.8.7
|
36
|
+
- gemfile: gemfiles/Gemfile.5.0.sqlite3
|
37
|
+
rvm: 1.8.7
|
35
38
|
- gemfile: gemfiles/Gemfile.5.0.mysql2
|
36
39
|
rvm: 2.1.8
|
37
40
|
- gemfile: gemfiles/Gemfile.5.0.pg
|
38
41
|
rvm: 2.1.8
|
42
|
+
- gemfile: gemfiles/Gemfile.5.0.sqlite3
|
43
|
+
rvm: 2.1.8
|
39
44
|
|
40
45
|
install:
|
41
|
-
#
|
42
|
-
|
43
|
-
|
44
|
-
- bundle install --jobs=3 --retry=3 --deployment --path=${BUNDLE_PATH:-vendor/bundle}
|
46
|
+
# Replace default Travis CI bundler script with a version that doesn't
|
47
|
+
# explode when lockfile doesn't match recently bumped version
|
48
|
+
- bundle install --no-deployment --jobs=3 --retry=3 --path=${BUNDLE_PATH:-vendor/bundle}
|
45
49
|
|
46
50
|
before_script:
|
47
51
|
- psql -c 'create database gemika_test;' -U postgres
|
data/README.md
CHANGED
@@ -12,7 +12,7 @@ Here's what Gemika can give your test's development setup (all features are opt-
|
|
12
12
|
|
13
13
|
- Test one codebase against multiple sets of runtime gem dependency sets (e.g. Rails 2.3, Rails 5.0).
|
14
14
|
- Test one codebase against multiple Ruby versions (e.g. Ruby 1.8.7, Ruby 2.3.10).
|
15
|
-
- Test one codebase against multiple database types (currently MySQL or
|
15
|
+
- Test one codebase against multiple database types (currently MySQL, PostgreSQL, or sqlite3).
|
16
16
|
- Compute a matrix of all possible dependency permutations (Ruby, runtime gems, database type). Manually exclude incompatible dependency permutations (e.g. Rails 5.0 does not work with Ruby 2.1).
|
17
17
|
- Let developers enter their local credentials for MySQL and PostgreSQL in a `database.yml` file.
|
18
18
|
- Define default Ruby version, gem dependencies and database for developers who don't care about every possible permutation for everyday work.
|
@@ -30,7 +30,7 @@ Gemika currently supports the following dependency versions:
|
|
30
30
|
- Ruby: 1.8.7, 2.1, 2.2, 2.3
|
31
31
|
- RSpec: Versions 1, 2, 3
|
32
32
|
- ActiveRecord: Versions 2.3, 3.2, 4.2, 5.0
|
33
|
-
- Databases: PostgreSQL (with `pg` gem), MySQL or MariaDB (with `mysql2` gem)
|
33
|
+
- Databases: PostgreSQL (with `pg` gem), MySQL or MariaDB (with `mysql2` gem), or sqlite3 (with `sqlite3` gem)
|
34
34
|
|
35
35
|
Gemika also makes some assumption about your Gem:
|
36
36
|
|
@@ -79,9 +79,10 @@ For a live example of this setup, check the [makandra/minidusen](https://github.
|
|
79
79
|
Gemika expects a standard gem directory that looks roughly like this:
|
80
80
|
|
81
81
|
```shell
|
82
|
-
my_gem.gemspec
|
83
|
-
Rakefile
|
84
|
-
lib/my_gem.rb
|
82
|
+
my_gem.gemspec # Specification for your gem
|
83
|
+
Rakefile # Rake tasks for your gem
|
84
|
+
lib/my_gem.rb # Main file to require for your gem
|
85
|
+
spec/my_gem_spec.rb # Tests for your gem
|
85
86
|
```
|
86
87
|
|
87
88
|
If you don't have a directory yet, you can [ask Bundler to create it for you](http://bundler.io/rubygems.html):
|
@@ -152,12 +153,14 @@ For each dependency set, create a `Gemfile` in the `gemfiles` directory that con
|
|
152
153
|
For instance, if one dependency set is Rails 3.2 with a MySQL database, we would create `gemfiles/Gemfile.4.2.mysql2` with these contents:
|
153
154
|
|
154
155
|
```ruby
|
156
|
+
source 'https://rubygems.org'
|
157
|
+
|
155
158
|
# Runtime dependencies
|
156
159
|
gem 'rails', '~>3.2.22'
|
157
160
|
gem 'mysql2', '= 0.3.17'
|
158
|
-
gem 'rspec', '~> 3.4'
|
159
161
|
|
160
162
|
# Development dependencies
|
163
|
+
gem 'rspec', '~> 3.4'
|
161
164
|
gem 'rake'
|
162
165
|
gem 'byebug'
|
163
166
|
gem 'gemika'
|
@@ -169,12 +172,14 @@ gem 'my_gem', :path => '..'
|
|
169
172
|
If a second dependency is Rails 5.0 with a PostgreSQL database, we would create `gemfiles/Gemfile.5.0.pg` with these contents:
|
170
173
|
|
171
174
|
```ruby
|
175
|
+
source 'https://rubygems.org'
|
176
|
+
|
172
177
|
# Runtime dependencies
|
173
178
|
gem 'rails', '~>5.0.0'
|
174
179
|
gem 'pg', '~>0.18.4'
|
175
|
-
gem 'rspec', '~>3.5'
|
176
180
|
|
177
181
|
# Development dependencies
|
182
|
+
gem 'rspec', '~>3.5'
|
178
183
|
gem 'rake'
|
179
184
|
gem 'byebug'
|
180
185
|
gem 'gemika'
|
@@ -190,25 +195,6 @@ gemfiles/Gemfile.4.2.mysql2
|
|
190
195
|
gemfiles/Gemfile.5.0.pg
|
191
196
|
```
|
192
197
|
|
193
|
-
Create lockfiles for each bundle by running:
|
194
|
-
|
195
|
-
```shell
|
196
|
-
rake matrix:install
|
197
|
-
```
|
198
|
-
|
199
|
-
In this example, your `gemfiles` directory should now contain a lockfile for each gemfile:
|
200
|
-
|
201
|
-
```
|
202
|
-
gemfiles/Gemfile.4.2.mysql2
|
203
|
-
gemfiles/Gemfile.4.2.mysql2.lock
|
204
|
-
gemfiles/Gemfile.5.0.pg
|
205
|
-
gemfiles/Gemfile.5.0.pg.lock
|
206
|
-
```
|
207
|
-
|
208
|
-
Gemfiles and lockfiles should be committed to your repo.
|
209
|
-
|
210
|
-
Make sure to re-run `rake matrix:install` after each change to your gemfiles, and commit the generated changes.
|
211
|
-
|
212
198
|
|
213
199
|
### Define combinations of gemfiles and Ruby versions
|
214
200
|
|
@@ -248,6 +234,27 @@ matrix:
|
|
248
234
|
rvm: 2.1.8
|
249
235
|
```
|
250
236
|
|
237
|
+
### Generate lockfiles
|
238
|
+
|
239
|
+
Generate lockfiles for each bundle by running:
|
240
|
+
|
241
|
+
```shell
|
242
|
+
rake matrix:install
|
243
|
+
```
|
244
|
+
|
245
|
+
In this example, your `gemfiles` directory should now contain a lockfile for each gemfile:
|
246
|
+
|
247
|
+
```
|
248
|
+
gemfiles/Gemfile.4.2.mysql2
|
249
|
+
gemfiles/Gemfile.4.2.mysql2.lock
|
250
|
+
gemfiles/Gemfile.5.0.pg
|
251
|
+
gemfiles/Gemfile.5.0.pg.lock
|
252
|
+
```
|
253
|
+
|
254
|
+
Gemfiles and lockfiles should be committed to your repo.
|
255
|
+
|
256
|
+
Make sure to re-run `rake matrix:install` after each change to your gemfiles, and commit the generated changes.
|
257
|
+
|
251
258
|
|
252
259
|
### Default Ruby and default gemfile
|
253
260
|
|
@@ -471,10 +478,9 @@ notifications:
|
|
471
478
|
- notifications@test.com
|
472
479
|
|
473
480
|
install:
|
474
|
-
#
|
475
|
-
|
476
|
-
|
477
|
-
- bundle install --jobs=3 --retry=3 --deployment --path=${BUNDLE_PATH:-vendor/bundle}
|
481
|
+
# Replace default Travis CI bundler script with a version that doesn't
|
482
|
+
# explode when lockfile doesn't match recently bumped version
|
483
|
+
- bundle install --no-deployment --jobs=3 --retry=3 --path=${BUNDLE_PATH:-vendor/bundle}
|
478
484
|
|
479
485
|
script: bundle exec rake current_rspec
|
480
486
|
```
|
@@ -0,0 +1,16 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Ruby
|
4
|
+
ruby '>= 2.2'
|
5
|
+
|
6
|
+
# Runtime dependencies
|
7
|
+
gem 'activerecord', '~>5.0.0'
|
8
|
+
gem 'rspec', '~>3.5'
|
9
|
+
gem 'sqlite3'
|
10
|
+
|
11
|
+
# Development dependencies
|
12
|
+
gem 'rake'
|
13
|
+
gem 'database_cleaner'
|
14
|
+
|
15
|
+
# Gem under test
|
16
|
+
gem 'gemika', :path => '..'
|
@@ -0,0 +1,61 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ..
|
3
|
+
specs:
|
4
|
+
gemika (0.3.3)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
activemodel (5.0.7)
|
10
|
+
activesupport (= 5.0.7)
|
11
|
+
activerecord (5.0.7)
|
12
|
+
activemodel (= 5.0.7)
|
13
|
+
activesupport (= 5.0.7)
|
14
|
+
arel (~> 7.0)
|
15
|
+
activesupport (5.0.7)
|
16
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
17
|
+
i18n (>= 0.7, < 2)
|
18
|
+
minitest (~> 5.1)
|
19
|
+
tzinfo (~> 1.1)
|
20
|
+
arel (7.1.4)
|
21
|
+
concurrent-ruby (1.0.5)
|
22
|
+
database_cleaner (1.7.0)
|
23
|
+
diff-lcs (1.3)
|
24
|
+
i18n (1.0.1)
|
25
|
+
concurrent-ruby (~> 1.0)
|
26
|
+
minitest (5.11.3)
|
27
|
+
rake (12.3.1)
|
28
|
+
rspec (3.7.0)
|
29
|
+
rspec-core (~> 3.7.0)
|
30
|
+
rspec-expectations (~> 3.7.0)
|
31
|
+
rspec-mocks (~> 3.7.0)
|
32
|
+
rspec-core (3.7.1)
|
33
|
+
rspec-support (~> 3.7.0)
|
34
|
+
rspec-expectations (3.7.0)
|
35
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
36
|
+
rspec-support (~> 3.7.0)
|
37
|
+
rspec-mocks (3.7.0)
|
38
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
39
|
+
rspec-support (~> 3.7.0)
|
40
|
+
rspec-support (3.7.1)
|
41
|
+
sqlite3 (1.3.13)
|
42
|
+
thread_safe (0.3.6)
|
43
|
+
tzinfo (1.2.5)
|
44
|
+
thread_safe (~> 0.1)
|
45
|
+
|
46
|
+
PLATFORMS
|
47
|
+
ruby
|
48
|
+
|
49
|
+
DEPENDENCIES
|
50
|
+
activerecord (~> 5.0.0)
|
51
|
+
database_cleaner
|
52
|
+
gemika!
|
53
|
+
rake
|
54
|
+
rspec (~> 3.5)
|
55
|
+
sqlite3
|
56
|
+
|
57
|
+
RUBY VERSION
|
58
|
+
ruby 2.2.4p230
|
59
|
+
|
60
|
+
BUNDLED WITH
|
61
|
+
1.16.1
|
data/lib/gemika/database.rb
CHANGED
@@ -95,8 +95,12 @@ module Gemika
|
|
95
95
|
default_config['username'] = 'travis' if Env.travis?
|
96
96
|
default_config['encoding'] = 'utf8'
|
97
97
|
user_config = (@yaml_config['mysql'] || @yaml_config['mysql2']) || {}
|
98
|
+
elsif Env.gem?('sqlite3')
|
99
|
+
default_config['adapter'] = 'sqlite3'
|
100
|
+
default_config['database'] = ':memory:'
|
101
|
+
user_config = (@yaml_config['sqlite'] || @yaml_config['sqlite3']) || {}
|
98
102
|
else
|
99
|
-
raise UnknownAdapter, "Unknown database type. Either 'pg' or '
|
103
|
+
raise UnknownAdapter, "Unknown database type. Either 'pg', 'mysql2', or 'sqlite3' gem should be in your current bundle."
|
100
104
|
end
|
101
105
|
default_config.merge(user_config)
|
102
106
|
end
|
data/lib/gemika/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemika
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henning Koch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Helpers for testing Ruby gems
|
14
14
|
email: henning.koch@makandra.de
|
@@ -37,6 +37,8 @@ files:
|
|
37
37
|
- gemfiles/Gemfile.5.0.mysql2.lock
|
38
38
|
- gemfiles/Gemfile.5.0.pg
|
39
39
|
- gemfiles/Gemfile.5.0.pg.lock
|
40
|
+
- gemfiles/Gemfile.5.0.sqlite3
|
41
|
+
- gemfiles/Gemfile.5.0.sqlite3.lock
|
40
42
|
- gemika.gemspec
|
41
43
|
- lib/gemika.rb
|
42
44
|
- lib/gemika/database.rb
|
@@ -63,7 +65,6 @@ files:
|
|
63
65
|
- spec/support/database.rb
|
64
66
|
- spec/support/database.sample.yml
|
65
67
|
- spec/support/database.travis.yml
|
66
|
-
- spec/support/database.yml
|
67
68
|
- spec/support/models.rb
|
68
69
|
homepage: https://github.com/makandra/gemika
|
69
70
|
licenses:
|
@@ -85,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
86
|
version: '0'
|
86
87
|
requirements: []
|
87
88
|
rubyforge_project:
|
88
|
-
rubygems_version: 2.
|
89
|
+
rubygems_version: 2.7.6
|
89
90
|
signing_key:
|
90
91
|
specification_version: 4
|
91
92
|
summary: Helpers for testing Ruby gems
|