arel_extensions 1.5.3 → 2.0.0.rc3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +2 -1
  3. data/.gitignore +6 -7
  4. data/.rubocop.yml +3 -67
  5. data/.travis/oracle/download.js +152 -0
  6. data/.travis/oracle/download.sh +30 -0
  7. data/.travis/oracle/download_ojdbc.js +116 -0
  8. data/.travis/oracle/install.sh +34 -0
  9. data/.travis/setup_accounts.sh +9 -0
  10. data/.travis/sqlite3/extension-functions.sh +6 -0
  11. data/.travis.yml +223 -0
  12. data/Gemfile +28 -2
  13. data/README.md +90 -239
  14. data/Rakefile +30 -48
  15. data/TODO +1 -0
  16. data/appveyor.yml +22 -60
  17. data/arel_extensions.gemspec +14 -13
  18. data/functions.html +3 -3
  19. data/gemfiles/rails3.gemfile +10 -10
  20. data/gemfiles/rails4.gemfile +29 -0
  21. data/gemfiles/rails5_0.gemfile +29 -0
  22. data/gemfiles/rails5_1_4.gemfile +14 -14
  23. data/gemfiles/rails5_2.gemfile +14 -16
  24. data/init/mssql.sql +4 -4
  25. data/init/mysql.sql +38 -38
  26. data/init/oracle.sql +0 -0
  27. data/init/postgresql.sql +25 -24
  28. data/init/sqlite.sql +0 -0
  29. data/lib/arel_extensions/attributes.rb +3 -7
  30. data/lib/arel_extensions/boolean_functions.rb +14 -53
  31. data/lib/arel_extensions/common_sql_functions.rb +17 -16
  32. data/lib/arel_extensions/comparators.rb +28 -29
  33. data/lib/arel_extensions/date_duration.rb +13 -17
  34. data/lib/arel_extensions/insert_manager.rb +15 -18
  35. data/lib/arel_extensions/math.rb +53 -55
  36. data/lib/arel_extensions/math_functions.rb +39 -46
  37. data/lib/arel_extensions/nodes/abs.rb +1 -0
  38. data/lib/arel_extensions/nodes/blank.rb +2 -1
  39. data/lib/arel_extensions/nodes/case.rb +19 -20
  40. data/lib/arel_extensions/nodes/cast.rb +8 -10
  41. data/lib/arel_extensions/nodes/ceil.rb +1 -1
  42. data/lib/arel_extensions/nodes/coalesce.rb +4 -3
  43. data/lib/arel_extensions/nodes/collate.rb +10 -9
  44. data/lib/arel_extensions/nodes/concat.rb +18 -9
  45. data/lib/arel_extensions/nodes/date_diff.rb +26 -42
  46. data/lib/arel_extensions/nodes/duration.rb +3 -0
  47. data/lib/arel_extensions/nodes/find_in_set.rb +1 -0
  48. data/lib/arel_extensions/nodes/floor.rb +1 -1
  49. data/lib/arel_extensions/nodes/format.rb +8 -35
  50. data/lib/arel_extensions/nodes/formatted_number.rb +23 -22
  51. data/lib/arel_extensions/nodes/function.rb +37 -48
  52. data/lib/arel_extensions/nodes/is_null.rb +0 -0
  53. data/lib/arel_extensions/nodes/json.rb +39 -52
  54. data/lib/arel_extensions/nodes/length.rb +0 -5
  55. data/lib/arel_extensions/nodes/levenshtein_distance.rb +1 -1
  56. data/lib/arel_extensions/nodes/locate.rb +2 -1
  57. data/lib/arel_extensions/nodes/log10.rb +2 -1
  58. data/lib/arel_extensions/nodes/matches.rb +7 -5
  59. data/lib/arel_extensions/nodes/md5.rb +1 -0
  60. data/lib/arel_extensions/nodes/power.rb +5 -5
  61. data/lib/arel_extensions/nodes/rand.rb +1 -0
  62. data/lib/arel_extensions/nodes/repeat.rb +5 -3
  63. data/lib/arel_extensions/nodes/replace.rb +8 -16
  64. data/lib/arel_extensions/nodes/round.rb +6 -5
  65. data/lib/arel_extensions/nodes/soundex.rb +15 -15
  66. data/lib/arel_extensions/nodes/std.rb +21 -18
  67. data/lib/arel_extensions/nodes/substring.rb +16 -8
  68. data/lib/arel_extensions/nodes/then.rb +1 -1
  69. data/lib/arel_extensions/nodes/trim.rb +6 -4
  70. data/lib/arel_extensions/nodes/union.rb +8 -5
  71. data/lib/arel_extensions/nodes/union_all.rb +7 -4
  72. data/lib/arel_extensions/nodes/wday.rb +4 -0
  73. data/lib/arel_extensions/nodes.rb +1 -1
  74. data/lib/arel_extensions/null_functions.rb +5 -19
  75. data/lib/arel_extensions/predications.rb +43 -44
  76. data/lib/arel_extensions/railtie.rb +5 -5
  77. data/lib/arel_extensions/set_functions.rb +7 -5
  78. data/lib/arel_extensions/string_functions.rb +36 -82
  79. data/lib/arel_extensions/tasks.rb +6 -6
  80. data/lib/arel_extensions/version.rb +1 -1
  81. data/lib/arel_extensions/visitors/ibm_db.rb +31 -24
  82. data/lib/arel_extensions/visitors/mssql.rb +192 -423
  83. data/lib/arel_extensions/visitors/mysql.rb +212 -354
  84. data/lib/arel_extensions/visitors/oracle.rb +178 -221
  85. data/lib/arel_extensions/visitors/oracle12.rb +31 -18
  86. data/lib/arel_extensions/visitors/postgresql.rb +173 -257
  87. data/lib/arel_extensions/visitors/sqlite.rb +126 -140
  88. data/lib/arel_extensions/visitors/to_sql.rb +237 -299
  89. data/lib/arel_extensions/visitors.rb +62 -83
  90. data/lib/arel_extensions.rb +31 -226
  91. data/test/database.yml +7 -15
  92. data/test/helper.rb +18 -0
  93. data/test/real_db_test.rb +117 -120
  94. data/test/support/fake_record.rb +3 -9
  95. data/test/test_comparators.rb +17 -14
  96. data/test/visitors/test_bulk_insert_oracle.rb +11 -11
  97. data/test/visitors/test_bulk_insert_sqlite.rb +13 -12
  98. data/test/visitors/test_bulk_insert_to_sql.rb +13 -11
  99. data/test/visitors/test_oracle.rb +55 -55
  100. data/test/visitors/test_to_sql.rb +226 -419
  101. data/test/with_ar/all_agnostic_test.rb +366 -721
  102. data/test/with_ar/insert_agnostic_test.rb +21 -27
  103. data/test/with_ar/test_bulk_sqlite.rb +16 -17
  104. data/test/with_ar/test_math_sqlite.rb +26 -26
  105. data/test/with_ar/test_string_mysql.rb +33 -31
  106. data/test/with_ar/test_string_sqlite.rb +34 -30
  107. metadata +37 -47
  108. data/.github/workflows/publish.yml +0 -30
  109. data/.github/workflows/release.yml +0 -30
  110. data/.github/workflows/ruby.yml +0 -403
  111. data/CONTRIBUTING.md +0 -102
  112. data/NEWS.md +0 -109
  113. data/bin/build +0 -15
  114. data/bin/compose +0 -6
  115. data/bin/publish +0 -8
  116. data/dev/arelx.dockerfile +0 -44
  117. data/dev/compose.yaml +0 -71
  118. data/dev/postgres.dockerfile +0 -5
  119. data/dev/rbenv +0 -189
  120. data/gemfiles/rails4_2.gemfile +0 -38
  121. data/gemfiles/rails5.gemfile +0 -29
  122. data/gemfiles/rails6.gemfile +0 -34
  123. data/gemfiles/rails6_1.gemfile +0 -42
  124. data/gemfiles/rails7.gemfile +0 -42
  125. data/gemfiles/rails7_1.gemfile +0 -41
  126. data/gemfiles/rails7_2.gemfile +0 -41
  127. data/gemspecs/arel_extensions-v1.gemspec +0 -27
  128. data/gemspecs/arel_extensions-v2.gemspec +0 -27
  129. data/generate_gems.sh +0 -15
  130. data/lib/arel_extensions/aliases.rb +0 -14
  131. data/lib/arel_extensions/helpers.rb +0 -62
  132. data/lib/arel_extensions/nodes/aggregate_function.rb +0 -13
  133. data/lib/arel_extensions/nodes/formatted_date.rb +0 -42
  134. data/lib/arel_extensions/nodes/rollup.rb +0 -36
  135. data/lib/arel_extensions/nodes/select.rb +0 -10
  136. data/lib/arel_extensions/nodes/sum.rb +0 -7
  137. data/lib/arel_extensions/visitors/convert_format.rb +0 -37
  138. data/lib/arel_extensions/warning.rb +0 -42
  139. data/test/arelx_test_helper.rb +0 -92
  140. data/version_v1.rb +0 -3
  141. data/version_v2.rb +0 -3
