minidusen 0.9 → 0.10

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: df0d16794c6dcdd8839d57a82992b650b0c2a78480ca33d90f597d5612a516e2
4
- data.tar.gz: a8c51d1351e1f1debe8696de98154dabd0bdfd5374fc6a6f7d376c66c3a84c80
3
+ metadata.gz: ae10acf35f7691ee887031d0dcccc455925315768b876a7eea142b4c84bc423b
4
+ data.tar.gz: '061389e69fadb5cc996ca2e35ccf891c9bc31a8abb70296e05f11d9a4cb0a428'
5
5
  SHA512:
6
- metadata.gz: 15bcb4c874b0c9901a4cfe6411b94ed4fc11c266b357fca24bc754556dad2090b3eb8bc3e91b67b4c95eb932945747a2b2636f476a2b5d59865355ad40a17854
7
- data.tar.gz: 39d4ebed636e377090d6edef268f5caa8b5e17d8f6847be5ee03f60df3ba1b69fcdc689cea08700576529a16cfcd70e8e8bceeb6b987a2cb24e34e7cf4a626ba
6
+ metadata.gz: 5e9f51c132887a664558f78deac9c029395bc7f4078bbba3c3f714fef4ce073963febeab68335235b18a0b97ea0ed39af33b539c9cbaf6dc2ebe2a57adea2b66
7
+ data.tar.gz: d9451548713b09f93cf80e97b9cfaa47b519b3763cf1c0442e48a289cef85a81b43f5a7808083abe96577b87f6b4f6740a5b8729b658d812856c43f5e27bd8ea
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: Tests
3
+ 'on':
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - master
10
+ jobs:
11
+ test_mysql:
12
+ runs-on: ubuntu-20.04
13
+ services:
14
+ mysql:
15
+ image: mysql:5.6
16
+ env:
17
+ MYSQL_ROOT_PASSWORD: password
18
+ options: --health-cmd "mysqladmin ping" --health-interval 10s --health-timeout
19
+ 5s --health-retries 5
20
+ ports:
21
+ - 3306:3306
22
+ strategy:
23
+ fail-fast: false
24
+ matrix:
25
+ include:
26
+ - ruby: 2.5.8
27
+ gemfile: Gemfile.4.2.mysql2
28
+ - ruby: 2.5.8
29
+ gemfile: Gemfile.5.2.mysql2
30
+ - ruby: 2.5.8
31
+ gemfile: Gemfile.6.0.mysql2
32
+ - ruby: 2.5.8
33
+ gemfile: Gemfile.6.1.mysql2
34
+ - ruby: 3.0.0
35
+ gemfile: Gemfile.6.1.mysql2
36
+ env:
37
+ BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
38
+ steps:
39
+ - uses: actions/checkout@v2
40
+ - name: Install ruby
41
+ uses: ruby/setup-ruby@v1
42
+ with:
43
+ ruby-version: "${{ matrix.ruby }}"
44
+ - name: Setup database
45
+ run: |
46
+ sudo apt-get install -y mysql-client libmariadbclient-dev
47
+ mysql -e 'create database IF NOT EXISTS test;' -u root --password=password -P 3306 -h 127.0.0.1
48
+ - name: Bundle
49
+ run: |
50
+ gem install bundler:1.17.3
51
+ bundle install --no-deployment
52
+ - name: Run tests
53
+ run: bundle exec rspec
54
+ test_pg:
55
+ runs-on: ubuntu-20.04
56
+ services:
57
+ postgres:
58
+ image: postgres
59
+ env:
60
+ POSTGRES_PASSWORD: postgres
61
+ options: "--health-cmd pg_isready --health-interval 10s --health-timeout 5s
62
+ --health-retries 5"
63
+ ports:
64
+ - 5432:5432
65
+ strategy:
66
+ fail-fast: false
67
+ matrix:
68
+ include:
69
+ - ruby: 2.5.8
70
+ gemfile: Gemfile.4.2.pg
71
+ - ruby: 2.5.8
72
+ gemfile: Gemfile.5.2.pg
73
+ - ruby: 2.5.8
74
+ gemfile: Gemfile.6.0.pg
75
+ - ruby: 2.5.8
76
+ gemfile: Gemfile.6.1.pg
77
+ - ruby: 3.0.0
78
+ gemfile: Gemfile.6.1.pg
79
+ env:
80
+ BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
81
+ steps:
82
+ - uses: actions/checkout@v2
83
+ - name: Install ruby
84
+ uses: ruby/setup-ruby@v1
85
+ with:
86
+ ruby-version: "${{ matrix.ruby }}"
87
+ - name: Setup database
88
+ run: |
89
+ sudo apt-get install -y postgresql-client
90
+ PGPASSWORD=postgres psql -c 'create database test;' -U postgres -p 5432 -h localhost
91
+ - name: Bundle
92
+ run: |
93
+ gem install bundler:1.17.3
94
+ bundle install --no-deployment
95
+ - name: Run tests
96
+ run: bundle exec rspec
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.2.4
1
+ 2.5.8
data/CHANGELOG.md CHANGED
@@ -12,6 +12,26 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html
12
12
 
