gizzard 0.6.0 → 0.6.1

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: 88a877829e6aca4260c1d12ad9bb00ed8ea7f151da522788059ee05afc09201a
4
- data.tar.gz: 2375d635f679a7276211a30864f0e07d12080072dce489c05a5968dc62bdba3c
3
+ metadata.gz: 81d147ac8288bce93fda46dada8bb6db91d2be7144cc7047699eb5ded19e2e0c
4
+ data.tar.gz: f5737b10b7bf1ad26771f6930fb3c133cf7017783680ffc6c9b78a2975dbdd9b
5
5
  SHA512:
6
- metadata.gz: f10dbad52661dd6543b609f4855b2a034e866c96476ebb463a236108ef9bfdd65c2f83c5b239c92d7f3b2cc376fe51d75df4972c95a2429bf5665a82f393e89b
7
- data.tar.gz: 658122a292e333b77a2926d96445184a1067589adf1577a00f4a6665b0ccb3204df56fd7b721ef9d7f19f32a6962baad6ce870b11a96dce3d2062ae77fe40751
6
+ metadata.gz: 1d2baf44f2ace1f7d4634eeedc0e5ddf56b4aadc90446b155d03b2560329b6f43e3336a09eecf702215b551402e3c09a636399d7b16781d8c29e99ff8117a387
7
+ data.tar.gz: 5048e964a75f0402202319ce5bda883709429e616cf520dc59d458b34493c0eacc165cba92fe43b90a5ccc8dfb308e4763afd8d6ead996a20d78e994cc6ec0ac
@@ -0,0 +1,88 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ pull_request:
9
+ branches:
10
+ - main
11
+
12
+ env:
13
+ RAILS_ENV: test
14
+ DB_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
15
+
16
+ jobs:
17
+ test:
18
+ runs-on: ubuntu-latest
19
+ strategy:
20
+ fail-fast: false
21
+
22
+ matrix:
23
+ ruby:
24
+ - 2.6
25
+ - 2.7
26
+ - 3.0
27
+ - 3.1
28
+ gemfile:
29
+ - activerecord52
30
+ - activerecord61
31
+ - activerecord70
32
+ exclude: # https://github.com/sue445/activerecord-compatible_legacy_migration/blob/master/.github/workflows/test.yml
33
+ - ruby: 2.6
34
+ gemfile: activerecord70
35
+ - ruby: 3.0
36
+ gemfile: activerecord52
37
+ - ruby: 3.1
38
+ gemfile: activerecord52
39
+
40
+ services:
41
+ mysql:
42
+ image: mysql:5.7
43
+ ports:
44
+ - 3306:3306
45
+ env:
46
+ MYSQL_ROOT_PASSWORD: ${{ secrets.MYSQL_ROOT_PASSWORD }}
47
+ MYSQL_DATABASE: ${{ env.DB_NAME }}
48
+ options: >-
49
+ --health-cmd "mysqladmin ping"
50
+ --health-interval 10s
51
+ --health-timeout 5s
52
+ --health-retries 5
53
+
54
+
55
+ env:
56
+ BUNDLE_GEMFILE: /home/runner/work/gizzard/gizzard/gemfiles/${{ matrix.gemfile }}.gemfile
57
+ DB_HOST: 127.0.0.1
58
+
59
+ steps:
60
+ - uses: actions/checkout@v2
61
+
62
+ - name: Set up Ruby
63
+ uses: ruby/setup-ruby@v1
64
+ with:
65
+ ruby-version: ${{ matrix.ruby }}
66
+ bundler-cache: true
67
+
68
+ - name: set MySQL sql_mode
69
+ run: |
70
+ mysql --ssl-mode=DISABLE --protocol=tcp --host 127.0.0.1 --user=root --password=${{ env.DB_PASSWORD }} mysql <<SQL
71
+ SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';
72
+ SET GLOBAL character_set_server = 'utf8mb4';
73
+ SET GLOBAL innodb_file_per_table = 1;
74
+ SET GLOBAL innodb_large_prefix = ON;
75
+ SQL
76
+
77
+ - name: set ENV
78
+ run: |
79
+ echo "DB_PORT=${{ job.services.mysql.ports[3306] }}" >> $GITHUB_ENV
80
+
81
+ - name: Setup DB
82
+ run: |
83
+ ./scripts/setup.sh
84
+ continue-on-error: ${{ matrix.allow_failures == 'true' }}
85
+
86
+ - name: Run tests
87
+ run: bundle exec rspec
88
+ continue-on-error: ${{ matrix.allow_failures == 'true' }}
data/.gitignore CHANGED
@@ -12,3 +12,5 @@
12
12
 