metadata CHANGED
@@ -1,31 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.3
4
+ version: 2.0.0.rc3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yann Azoury
8
8
  - Félix Bellanger
9
9
  - Julien Delporte
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2025-02-11 00:00:00.000000000 Z
13
+ date: 2019-08-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: arel
16
+ name: activerecord
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '6.0'
21
+ version: 6.0.0.rc2
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '6.0'
28
+ version: 6.0.0.rc2
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: minitest
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -40,20 +40,34 @@ dependencies:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '5.9'
43
+ - !ruby/object:Gem::Dependency
44
+ name: rdoc
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '4.0'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '4.0'
43
57
  - !ruby/object:Gem::Dependency
44
58
  name: rake
45
59
  requirement: !ruby/object:Gem::Requirement
46
60
  requirements:
47
61
  - - "~>"
48
62
  - !ruby/object:Gem::Version
49
- version: 12.3.3
63
+ version: '11'
50
64
  type: :development
51
65
  prerelease: false
52
66
  version_requirements: !ruby/object:Gem::Requirement
53
67
  requirements:
54
68
  - - "~>"
55
69
  - !ruby/object:Gem::Version
56
- version: 12.3.3
70
+ version: '11'
57
71
  description: Adds new features to Arel
58
72
  email:
59
73
  - yann.azoury@faveod.com