13
13
  ### Compatible changes
14
14
 
15
+
16
+ ## 0.10.0 2021-08-11
17
+
18
+ ### Breaking changes
19
+
20
+ -
21
+
22
+ ### Compatible changes
23
+
24
+ - Remove Rails 3.2 and Ruby < 2.5 from test matrix
25
+ - Add Rails 6.1 and Ruby 3.0 to test matrix
26
+
27
+ ## 0.9.0 2019-06-12
28
+
29
+ ### Breaking changes
30
+
31
+ -
32
+
33
+ ### Compatible changes
34
+
15
35
  - CHANGELOG to satisfy [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) format.
16
36
  - Use Rails 5.2 for tests instead of Rails 5.0
17
37
  - Added Ruby 2.5.3 to test matrix
data/Gemfile.4.2.mysql2 CHANGED
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Runtime dependencies
4
4
  gem 'activerecord', '~>4.2.1'
5
- gem 'mysql2', '~> 0.3.17'
5
+ gem 'mysql2', '~> 0.4.10'
6
6
 
7
7
  # Development dependencies
8
8
  gem 'database_cleaner'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- minidusen (0.9)
4
+ minidusen (0.10)
5
5
  activerecord (>= 3.2)
6
6
  activesupport (>= 3.2)
7
7
  edge_rider (>= 0.2.5)
@@ -27,13 +27,13 @@ GEM
27
27
  byebug (9.0.5)
28
28
  database_cleaner (1.5.3)
29
29
  diff-lcs (1.2.5)
30
- edge_rider (1.0.0)
31
- activerecord
32
- gemika (0.3.2)
30
+ edge_rider (1.1.0)
31
+ activerecord (>= 3.2)
32
+ gemika (0.5.0)
33
33
  i18n (0.7.0)
34
- json (1.8.3)
34
+ json (1.8.6)
35
35
  minitest (5.9.0)
36
- mysql2 (0.3.21)
36
+ mysql2 (0.4.10)
37
37
  rake (11.3.0)
38
38
  rspec (3.5.0)
39
39
  rspec-core (~> 3.5.0)
@@ -61,7 +61,7 @@ DEPENDENCIES
61
61
  database_cleaner
62
62
  gemika
63
63
  minidusen!
64
- mysql2 (~> 0.3.17)
64
+ mysql2 (~> 0.4.10)
65
65
  rake
66
66
  rspec (~> 3.4)
67
67
 
data/Gemfile.4.2.pg.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- minidusen (0.9)
4
+ minidusen (0.10)
5
5
  activerecord (>= 3.2)
6
6
  activesupport (>= 3.2)
7
7
  edge_rider (>= 0.2.5)
@@ -27,11 +27,11 @@ GEM
27
27
  byebug (9.0.5)
28
28
  database_cleaner (1.5.3)
29
29
  diff-lcs (1.2.5)
30
- edge_rider (1.0.0)
31
- activerecord
32
- gemika (0.3.2)
30
+ edge_rider (1.1.0)
31
+ activerecord (>= 3.2)
32
+ gemika (0.5.0)
33
33
  i18n (0.7.0)
34
- json (1.8.3)
34
+ json (1.8.6)
35
35
  minitest (5.9.0)
36
36
  pg (0.19.0)
37
37
  rake (11.3.0)
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- minidusen (0.9)
4
+ minidusen (0.10)
5
5
  activerecord (>= 3.2)
6
6
  activesupport (>= 3.2)