13
13
  vendor/
14
14
  Gemfile.lock
15
+
16
+ gemfiles/*.gemfile.lock
data/Appraisals ADDED
@@ -0,0 +1,13 @@
1
+ appraise 'activerecord52' do
2
+ gem 'activerecord', '~> 5.2'
3
+ end
4
+
5
+ appraise 'activerecord61' do
6
+ gem 'activerecord', '~> 6.1'
7
+ end
8
+
9
+ if RUBY_VERSION >= '2.7.0'
10
+ appraise 'activerecord70' do
11
+ gem 'activerecord', '~> 7.0'
12
+ end
13
+ end
data/README.md CHANGED
@@ -31,6 +31,15 @@ class ApplicationRecord < ActiveRecord::Base
31
31
  end
32
32
  ```
33
33
 
34
+ ## Run Test
35
+
36
+ ```
37
+ $ bundle install
38
+ $ docker-compose up -d
39
+ $ ./scripts/setup.sh
40
+ $ bundle exec rspec
41
+ ```
42
+
34
43
  ## Development
35
44
 
36
45
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -0,0 +1,25 @@
1
+ version: '3.9'
2
+
3
+ x-mysql: &mysql
4
+ image: mysql:5.7
5
+ container_name: gizzard_mysql57
6
+ environment:
7
+ MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-5y8m2jzTamDS6M85ateGrA6pihhyCm}
8
+ platform: linux/x86_64
9
+ ports:
10
+ - 127.0.0.1:${DB_PORT:-33306}:3306
11
+ volumes:
12
+ - mysql:/var/lib/mysql
13
+ command: >
14
+ mysqld
15
+ --sql-mode=NO_ENGINE_SUBSTITUTION
16
+ --character-set-server=utf8mb4
17
+ --innodb-file-per-table=1
18
+ --innodb-large-prefix
19
+
20
+ services:
21
+ mysql:
22
+ <<: *mysql
23
+
24
+ volumes:
25
+ mysql:
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_RETRY: "1"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 5.2"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 6.1"
6
+
7
+ gemspec path: "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 7.0"
6
+
7
+ gemspec path: "../"
data/gizzard.gemspec CHANGED
@@ -25,6 +25,12 @@ Gem::Specification.new do |spec|
25
25
  spec.add_dependency "activerecord", ">= 5.2"
26
26
  spec.add_dependency "activesupport", ">= 5.2"
27
27
 
28
+ spec.add_development_dependency "ridgepole"
29
+ spec.add_development_dependency "database_cleaner-active_record"
30
+ spec.add_development_dependency "mysql2"
31
+ spec.add_development_dependency "psych", "~> 3.1"
32
+ spec.add_development_dependency "standalone_activerecord_boot_loader"
33
+ spec.add_development_dependency "appraisal"
28
34
  spec.add_development_dependency "bundler"
29
35
  spec.add_development_dependency "rake", ">= 12.3.3"
30
36
  spec.add_development_dependency "rspec", "~> 3.0"
data/lib/gizzard/mysql.rb CHANGED
@@ -78,7 +78,7 @@ module Gizzard
78
78
 
79
79
  c = connection
80
80
  joins <<-SQL
81
- #{join} #{c.quote_table_name(join_table_name)} #{index_hint} (#{Array(indexes).join(', ')}) ON #{c.quote_table_name(table_name)}.#{c.quote_column_name(relation.association_primary_key)} = #{c.quote_table_name(join_table_name)}.#{c.quote_column_name(relation.foreign_key)}
81
+ #{join} #{c.quote_table_name(join_table_name)} #{index_hint}(#{Array(indexes).join(', ')}) ON #{c.quote_table_name(table_name)}.#{c.quote_column_name(relation.association_primary_key)} = #{c.quote_table_name(join_table_name)}.#{c.quote_column_name(relation.foreign_key)}
82
82
  SQL
83
83
  end
84
84
  end
@@ -1,3 +1,3 @@
1
1
  module Gizzard
2
- VERSION = "0.6.0"
2
+ VERSION = "0.6.1"
3
3
  end
data/scripts/setup.sh ADDED
@@ -0,0 +1,25 @@
1
+ #!/bin/bash
2
+ set -ex
3
+
4
+ CURRENT=$(cd $(dirname $0);pwd)
5
+ DOCKER_MYSQL_PORT=$(docker port gizzard_mysql57 3306 2>/dev/null | cut -f 2 -d ':')
6
+ DOCKER_MYSQL_PORT=${DOCKER_MYSQL_PORT:-3306}
7
+
8
+ export DB_HOST=${DB_HOST:-127.0.0.1}
9
+ export DB_PORT=${DB_PORT:-${DOCKER_MYSQL_PORT}}
10
+ export DB_NAME=${DB_NAME:-gizzard_test}
11
+ export DB_USER=${DB_USER:-root}
12
+ export DB_PASSWORD=${DB_PASSWORD:-5y8m2jzTamDS6M85ateGrA6pihhyCm}
13
+
14
+ mysql \
15
+ -u ${DB_USER} \
16
+ -h ${DB_HOST} \
17
+ -p${DB_PASSWORD} \
18
+ --port ${DB_PORT} \
19
+ -e "CREATE DATABASE IF NOT EXISTS ${DB_NAME}"
20
+
21
+ bundle exec ridgepole \
22
+ -c ${CURRENT}/../spec/dummy/config/database.yml \
23
+ --apply \
24
+ -f ${CURRENT}/../spec/dummy/db/Schemafile \
25
+ -E test
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gizzard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Takahiro Ooishi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-25 00:00:00.000000000 Z
11
+ date: 2022-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -38,6 +38,90 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '5.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: ridgepole
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: database_cleaner-active_record
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: mysql2
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: psych
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: standalone_activerecord_boot_loader
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: appraisal
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
41
125
  - !ruby/object:Gem::Dependency
42
126
  name: bundler
43
127
  requirement: !ruby/object:Gem::Requirement
@@ -87,20 +171,28 @@ executables: []
87
171
  extensions: []
88
172
  extra_rdoc_files: []
89
173
  files:
174
+ - ".github/workflows/main.yml"
90
175
  - ".gitignore"
91
176
  - ".rspec"
92
177
  - ".travis.yml"
178
+ - Appraisals
93
179
  - Gemfile
94
180
  - LICENSE
95
181
  - README.md
96
182
  - Rakefile
97
183
  - bin/console
98
184
  - bin/setup
185
+ - docker-compose.yml
186
+ - gemfiles/.bundle/config
187
+ - gemfiles/activerecord52.gemfile
188
+ - gemfiles/activerecord61.gemfile
189
+ - gemfiles/activerecord70.gemfile
99
190
  - gizzard.gemspec
100
191
  - lib/gizzard.rb
101
192
  - lib/gizzard/base.rb
102
193
  - lib/gizzard/mysql.rb
103
194
  - lib/gizzard/version.rb
195
+ - scripts/setup.sh
104
196
  homepage: https://github.com/taka0125/gizzard
105
197
  licenses: []
106
198
  metadata: {}
@@ -119,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
211
  - !ruby/object:Gem::Version
120
212
  version: '0'
121
213
  requirements: []
122
- rubygems_version: 3.0.3
214
+ rubygems_version: 3.2.22
123
215
  signing_key:
124
216
  specification_version: 4
125
217
  summary: Often use snippet for ActiveRecord.