@@ -67,61 +81,45 @@ extra_rdoc_files:
67
81
  - functions.html
68
82
  files:
69
83
  - ".codeclimate.yml"
70
- - ".github/workflows/publish.yml"
71
- - ".github/workflows/release.yml"
72
- - ".github/workflows/ruby.yml"
73
84
  - ".gitignore"
74
85
  - ".rubocop.yml"
75
- - CONTRIBUTING.md
86
+ - ".travis.yml"
87
+ - ".travis/oracle/download.js"
88
+ - ".travis/oracle/download.sh"
89
+ - ".travis/oracle/download_ojdbc.js"
90
+ - ".travis/oracle/install.sh"
91
+ - ".travis/setup_accounts.sh"
92
+ - ".travis/sqlite3/extension-functions.sh"
76
93
  - Gemfile
77
94
  - MIT-LICENSE.txt
78
- - NEWS.md
79
95
  - README.md
80
96
  - Rakefile
81
97
  - SQL_Challenges.md
82
98
  - TODO
83
99
  - appveyor.yml
84
100
  - arel_extensions.gemspec
85
- - bin/build
86
- - bin/compose
87
- - bin/publish
88
- - dev/arelx.dockerfile
89
- - dev/compose.yaml
90
- - dev/postgres.dockerfile
91
- - dev/rbenv
92
101
  - functions.html
93
102
  - gemfiles/rails3.gemfile
94
- - gemfiles/rails4_2.gemfile
95
- - gemfiles/rails5.gemfile
103
+ - gemfiles/rails4.gemfile
104
+ - gemfiles/rails5_0.gemfile
96
105
  - gemfiles/rails5_1_4.gemfile
97
106
  - gemfiles/rails5_2.gemfile
98
- - gemfiles/rails6.gemfile
99
- - gemfiles/rails6_1.gemfile
100
- - gemfiles/rails7.gemfile
101
- - gemfiles/rails7_1.gemfile
102
- - gemfiles/rails7_2.gemfile
103
- - gemspecs/arel_extensions-v1.gemspec
104
- - gemspecs/arel_extensions-v2.gemspec
105
- - generate_gems.sh
106
107
  - init/mssql.sql
107
108
  - init/mysql.sql
108
109
  - init/oracle.sql
109
110
  - init/postgresql.sql
110
111
  - init/sqlite.sql
111
112
  - lib/arel_extensions.rb
112
- - lib/arel_extensions/aliases.rb
113
113
  - lib/arel_extensions/attributes.rb
114
114
  - lib/arel_extensions/boolean_functions.rb
115
115
  - lib/arel_extensions/common_sql_functions.rb
116
116
  - lib/arel_extensions/comparators.rb
117
117
  - lib/arel_extensions/date_duration.rb
118
- - lib/arel_extensions/helpers.rb
119
118
  - lib/arel_extensions/insert_manager.rb
120
119
  - lib/arel_extensions/math.rb
121
120
  - lib/arel_extensions/math_functions.rb
122
121
  - lib/arel_extensions/nodes.rb
123
122
  - lib/arel_extensions/nodes/abs.rb
124
- - lib/arel_extensions/nodes/aggregate_function.rb
125
123
  - lib/arel_extensions/nodes/blank.rb
126
124
  - lib/arel_extensions/nodes/case.rb
127
125
  - lib/arel_extensions/nodes/cast.rb
@@ -135,7 +133,6 @@ files:
135
133
  - lib/arel_extensions/nodes/find_in_set.rb
136
134
  - lib/arel_extensions/nodes/floor.rb
137
135
  - lib/arel_extensions/nodes/format.rb
138
- - lib/arel_extensions/nodes/formatted_date.rb
139
136
  - lib/arel_extensions/nodes/formatted_number.rb
140
137
  - lib/arel_extensions/nodes/function.rb
141
138
  - lib/arel_extensions/nodes/is_null.rb
@@ -150,13 +147,10 @@ files:
150
147
  - lib/arel_extensions/nodes/rand.rb
151
148
  - lib/arel_extensions/nodes/repeat.rb
152
149
  - lib/arel_extensions/nodes/replace.rb
153
- - lib/arel_extensions/nodes/rollup.rb
154
150
  - lib/arel_extensions/nodes/round.rb
155
- - lib/arel_extensions/nodes/select.rb
156
151
  - lib/arel_extensions/nodes/soundex.rb
157
152
  - lib/arel_extensions/nodes/std.rb
158
153
  - lib/arel_extensions/nodes/substring.rb
159
- - lib/arel_extensions/nodes/sum.rb
160
154
  - lib/arel_extensions/nodes/then.rb
161
155
  - lib/arel_extensions/nodes/trim.rb
162
156
  - lib/arel_extensions/nodes/union.rb
@@ -170,7 +164,6 @@ files:
170
164
  - lib/arel_extensions/tasks.rb
171
165
  - lib/arel_extensions/version.rb
172
166
  - lib/arel_extensions/visitors.rb
173
- - lib/arel_extensions/visitors/convert_format.rb
174
167
  - lib/arel_extensions/visitors/ibm_db.rb
175
168
  - lib/arel_extensions/visitors/mssql.rb