7
7
  edge_rider (>= 0.2.5)
@@ -25,13 +25,13 @@ GEM
25
25
  concurrent-ruby (1.1.5)
26
26
  database_cleaner (1.7.0)
27
27
  diff-lcs (1.2.5)
28
- edge_rider (1.0.0)
29
- activerecord
30
- gemika (0.3.2)
28
+ edge_rider (1.1.0)
29
+ activerecord (>= 3.2)
30
+ gemika (0.5.0)
31
31
  i18n (1.5.1)
32
32
  concurrent-ruby (~> 1.0)
33
33
  minitest (5.11.3)
34
- mysql2 (0.4.4)
34
+ mysql2 (0.4.10)
35
35
  rake (11.3.0)
36
36
  rspec (3.5.0)
37
37
  rspec-core (~> 3.5.0)
data/Gemfile.5.2.pg.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- minidusen (0.9)
4
+ minidusen (0.10)
5
5
  activerecord (>= 3.2)
6
6
  activesupport (>= 3.2)
7
7
  edge_rider (>= 0.2.5)
@@ -25,9 +25,9 @@ GEM
25
25
  concurrent-ruby (1.1.5)
26
26
  database_cleaner (1.7.0)
27
27
  diff-lcs (1.2.5)
28
- edge_rider (1.0.0)
29
- activerecord
30
- gemika (0.3.2)
28
+ edge_rider (1.1.0)
29
+ activerecord (>= 3.2)
30
+ gemika (0.5.0)
31
31
  i18n (1.5.1)
32
32
  concurrent-ruby (~> 1.0)
33
33
  minitest (5.11.3)
@@ -65,4 +65,4 @@ DEPENDENCIES
65
65
  rspec (~> 3.5)
66
66
 
67
67
  BUNDLED WITH
68
- 1.17.3
68
+ 2.2.3
data/Gemfile.6.0.mysql2 CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Runtime dependencies
4
- gem 'activerecord', '~>6.0.0.rc1'
4
+ gem 'activerecord', '~>6.0.0'
5
5
  gem 'mysql2', '~>0.4.4'
6
6
 
7
7
  # Development dependencies
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- minidusen (0.9)
4
+ minidusen (0.10)
5
5
  activerecord (>= 3.2)
6
6
  activesupport (>= 3.2)
7
7
  edge_rider (>= 0.2.5)
@@ -9,27 +9,27 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activemodel (6.0.0.rc1)
13
- activesupport (= 6.0.0.rc1)
14
- activerecord (6.0.0.rc1)
15
- activemodel (= 6.0.0.rc1)
16
- activesupport (= 6.0.0.rc1)
17
- activesupport (6.0.0.rc1)
12
+ activemodel (6.0.3.4)
13
+ activesupport (= 6.0.3.4)
14
+ activerecord (6.0.3.4)
15
+ activemodel (= 6.0.3.4)
16
+ activesupport (= 6.0.3.4)
17
+ activesupport (6.0.3.4)
18
18
  concurrent-ruby (~> 1.0, >= 1.0.2)
19
19
  i18n (>= 0.7, < 2)
20
20
  minitest (~> 5.1)
21
21
  tzinfo (~> 1.1)
22
- zeitwerk (~> 2.1, >= 2.1.4)
22
+ zeitwerk (~> 2.2, >= 2.2.2)
23
23
  byebug (11.0.1)
24
- concurrent-ruby (1.1.5)
24
+ concurrent-ruby (1.1.7)
25
25
  database_cleaner (1.7.0)
26
26
  diff-lcs (1.3)
27
- edge_rider (1.0.0)
28
- activerecord
29
- gemika (0.3.4)
30
- i18n (1.6.0)
27
+ edge_rider (1.1.0)
28
+ activerecord (>= 3.2)
29
+ gemika (0.5.0)
30
+ i18n (1.8.5)
31
31
  concurrent-ruby (~> 1.0)
32
- minitest (5.11.3)
32
+ minitest (5.14.2)
33
33
  mysql2 (0.4.10)
34
34
  rake (12.3.2)
35
35
  rspec (3.8.0)
@@ -46,15 +46,15 @@ GEM
46
46
  rspec-support (~> 3.8.0)
47
47
  rspec-support (3.8.0)
48
48
  thread_safe (0.3.6)
49
- tzinfo (1.2.5)
49
+ tzinfo (1.2.7)
50
50
  thread_safe (~> 0.1)
51
- zeitwerk (2.1.6)
51
+ zeitwerk (2.4.0)
52
52
 
53
53
  PLATFORMS
54
54
  ruby
55
55
 
56
56
  DEPENDENCIES
57
- activerecord (~> 6.0.0.rc1)
57
+ activerecord (~> 6.0.0)
58
58
  byebug
59
59
  database_cleaner
60
60
  gemika
data/Gemfile.6.0.pg CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Runtime dependencies
4
- gem 'activerecord', '~>6.0.0.rc1'
4
+ gem 'activerecord', '~>6.0.0'
5
5
  gem 'pg', '~>0.18.4'
6
6
 
7
7
  # Development dependendcies
data/Gemfile.6.0.pg.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- minidusen (0.9)
4
+ minidusen (0.10)
5
5
  activerecord (>= 3.2)
6
6
  activesupport (>= 3.2)
7
7
  edge_rider (>= 0.2.5)
@@ -9,27 +9,27 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- activemodel (6.0.0.rc1)
13
- activesupport (= 6.0.0.rc1)
14
- activerecord (6.0.0.rc1)
15
- activemodel (= 6.0.0.rc1)
16
- activesupport (= 6.0.0.rc1)
17
- activesupport (6.0.0.rc1)
12
+ activemodel (6.0.3.4)
13
+ activesupport (= 6.0.3.4)
14
+ activerecord (6.0.3.4)
15
+ activemodel (= 6.0.3.4)
16
+ activesupport (= 6.0.3.4)
17
+ activesupport (6.0.3.4)
18
18
  concurrent-ruby (~> 1.0, >= 1.0.2)
19
19
  i18n (>= 0.7, < 2)
20
20
  minitest (~> 5.1)
21
21
  tzinfo (~> 1.1)
22
- zeitwerk (~> 2.1, >= 2.1.4)
22
+ zeitwerk (~> 2.2, >= 2.2.2)
23
23
  byebug (11.0.1)
24
- concurrent-ruby (1.1.5)
24
+ concurrent-ruby (1.1.7)
25
25
  database_cleaner (1.7.0)
26
26
  diff-lcs (1.3)
27
- edge_rider (1.0.0)
28
- activerecord
29
- gemika (0.3.4)
30
- i18n (1.6.0)
27
+ edge_rider (1.1.0)
28
+ activerecord (>= 3.2)
29
+ gemika (0.5.0)
30
+ i18n (1.8.5)
31
31
  concurrent-ruby (~> 1.0)
32
- minitest (5.11.3)
32
+ minitest (5.14.2)
33
33
  pg (0.18.4)
34
34
  rake (12.3.2)
35
35
  rspec (3.8.0)
@@ -46,15 +46,15 @@ GEM
46
46
  rspec-support (~> 3.8.0)
47
47
  rspec-support (3.8.0)
48
48
  thread_safe (0.3.6)
49
- tzinfo (1.2.5)
49
+ tzinfo (1.2.7)
50
50
  thread_safe (~> 0.1)
51
- zeitwerk (2.1.6)
51
+ zeitwerk (2.4.0)
52
52
 
53
53
  PLATFORMS
54
54
  ruby
55
55
 
56
56
  DEPENDENCIES
57
- activerecord (~> 6.0.0.rc1)
57
+ activerecord (~> 6.0.0)
58
58
  byebug
59
59
  database_cleaner
60
60
  gemika
@@ -1,14 +1,13 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Runtime dependencies
4
- gem 'activerecord', '=3.2.22'
5
- gem 'mysql2', '= 0.3.17'
6
- gem 'i18n', '=0.6.11' # 0.7 no longer builds for Ruby 1.8.7
4
+ gem 'activerecord', '~>6.1.0'
5
+ gem 'mysql2', '~>0.5'
7
6
 
8
7
  # Development dependencies
9
8
  gem 'rake'
10
9
  gem 'database_cleaner'
11
- gem 'rspec', '~> 3.4'
10
+ gem 'rspec', '~>3.5'
12
11
  gem 'byebug'
13
12
  gem 'gemika'
14
13
 