176
169
  - lib/arel_extensions/visitors/mysql.rb
@@ -179,9 +172,8 @@ files:
179
172
  - lib/arel_extensions/visitors/postgresql.rb
180
173
  - lib/arel_extensions/visitors/sqlite.rb
181
174
  - lib/arel_extensions/visitors/to_sql.rb
182
- - lib/arel_extensions/warning.rb
183
- - test/arelx_test_helper.rb
184
175
  - test/database.yml
176
+ - test/helper.rb
185
177
  - test/real_db_test.rb
186
178
  - test/support/alter_system_user_password.sql
187
179
  - test/support/create_oracle_enhanced_users.sql
@@ -198,13 +190,11 @@ files:
198
190
  - test/with_ar/test_math_sqlite.rb
199
191
  - test/with_ar/test_string_mysql.rb
200
192
  - test/with_ar/test_string_sqlite.rb
201
- - version_v1.rb
202
- - version_v2.rb
203
193
  homepage: https://github.com/Faveod/arel-extensions
204
194
  licenses:
205
195
  - MIT
206
196
  metadata: {}
207
- post_install_message:
197
+ post_install_message:
208
198
  rdoc_options:
209
199
  - "--main"
210
200
  - README.md
@@ -217,12 +207,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
207
  version: '0'
218
208
  required_rubygems_version: !ruby/object:Gem::Requirement
219
209
  requirements:
220
- - - ">="
210
+ - - ">"
221
211
  - !ruby/object:Gem::Version
222
- version: '0'
212
+ version: 1.3.1
223
213
  requirements: []
224
- rubygems_version: 3.4.19
225
- signing_key:
214
+ rubygems_version: 3.0.2
215
+ signing_key:
226
216
  specification_version: 4
227
217
  summary: Extending Arel
228
218
  test_files: []
@@ -1,30 +0,0 @@
1
- name: rubygems.org
2
- on:
3
- release:
4
- types: [published]
5
- workflow_dispatch:
6
-
7
- jobs:
8
- publish_gems:
9
- name: Publish to Rubygems
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v3
13
- - name: setup ruby 3.2
14
- uses: ruby/setup-ruby@v1
15
- with:
16
- ruby-version: 3.2
17
- - name: Fetch Github Release Asset
18
- uses: dsaltares/fetch-gh-release-asset@master
19
- with:
20
- file: "arel_extensions.*.gem"
21
- regex: true
22
- token: ${{ secrets.GITHUB_TOKEN }}
23
- - name: List gems
24
- run: ls -l *.gem
25
- - name: Release Gems
26
- uses: cadwallion/publish-rubygems-action@master
27
- env:
28
- GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
29
- RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
30
- RELEASE_COMMAND: bin/publish
@@ -1,30 +0,0 @@
1
- name: Release
2
- on:
3
- workflow_run:
4
- workflows: ["Build and Test"]
5
- branches: [master]
6
- types:
7
- - completed
8
-
9
- jobs:
10
- build_gems:
11
- name: Build Gemfiles
12
- runs-on: ubuntu-latest
13
- steps:
14
- - uses: actions/checkout@v3
15
- - name: setup ruby 3.2
16
- uses: ruby/setup-ruby@v1
17
- with:
18
- ruby-version: 3.2
19
- - name: build gems
20
- run: |
21
- bin/build
22
- - name: release
23
- uses: softprops/action-gh-release@v1
24
- with:
25
- tag_name: ${{ github.ref }}-${{ steps.vars.outputs.sha_short }}
26
- draft: true
27
- files: |
28
- ./arel_extensions-*.gem
29
- env:
30
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,403 +0,0 @@
1
- name: Build and Test
2
-
3
- # Ruby + Rails Compatibility Matrix from here:
4
- # https://www.fastruby.io/blog/ruby/rails/versions/compatibility-table.html
5
- #
6
- # Images are fixed to ubuntu 22.04 because jruby-9.2 is unavailable in
7
- # ubuntu-24.04 (ubuntu-latest when I tested). Also, for rails < 6, sqlite3
8
- # will not build because libsqlite3-dev is missing.
9
-
10
- on:
11
- push:
12
- branches:
13
- - master
14
- pull_request:
15
- branches:
16
- - master
17
-
18
- jobs:
19
- job_test_to_sql:
20
- name: test to_sql
21
- runs-on: ubuntu-22.04
22
- strategy:
23
- fail-fast: false
24
- matrix:
25
- versions:
26
- [
27
- { ruby: "3.3", rails: 7_2, arelx: 2 },
28
- { ruby: "3.3", rails: 7_1, arelx: 2 },
29
- { ruby: "3.3", rails: 7, arelx: 2 },
30
- { ruby: "3.3", rails: 6_1, arelx: 2 },
31
- { ruby: "3.2", rails: 7_2, arelx: 2 },
32
- { ruby: "3.2", rails: 7_1, arelx: 2 },
33
- { ruby: "3.2", rails: 7, arelx: 2 },
34
- { ruby: "3.2", rails: 6, arelx: 2 },
35
- { ruby: "3.2", rails: 6_1, arelx: 2 },
36
- { ruby: "3.1", rails: 7_2, arelx: 2 },
37
- { ruby: "3.1", rails: 7_1, arelx: 2 },
38
- { ruby: "3.1", rails: 7, arelx: 2 },
39
- { ruby: "3.1", rails: 6_1, arelx: 2 },
40
- { ruby: "3.1", rails: 6, arelx: 2 },
41
- { ruby: "3.0", rails: 7_1, arelx: 2 },
42
- { ruby: "3.0", rails: 7, arelx: 2 },
43
- { ruby: "3.0", rails: 6_1, arelx: 2 },
44
- { ruby: "2.7", rails: 7_1, arelx: 2 },
45
- { ruby: "2.7", rails: 7, arelx: 2 },
46
- { ruby: "2.7", rails: 6_1, arelx: 2 },
47
- { ruby: "2.7", rails: 6, arelx: 2 },
48
- { ruby: "2.7", rails: 5_2, arelx: 1 },
49
- { ruby: "2.7", rails: 4_2, arelx: 1 },
50
- { ruby: "2.5", rails: 6_1, arelx: 2 },
51
- { ruby: "2.5", rails: 6, arelx: 2 },
52
- { ruby: "2.5", rails: 5_2, arelx: 1 },
53
- { ruby: "2.5", rails: 4_2, arelx: 1 },
54
- { ruby: jruby-9.2, rails: 6_1, arelx: 2 },
55
- { ruby: jruby-9.2, rails: 6, arelx: 2 },
56
- { ruby: jruby-9.2, rails: 5_2, arelx: 1 },
57
- { ruby: jruby-9.3, rails: 6_1, arelx: 2 },
58
- { ruby: jruby-9.3, rails: 6, arelx: 2 },
59
- { ruby: jruby-9.3, rails: 5_2, arelx: 1 },
60
- ]
61
- steps:
62
- - uses: actions/checkout@v2
63
- - name: Set up Ruby
64
- uses: ruby/setup-ruby@v1
65
- with:
66
- ruby-version: ${{ matrix.versions.ruby }}
67
- - name: Install FreeTDS
68
- run: |
69
- sudo apt-get update -q
70
- sudo apt-get install -y freetds-dev
71
- - name: Setup Gemfile
72
- run: |
73
- cp ./gemspecs/arel_extensions-v${{ matrix.versions.arelx }}.gemspec ./arel_extensions.gemspec
74
- cp ./version_v${{ matrix.versions.arelx }}.rb lib/arel_extensions/version.rb
75
- cp ./gemfiles/rails${{ matrix.versions.rails }}.gemfile ./Gemfile
76
- - name: bundle install
77
- run: |
78
- bundle config set gemfile ./gemfiles/rails${{ matrix.versions.rails }}.gemfile
79
- bundle install
80
- - name: Run test to_sql
81
- run: bundle exec rake test:to_sql
82
-
83
- job_test_sqlite:
84
- name: test sqlite
85
- runs-on: ubuntu-22.04
86
- strategy:
87
- fail-fast: false
88
- matrix:
89
- versions:
90
- [
91
- { ruby: "3.3", rails: 7_2, arelx: 2 },
92
- { ruby: "3.3", rails: 7_1, arelx: 2 },
93
- { ruby: "3.3", rails: 7, arelx: 2 },
94
- { ruby: "3.3", rails: 6_1, arelx: 2 },
95
- { ruby: "3.2", rails: 7_2, arelx: 2 },
96
- { ruby: "3.2", rails: 7_1, arelx: 2 },
97
- { ruby: "3.2", rails: 7, arelx: 2 },
98
- { ruby: "3.2", rails: 6_1, arelx: 2 },
99
- { ruby: "3.2", rails: 6, arelx: 2 },
100
- { ruby: "3.1", rails: 7_2, arelx: 2 },
101
- { ruby: "3.1", rails: 7_1, arelx: 2 },
102
- { ruby: "3.1", rails: 7, arelx: 2 },
103
- { ruby: "3.1", rails: 6, arelx: 2 },
104
- { ruby: "3.1", rails: 6_1, arelx: 2 },
105
- { ruby: "3.0", rails: 7_1, arelx: 2 },
106
- { ruby: "3.0", rails: 7, arelx: 2 },
107
- { ruby: "3.0", rails: 6_1, arelx: 2 },
108
- { ruby: "2.7", rails: 7_1, arelx: 2 },
109
- { ruby: "2.7", rails: 7, arelx: 2 },
110
- { ruby: "2.7", rails: 6_1, arelx: 2 },
111
- { ruby: "2.7", rails: 6, arelx: 2 },
112
- { ruby: "2.7", rails: 5_2, arelx: 1 },
113
- { ruby: "2.7", rails: 4_2, arelx: 1 },
114
- { ruby: "2.5", rails: 6_1, arelx: 2 },
115
- { ruby: "2.5", rails: 6, arelx: 2 },
116
- { ruby: "2.5", rails: 5_2, arelx: 1 },
117
- { ruby: "2.5", rails: 4_2, arelx: 1 },
118
- { ruby: jruby-9.2, rails: 6_1, arelx: 2 },
119
- { ruby: jruby-9.2, rails: 6, arelx: 2 },
120
- { ruby: jruby-9.2, rails: 5_2, arelx: 1 },
121
- { ruby: jruby-9.2, rails: 4_2, arelx: 1 },
122
- { ruby: jruby-9.3, rails: 6_1, arelx: 2 },
123
- { ruby: jruby-9.3, rails: 6, arelx: 2 },
124
- { ruby: jruby-9.3, rails: 5_2, arelx: 1 },
125
- ]
126
- steps:
127
- - uses: actions/checkout@v2
128
- - name: Set up Ruby
129
- uses: ruby/setup-ruby@v1
130
- with:
131
- ruby-version: ${{ matrix.versions.ruby }}
132
- - name: Install FreeTDS
133
- run: |
134
- sudo apt-get update -q
135
- sudo apt-get install -y freetds-dev
136
- - name: Setup Gemfile
137
- run: |
138
- cp ./gemspecs/arel_extensions-v${{ matrix.versions.arelx }}.gemspec ./arel_extensions.gemspec
139
- cp ./version_v${{ matrix.versions.arelx }}.rb lib/arel_extensions/version.rb
140
- cp ./gemfiles/rails${{ matrix.versions.rails }}.gemfile ./Gemfile
141
- - name: bundle install
142
- run: |
143
- bundle config set gemfile ./gemfiles/rails${{ matrix.versions.rails }}.gemfile
144
- bundle install
145
- - name: Run test sqlite
146
- run: bundle exec rake test:sqlite
147
-
148
- job_test_postgres:
149
- name: test postgres
150
- runs-on: ubuntu-22.04
151
- strategy:
152
- fail-fast: false
153
- matrix:
154
- versions: [
155
- { ruby: "3.3", rails: 7_2, arelx: 2 },
156
- { ruby: "3.3", rails: 7_1, arelx: 2 },
157
- { ruby: "3.3", rails: 7, arelx: 2 },
158
- { ruby: "3.3", rails: 6_1, arelx: 2 },
159
- { ruby: "3.2", rails: 7_2, arelx: 2 },
160
- { ruby: "3.2", rails: 7_1, arelx: 2 },
161
- { ruby: "3.2", rails: 7, arelx: 2 },
162
- { ruby: "3.2", rails: 6_1, arelx: 2 },
163
- # { ruby: "3.2", rails: 6, arelx: 2 }, # cannot test > undefined symbol: rb_tainted_str_new2
164
- { ruby: "3.1", rails: 7_2, arelx: 2 },
165
- { ruby: "3.1", rails: 7_1, arelx: 2 },
166
- { ruby: "3.1", rails: 7, arelx: 2 },
167
- { ruby: "3.1", rails: 6_1, arelx: 2 },
168
- { ruby: "3.1", rails: 6, arelx: 2 },
169
- { ruby: "3.0", rails: 7_1, arelx: 2 },
170
- { ruby: "3.0", rails: 7, arelx: 2 },
171
- { ruby: "3.0", rails: 6_1, arelx: 2 },
172
- { ruby: "2.7", rails: 7_1, arelx: 2 },
173
- { ruby: "2.7", rails: 7, arelx: 2 },
174
- { ruby: "2.7", rails: 6_1, arelx: 2 },
175
- { ruby: "2.7", rails: 6, arelx: 2 },
176
- { ruby: "2.7", rails: 5_2, arelx: 1 },
177
- { ruby: "2.7", rails: 4_2, arelx: 1 },
178
- { ruby: "2.5", rails: 6_1, arelx: 2 },
179
- { ruby: "2.5", rails: 6, arelx: 2 },
180
- { ruby: "2.5", rails: 5_2, arelx: 1 },
181
- { ruby: "2.5", rails: 4_2, arelx: 1 },
182
- { ruby: jruby-9.2, rails: 6_1, arelx: 2 },
183
- { ruby: jruby-9.2, rails: 6, arelx: 2 },
184
- { ruby: jruby-9.2, rails: 5_2, arelx: 1 },
185
- { ruby: jruby-9.2, rails: 4_2, arelx: 1 },
186
- { ruby: jruby-9.3, rails: 6_1, arelx: 2 },
187
- { ruby: jruby-9.3, rails: 6, arelx: 2 },
188
- { ruby: jruby-9.3, rails: 5_2, arelx: 1 },
189
- ]
190
- steps:
191
- - uses: actions/checkout@v2
192
- # PostgreSQL requires locales to be installed on the system to be able
193
- # to do time and currency conversions at runtime.
194
- #
195
- # That's why we're not launching it as a service; pre-built images
196
- # lack loaclization.
197
- #
198
- # After we install locales, we'll install PostgreSQL binaries and start
199
- # the service.
200
- - name: setup locale
201
- run: |
202
- sudo locale-gen fr_FR.utf8
203
- sudo update-locale
204
- - name: setup postgres 11
205
- run: |
206
- curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
207
- echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
208
- sudo apt update
209
- sudo apt -y install postgresql-11
210
- sudo systemctl enable postgresql
211
- sudo systemctl start postgresql
212
- sudo su -c "psql -c \"alter user postgres with password 'secret'\"" postgres
213
- sudo su -c "createdb arelx_test" postgres
214
- - name: Set up Ruby
215
- uses: ruby/setup-ruby@v1
216
- with:
217
- ruby-version: ${{ matrix.versions.ruby }}
218
- - name: Install FreeTDS
219
- run: |
220
- sudo apt-get update -q
221
- sudo apt-get install -y freetds-dev
222
- - name: Setup Gemfile
223
- run: |
224
- cp ./gemspecs/arel_extensions-v${{ matrix.versions.arelx }}.gemspec ./arel_extensions.gemspec
225
- cp ./version_v${{ matrix.versions.arelx }}.rb lib/arel_extensions/version.rb
226
- cp ./gemfiles/rails${{ matrix.versions.rails }}.gemfile ./Gemfile
227
- - name: bundle install
228
- run: |
229
- bundle config set gemfile ./gemfiles/rails${{ matrix.versions.rails }}.gemfile
230
- bundle install
231
- - name: Run test Postgres
232
- env:
233
- PGHOST: localhost
234
- PGUSER: postgres
235
- run: bundle exec rake test:postgresql
236
-
237
- job_test_mysql:
238
- name: test mysql
239
- runs-on: ubuntu-22.04
240
- strategy:
241
- fail-fast: false
242
- matrix:
243
- versions: [
244
- { ruby: "3.3", rails: 7_2, arelx: 2 },
245
- { ruby: "3.3", rails: 7_1, arelx: 2 },
246
- { ruby: "3.3", rails: 7, arelx: 2 },
247
- { ruby: "3.3", rails: 6_1, arelx: 2 },
248
- { ruby: "3.2", rails: 7_2, arelx: 2 },
249
- { ruby: "3.2", rails: 7_1, arelx: 2 },
250
- { ruby: "3.2", rails: 7, arelx: 2 },
251
- { ruby: "3.2", rails: 6_1, arelx: 2 },
252
- # { ruby: "3.2", rails: 6, arelx: 2 }, # cannot test > undefined symbol: rb_tainted_str_new2
253
- { ruby: "3.1", rails: 7_2, arelx: 2 },
254
- { ruby: "3.1", rails: 7_1, arelx: 2 },
255
- { ruby: "3.1", rails: 7, arelx: 2 },
256
- { ruby: "3.1", rails: 6_1, arelx: 2 },
257
- { ruby: "3.1", rails: 6, arelx: 2 },
258
- { ruby: "3.0", rails: 7_1, arelx: 2 },
259
- { ruby: "3.0", rails: 7, arelx: 2 },
260
- { ruby: "3.0", rails: 6_1, arelx: 2 },
261
- { ruby: "2.7", rails: 7_1, arelx: 2 },
262
- { ruby: "2.7", rails: 7, arelx: 2 },
263
- { ruby: "2.7", rails: 6_1, arelx: 2 },
264
- { ruby: "2.7", rails: 6, arelx: 2 },
265
- { ruby: "2.7", rails: 5_2, arelx: 1 },
266
- { ruby: "2.7", rails: 4_2, arelx: 1 },
267
- { ruby: "2.5", rails: 6_1, arelx: 2 },
268
- { ruby: "2.5", rails: 6, arelx: 2 },
269
- { ruby: "2.5", rails: 5_2, arelx: 1 },
270
- { ruby: "2.5", rails: 4_2, arelx: 1 },
271
- { ruby: jruby-9.2, rails: 6_1, arelx: 2 },
272
- { ruby: jruby-9.2, rails: 6, arelx: 2 },
273
- { ruby: jruby-9.2, rails: 5_2, arelx: 1 },
274
- { ruby: jruby-9.2, rails: 4_2, arelx: 1 },
275
- { ruby: jruby-9.3, rails: 6_1, arelx: 2 },
276
- { ruby: jruby-9.3, rails: 6, arelx: 2 },
277
- { ruby: jruby-9.3, rails: 5_2, arelx: 1 },
278
- ]
279
- services:
280
- mysql:
281
- image: mysql:5.7
282
- env:
283
- MYSQL_ALLOW_EMPTY_PASSWORD: true
284
- MYSQL_USERNAME: root
285
- MYSQL_DATABASE: arelx_test
286
- ports:
287
- - 3306:3306
288
- options: >-
289
- --health-cmd="mysqladmin ping"
290
- --health-interval=10s
291
- --health-timeout=5s
292
- --health-retries=3
293
- steps:
294
- - uses: actions/checkout@v2
295
- - name: Set up Ruby
296
- uses: ruby/setup-ruby@v1
297
- with:
298
- ruby-version: ${{ matrix.versions.ruby }}
299
- - name: Install FreeTDS
300
- run: |
301
- sudo apt-get update -q
302
- sudo apt-get install -y freetds-dev
303
- - name: Setup Gemfile
304
- run: |
305
- cp ./gemspecs/arel_extensions-v${{ matrix.versions.arelx }}.gemspec ./arel_extensions.gemspec
306
- cp ./version_v${{ matrix.versions.arelx }}.rb lib/arel_extensions/version.rb
307
- cp ./gemfiles/rails${{ matrix.versions.rails }}.gemfile ./Gemfile
308
- - name: bundle install
309
- run: |
310
- bundle config set gemfile ./gemfiles/rails${{ matrix.versions.rails }}.gemfile
311
- bundle install
312
- - name: Run test MySql
313
- env:
314
- DB_CONNECTION: mysql
315
- DB_HOST: 127.0.0.1
316
- DB_PORT: 3306
317
- DB_DATABASE: arelx_test
318
- DB_USERNAME: root
319
- run: bundle exec rake test:mysql
320
-
321
- job_test_mssql:
322
- name: test mssql on linux
323
- runs-on: ubuntu-22.04
324
- strategy:
325
- fail-fast: false
326
- matrix:
327
- versions: [
328
- { ruby: "3.3", rails: 7_1, arelx: 2 },
329
- { ruby: "3.3", rails: 7, arelx: 2 },
330
- { ruby: "3.3", rails: 6_1, arelx: 2 },
331
- { ruby: "3.3", rails: 6, arelx: 2 },
332
- { ruby: "3.2", rails: 7_1, arelx: 2 },
333
- { ruby: "3.2", rails: 7, arelx: 2 },
334
- { ruby: "3.2", rails: 6_1, arelx: 2 },
335
- { ruby: "3.2", rails: 6, arelx: 2 },
336
- { ruby: "3.1", rails: 7_1, arelx: 2 },
337
- { ruby: "3.1", rails: 7, arelx: 2 },
338
- { ruby: "3.1", rails: 6_1, arelx: 2 },
339
- { ruby: "3.1", rails: 6, arelx: 2 },
340
- { ruby: "3.0", rails: 7, arelx: 2 },
341
- { ruby: "3.0", rails: 6_1, arelx: 2 },
342
- { ruby: "3.0", rails: 6, arelx: 2 },
343
- { ruby: "2.7", rails: 6_1, arelx: 2 },
344
- { ruby: "2.7", rails: 6, arelx: 2 },
345
- { ruby: "2.7", rails: 5_2, arelx: 1 },
346
- { ruby: "2.7", rails: 4_2, arelx: 1 },
347
- { ruby: "2.5", rails: 6_1, arelx: 2 },
348
- { ruby: "2.5", rails: 6, arelx: 2 },
349
- { ruby: "2.5", rails: 5_2, arelx: 1 },
350
- { ruby: "2.5", rails: 4_2, arelx: 1 },
351
- # {ruby: jruby-9.2, rails: 6_1, arelx: 2},
352
- # {ruby: jruby-9.2, rails: 6, arelx: 2},
353
- { ruby: jruby-9.2, rails: 5_2, arelx: 1 },
354
- { ruby: jruby-9.2, rails: 4_2, arelx: 1 },
355
- # See comments on 9.4 to understand why these are disabled for now.
356
- # {ruby: jruby-9.3, rails: 6_1, arelx: 2},
357
- # {ruby: jruby-9.3, rails: 6, arelx: 2},
358
- # {ruby: jruby-9.3, rails: 5_2, arelx: 1},
359
- { ruby: jruby-9.4.10, rails: 7_1, arelx: 2 }, # The reason we pin to the patch level is https://github.com/ruby/psych/issues/700
360
- { ruby: jruby-9.4.10, rails: 7, arelx: 2 },
361
- #
362
- # 6 and 6.1 don't work because of a bug in the alt adapter
363
- # https://github.com/JesseChavez/activerecord-jdbc-adapter/issues/16
364
- # {ruby: jruby-9.4, rails: 6_1, arelx: 2},
365
- # {ruby: jruby-9.4, rails: 6, arelx: 2},
366
- #
367
- # < 5.2 don't work because of a deeper issue.
368
- # {ruby: jruby-9.4, rails: 5_2, arelx: 1},
369
- ]
370
- mssql: [2017, 2019]
371
- steps:
372
- - uses: actions/checkout@v2
373
- - name: Set up Ruby
374
- uses: ruby/setup-ruby@v1
375
- with:
376
- ruby-version: ${{ matrix.versions.ruby }}
377
- - name: Install FreeTDS
378
- run: |
379
- sudo apt-get update -q
380
- sudo apt-get install -y freetds-dev
381
- - name: Install MSSQL ${{ matrix.mssql }}
382
- uses: potatoqualitee/mssqlsuite@v1.5.1
383
- with:
384
- version: ${{ matrix.mssql }}
385
- install: sqlengine, sqlclient, sqlpackage, localdb
386
- sa-password: Password12!
387
- - name: Setup Gemfile
388
- run: |
389
- cp ./gemspecs/arel_extensions-v${{ matrix.versions.arelx }}.gemspec ./arel_extensions.gemspec
390
- cp ./version_v${{ matrix.versions.arelx }}.rb lib/arel_extensions/version.rb
391
- cp ./gemfiles/rails${{ matrix.versions.rails }}.gemfile ./Gemfile
392
- - name: bundle install
393
- run: |
394
- bundle config set gemfile ./gemfiles/rails${{ matrix.versions.rails }}.gemfile
395
- bundle install
396
- - name: Run test mssql [mri]
397
- if: ${{ !contains(matrix.versions.ruby, 'jruby') }}
398
- run: bundle exec rake test:mssql
399
- - name: Run test mssql [jruby]
400
- if: ${{ contains(matrix.versions.ruby, 'jruby') }}
401
- run: |
402
- curl -LO https://github.com/microsoft/mssql-jdbc/releases/download/v8.4.1/mssql-jdbc-8.4.1.jre11.jar
403
- CLASSPATH=".:mssql-jdbc-8.4.1.jre11.jar" bundle exec rake test:mssql