@@ -0,0 +1,71 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ minidusen (0.10)
5
+ activerecord (>= 3.2)
6
+ activesupport (>= 3.2)
7
+ edge_rider (>= 0.2.5)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activemodel (6.1.3)
13
+ activesupport (= 6.1.3)
14
+ activerecord (6.1.3)
15
+ activemodel (= 6.1.3)
16
+ activesupport (= 6.1.3)
17
+ activesupport (6.1.3)
18
+ concurrent-ruby (~> 1.0, >= 1.0.2)
19
+ i18n (>= 1.6, < 2)
20
+ minitest (>= 5.1)
21
+ tzinfo (~> 2.0)
22
+ zeitwerk (~> 2.3)
23
+ byebug (11.1.3)
24
+ concurrent-ruby (1.1.8)
25
+ database_cleaner (2.0.1)
26
+ database_cleaner-active_record (~> 2.0.0)
27
+ database_cleaner-active_record (2.0.0)
28
+ activerecord (>= 5.a)
29
+ database_cleaner-core (~> 2.0.0)
30
+ database_cleaner-core (2.0.1)
31
+ diff-lcs (1.4.4)
32
+ edge_rider (1.1.0)
33
+ activerecord (>= 3.2)
34
+ gemika (0.5.0)
35
+ i18n (1.8.9)
36
+ concurrent-ruby (~> 1.0)
37
+ minitest (5.14.4)
38
+ mysql2 (0.5.3)
39
+ rake (13.0.3)
40
+ rspec (3.10.0)
41
+ rspec-core (~> 3.10.0)
42
+ rspec-expectations (~> 3.10.0)
43
+ rspec-mocks (~> 3.10.0)
44
+ rspec-core (3.10.1)
45
+ rspec-support (~> 3.10.0)
46
+ rspec-expectations (3.10.1)
47
+ diff-lcs (>= 1.2.0, < 2.0)
48
+ rspec-support (~> 3.10.0)
49
+ rspec-mocks (3.10.2)
50
+ diff-lcs (>= 1.2.0, < 2.0)
51
+ rspec-support (~> 3.10.0)
52
+ rspec-support (3.10.2)
53
+ tzinfo (2.0.4)
54
+ concurrent-ruby (~> 1.0)
55
+ zeitwerk (2.4.2)
56
+
57
+ PLATFORMS
58
+ x86_64-linux
59
+
60
+ DEPENDENCIES
61
+ activerecord (~> 6.1.0)
62
+ byebug
63
+ database_cleaner
64
+ gemika
65
+ minidusen!
66
+ mysql2 (~> 0.5)
67
+ rake
68
+ rspec (~> 3.5)
69
+
70
+ BUNDLED WITH
71
+ 2.2.24
data/Gemfile.6.1.pg ADDED
@@ -0,0 +1,15 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Runtime dependencies
4
+ gem 'activerecord', '~>6.1.0'
5
+ gem 'pg', '~>1.1'
6
+
7
+ # Development dependendcies
8
+ gem 'rake'
9
+ gem 'database_cleaner'
10
+ gem 'rspec', '~>3.5'
11
+ gem 'byebug'
12
+ gem 'gemika'
13
+
14
+ # Gem under test
15
+ gem 'minidusen', :path => '.'
@@ -0,0 +1,71 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ minidusen (0.10)
5
+ activerecord (>= 3.2)
6
+ activesupport (>= 3.2)
7
+ edge_rider (>= 0.2.5)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ activemodel (6.1.3)
13
+ activesupport (= 6.1.3)
14
+ activerecord (6.1.3)
15
+ activemodel (= 6.1.3)
16
+ activesupport (= 6.1.3)
17
+ activesupport (6.1.3)
18
+ concurrent-ruby (~> 1.0, >= 1.0.2)
19
+ i18n (>= 1.6, < 2)
20
+ minitest (>= 5.1)
21
+ tzinfo (~> 2.0)
22
+ zeitwerk (~> 2.3)
23
+ byebug (11.1.3)
24
+ concurrent-ruby (1.1.8)
25
+ database_cleaner (2.0.1)
26
+ database_cleaner-active_record (~> 2.0.0)
27
+ database_cleaner-active_record (2.0.0)
28
+ activerecord (>= 5.a)
29
+ database_cleaner-core (~> 2.0.0)
30
+ database_cleaner-core (2.0.1)
31
+ diff-lcs (1.4.4)
32
+ edge_rider (1.1.0)
33
+ activerecord (>= 3.2)
34
+ gemika (0.5.0)
35
+ i18n (1.8.9)
36
+ concurrent-ruby (~> 1.0)
37
+ minitest (5.14.4)
38
+ pg (1.2.3)
39
+ rake (13.0.3)
40
+ rspec (3.10.0)
41
+ rspec-core (~> 3.10.0)
42
+ rspec-expectations (~> 3.10.0)
43
+ rspec-mocks (~> 3.10.0)
44
+ rspec-core (3.10.1)
45
+ rspec-support (~> 3.10.0)
46
+ rspec-expectations (3.10.1)
47
+ diff-lcs (>= 1.2.0, < 2.0)
48
+ rspec-support (~> 3.10.0)
49
+ rspec-mocks (3.10.2)
50
+ diff-lcs (>= 1.2.0, < 2.0)
51
+ rspec-support (~> 3.10.0)
52
+ rspec-support (3.10.2)
53
+ tzinfo (2.0.4)
54
+ concurrent-ruby (~> 1.0)
55
+ zeitwerk (2.4.2)
56
+
57
+ PLATFORMS
58
+ x86_64-linux
59
+
60
+ DEPENDENCIES
61
+ activerecord (~> 6.1.0)
62
+ byebug
63
+ database_cleaner
64
+ gemika
65
+ minidusen!
66
+ pg (~> 1.1)
67
+ rake
68
+ rspec (~> 3.5)
69
+
70
+ BUNDLED WITH
71
+ 2.2.24
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- Minidusen [![Build Status](https://travis-ci.org/makandra/minidusen.svg?branch=master)](https://travis-ci.org/makandra/minidusen)
1
+ Minidusen [![Tests](https://github.com/makandra/minidusen/workflows/Tests/badge.svg)](https://github.com/makandra/minidusen/actions)
2
2
  =========
3
3
 
4
4
  Low-tech search solution for ActiveRecord with MySQL or PostgreSQL
@@ -53,7 +53,7 @@ Basic Usage
53
53
  Our example will be a simple address book:
54
54
 
55
55
  ```ruby
56
- class Contact < ActiveRecord::Base
56
+ class Contact < ApplicationRecord
57
57
  validates_presence_of :name, :street, :city, :email
58
58
  end
59
59
  ```
@@ -68,7 +68,6 @@ class ContactFilter
68
68
  columns = [:name, :email]
69
69
  scope.where_like(columns => phrases)
70
70
  end
71
-
72
71
  end
73
72
  ```
74
73
 
@@ -136,8 +135,45 @@ You can also use `where_like` to find all the records *not* matching some phrase
136
135
  Contact.where_like(name: 'foo', negate: true)
137
136
  ```
138
137
 
139
- Processing queries for qualified fields
140
- ---------------------------------------
138
+ Filtering associated records
139
+ ----------------------------
140
+
141
+ Minidusen lets you find text in associated records.
142
+
143
+ Assume the following model where a `Contact` record may be associated with a `Group` record:
144
+
145
+ ```ruby
146
+ class Contact < ApplicationRecord
147
+ belongs_to :group
148
+
149
+ validates_presence_of :name, :street, :city, :email
150
+ end
151
+
152
+ class Group < ApplicationRecord
153
+ has_many :contacts
154
+
155
+ validates_presence_of :name
156
+ end
157
+ ```
158
+
159
+ We can filter contacts by their group name by joining the `groups` table and filtering on a joined column.
160
+ Note how the joined column is qualified as `groups.name` (rather than just `name`):
161
+
162
+ ```ruby
163
+ class ContactFilter
164
+ include Minidusen::Filter
165
+
166
+ filter :text do |scope, phrases|
167
+ columns = [:name, :email, 'groups.name']
168
+ scope.includes(:group).where_like(columns => phrases)
169
+ end
170
+ end
171
+ ```
172
+
173
+
174
+
175
+ Supporting qualified field syntax
176
+ ---------------------------------
141
177
 
142
178
  Google supports queries like `filetype:pdf` that filters records by some criteria without performing a full text search. Minidusen gives you a simple way to support such search syntax.
143
179
 
@@ -183,10 +219,10 @@ Supported Rails versions
183
219
 
184
220
  Minidusen is tested on:
185
221
 
186
- - Rails 3.2
187
222
  - Rails 4.2
188
223
  - Rails 5.2
189
224
  - Rails 6.0
225
+ - Rails 6.1
190
226
  - MySQL 5.6
191
227
  - PostgreSQL
192
228
 
@@ -197,7 +233,7 @@ Development
197
233
  -----------
198
234
 
199
235
  - There are tests in `spec`. We only accept PRs with tests.
200
- - We currently develop using Ruby 2.2.4 (see `.ruby-version`) since that version works for all versions of ActiveRecord that we support. Travis CI will test additional Ruby versions (2.1.8 and 2.3.1).
236
+ - We currently develop using the Ruby version in `.ruby-version`. It is required to change the Ruby Version to cover all Rails version or just use Gitlab CI.
201
237
  - Put your database credentials into `spec/support/database.yml`. There's a `database.sample.yml` you can use as a template.
202
238
  - Create a database `minidusen_test` in both MySQL and PostgreSQL.
203
239
  - There are gem bundles in the project root for each combination of ActiveRecord version and database type that we support.
@@ -1,3 +1,3 @@
1
1
  module Minidusen
2
- VERSION = '0.9'
2
+ VERSION = '0.10'
3
3
  end
@@ -0,0 +1,13 @@
1
+ mysql:
2
+ database: test
3
+ username: root
4
+ password: password
5
+ host: 127.0.0.1
6
+ port: 3306
7
+
8
+ postgresql:
9
+ database: test
10
+ host: localhost
11
+ username: postgres
12
+ password: postgres
13
+ port: 5432
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minidusen
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.9'
4
+ version: '0.10'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henning Koch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-12 00:00:00.000000000 Z
11
+ date: 2021-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -58,13 +58,11 @@ executables: []
58
58
  extensions: []
59
59
  extra_rdoc_files: []
60
60
  files:
61
+ - ".github/workflows/test.yml"
61
62
  - ".gitignore"
62
63
  - ".rspec"
63
64
  - ".ruby-version"
64
- - ".travis.yml"
65
65
  - CHANGELOG.md
66
- - Gemfile.3.2.mysql2
67
- - Gemfile.3.2.mysql2.lock
68
66
  - Gemfile.4.2.mysql2
69
67
  - Gemfile.4.2.mysql2.lock
70
68
  - Gemfile.4.2.pg
@@ -77,6 +75,10 @@ files:
77
75
  - Gemfile.6.0.mysql2.lock
78
76
  - Gemfile.6.0.pg
79
77
  - Gemfile.6.0.pg.lock
78
+ - Gemfile.6.1.mysql2
79
+ - Gemfile.6.1.mysql2.lock
80
+ - Gemfile.6.1.pg
81
+ - Gemfile.6.1.pg.lock
80
82
  - LICENSE
81
83
  - README.md
82
84
  - Rakefile
@@ -97,9 +99,9 @@ files:
97
99
  - spec/minidusen/query_spec.rb
98
100
  - spec/minidusen/util_spec.rb
99
101
  - spec/spec_helper.rb
102
+ - spec/support/database.github.yml
100
103
  - spec/support/database.rb
101
104
  - spec/support/database.sample.yml
102
- - spec/support/database.travis.yml
103
105
  - spec/support/models.rb
104
106
  homepage: https://github.com/makandra/minidusen
105
107
  licenses:
@@ -120,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
122
  - !ruby/object:Gem::Version
121
123
  version: '0'
122
124
  requirements: []
123
- rubygems_version: 3.0.3
125
+ rubygems_version: 3.2.3
124
126
  signing_key:
125
127
  specification_version: 4
126
128
  summary: Low-tech search for ActiveRecord with MySQL or PostgreSQL
data/.travis.yml DELETED
@@ -1,67 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 2.1.8
5
- - 2.2.4
6
- - 2.3.1
7
- - 2.5.3
8
-
9
- gemfile:
10
- - Gemfile.3.2.mysql2
11
- - Gemfile.4.2.mysql2
12
- - Gemfile.4.2.pg
13
- - Gemfile.5.2.mysql2
14
- - Gemfile.5.2.pg
15
- - Gemfile.6.0.mysql2
16
- - Gemfile.6.0.pg
17
-
18
- before_script:
19
- - psql -c 'create database minidusen_test;' -U postgres
20
- - mysql -e 'create database IF NOT EXISTS minidusen_test;'
21
-
22
- script: bundle exec rspec spec
23
-
24
- sudo: false
25
-
26
- cache: bundler
27
-
28
- notifications:
29
- email:
30
- - fail@makandra.de
31
-
32
- install:
33
- # Replace default Travis CI bundler script with a version that doesn't
34
- # explode when lockfile doesn't match recently bumped version
35
- - bundle install --no-deployment --jobs=3 --retry=3 --path=${BUNDLE_PATH:-vendor/bundle}
36
-
37
- addons:
38
- postgresql: 9.3
39
-
40
- matrix:
41
- exclude:
42
- # Rails 3.2
43
- - rvm: 2.5.3
44
- gemfile: Gemfile.3.2.mysql2
45
- # Rails 4.2
46
- - rvm: 2.5.3
47
- gemfile: Gemfile.4.2.mysql2
48
- - rvm: 2.5.3
49
- gemfile: Gemfile.4.2.pg
50
- # Rails 5.2
51
- - rvm: 2.1.8
52
- gemfile: Gemfile.5.2.mysql2
53
- - rvm: 2.1.8
54
- gemfile: Gemfile.5.2.pg
55
- # Rails 6.0
56
- - rvm: 2.1.8
57
- gemfile: Gemfile.6.0.mysql2
58
- - rvm: 2.1.8
59
- gemfile: Gemfile.6.0.pg
60
- - rvm: 2.2.4
61
- gemfile: Gemfile.6.0.mysql2
62
- - rvm: 2.2.4
63
- gemfile: Gemfile.6.0.pg
64
- - rvm: 2.3.1
65
- gemfile: Gemfile.6.0.mysql2
66
- - rvm: 2.3.1
67
- gemfile: Gemfile.6.0.pg
@@ -1,65 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- minidusen (0.9)
5
- activerecord (>= 3.2)
6
- activesupport (>= 3.2)
7
- edge_rider (>= 0.2.5)
8
-
9
- GEM
10
- remote: https://rubygems.org/
11
- specs:
12
- activemodel (3.2.22)
13
- activesupport (= 3.2.22)
14
- builder (~> 3.0.0)
15
- activerecord (3.2.22)
16
- activemodel (= 3.2.22)
17
- activesupport (= 3.2.22)
18
- arel (~> 3.0.2)
19
- tzinfo (~> 0.3.29)
20
- activesupport (3.2.22)
21
- i18n (~> 0.6, >= 0.6.4)
22
- multi_json (~> 1.0)
23
- arel (3.0.3)
24
- builder (3.0.4)
25
- byebug (9.0.5)
26
- database_cleaner (1.5.3)
27
- diff-lcs (1.2.5)
28
- edge_rider (1.0.0)
29
- activerecord
30
- gemika (0.3.2)
31
- i18n (0.6.11)
32
- multi_json (1.12.1)
33
- mysql2 (0.3.17)
34
- rake (11.3.0)
35
- rspec (3.5.0)
36
- rspec-core (~> 3.5.0)
37
- rspec-expectations (~> 3.5.0)
38
- rspec-mocks (~> 3.5.0)
39
- rspec-core (3.5.3)
40
- rspec-support (~> 3.5.0)
41
- rspec-expectations (3.5.0)
42
- diff-lcs (>= 1.2.0, < 2.0)
43
- rspec-support (~> 3.5.0)
44
- rspec-mocks (3.5.0)
45
- diff-lcs (>= 1.2.0, < 2.0)
46
- rspec-support (~> 3.5.0)
47
- rspec-support (3.5.0)
48
- tzinfo (0.3.51)
49
-
50
- PLATFORMS
51
- ruby
52
-
53
- DEPENDENCIES
54
- activerecord (= 3.2.22)
55
- byebug
56
- database_cleaner
57
- gemika
58
- i18n (= 0.6.11)
59
- minidusen!
60
- mysql2 (= 0.3.17)
61
- rake
62
- rspec (~> 3.4)
63
-
64
- BUNDLED WITH
65
- 1.17.3
@@ -1,9 +0,0 @@
1
- mysql:
2
- database: minidusen_test
3
- username: travis
4
- password:
5
-
6
- postgresql:
7
- database: minidusen_test
8
- user: postgres
9
- password: