arel_extensions 2.1.8 → 2.1.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a3d245de4fca76ff0c5c0806b3b1ed04f47afd7bab31e104c9366870308b638
4
- data.tar.gz: 95d67960f12cdd7f6bda282e6258d069276e2e24146c26e70b868e4828ed10ad
3
+ metadata.gz: 4f73d2ef758683ad708737ff72c92f6015d87e8e12f712b26b5b265ca14bd0d4
4
+ data.tar.gz: 06c759fd7e6609ea7d8c7cc4ff2060185d5d9e45aa9ae81f2a77b3c837a45364
5
5
  SHA512:
6
- metadata.gz: 4cdf102bc01abe1b41c19f129d86a28b8e8e43e702e9240a8aa286d9bcc71a04dba47965667f185379d1b69ee69490e40bd7dc3e7f1b974f5e95a2ce59424964
7
- data.tar.gz: d93e6301b77655ac3ff34164f7f1794846d408be2751705b3cf467808a7919e31be6b5bb43a3996f61ddd89d97f681cb34793d93d98e1433c16a3dba96f7795b
6
+ metadata.gz: 9a4eda851fc1a84082d55fbd8165c3faf9d5ad6cf5123581496c27eb4c2ff99a09230fcd8261a0f6c7b38b8f64c452f4394840a07d9cb67ab5d6893e59cd3f93
7
+ data.tar.gz: 83c4046e5f3cea9098328d32f5ade612f77e7b68e89c5f21f46352046b3014844cedaf86aaaf26886570f8d4f1d2319a21647dfbd61c1d08ecba12eb3aa2b3da
@@ -0,0 +1,29 @@
1
+ name: "Publish Gems"
2
+ on:
3
+ release:
4
+ types: [published]
5
+
6
+ jobs:
7
+ publish_gems:
8
+ name: Publish to Rubygems
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v3
12
+ - name: setup ruby 3.2
13
+ uses: ruby/setup-ruby@v1
14
+ with:
15
+ ruby-version: 3.2
16
+ - name: Fetch Github Release Asset
17
+ uses: dsaltares/fetch-gh-release-asset@master
18
+ with:
19
+ file: "arel_extensions.*.gem"
20
+ regex: true
21
+ token: ${{ secrets.GITHUB_TOKEN }}
22
+ - name: List gems
23
+ run: ls -l *.gem
24
+ - name: Release Gems
25
+ uses: cadwallion/publish-rubygems-action@master
26
+ env:
27
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
28
+ RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
29
+ RELEASE_COMMAND: bin/publish
@@ -0,0 +1,30 @@
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 }}
@@ -12,33 +12,39 @@ jobs:
12
12
  strategy:
13
13
  fail-fast: false
14
14
  matrix:
15
- versions: [
16
- {ruby: '3.2', rails: 7_1, arelx: 2},
17
- {ruby: '3.2', rails: 7, arelx: 2},
18
- {ruby: '3.2', rails: 6_1, arelx: 2},
19
- {ruby: '3.1', rails: 7_1, arelx: 2},
20
- {ruby: '3.1', rails: 7, arelx: 2},
21
- {ruby: '3.1', rails: 6_1, arelx: 2},
22
- {ruby: '3.0', rails: 7_1, arelx: 2},
23
- {ruby: '3.0', rails: 7, arelx: 2},
24
- {ruby: '3.0', rails: 6_1, arelx: 2},
25
- {ruby: '2.7', rails: 7_1, arelx: 2},
26
- {ruby: '2.7', rails: 7, arelx: 2},
27
- {ruby: '2.7', rails: 6_1, arelx: 2},
28
- {ruby: '2.7', rails: 6, arelx: 2},
29
- {ruby: '2.7', rails: 5_2, arelx: 1},
30
- {ruby: '2.7', rails: 4_2, arelx: 1},
31
- {ruby: '2.5', rails: 6_1, arelx: 2},
32
- {ruby: '2.5', rails: 6, arelx: 2},
33
- {ruby: '2.5', rails: 5_2, arelx: 1},
34
- {ruby: '2.5', rails: 4_2, arelx: 1},
35
- {ruby: jruby-9.2, rails: 6_1, arelx: 2},
36
- {ruby: jruby-9.2, rails: 6, arelx: 2},
37
- {ruby: jruby-9.2, rails: 5_2, arelx: 1},
38
- {ruby: jruby-9.3, rails: 6_1, arelx: 2},
39
- {ruby: jruby-9.3, rails: 6, arelx: 2},
40
- {ruby: jruby-9.3, rails: 5_2, arelx: 1},
41
- ]
15
+ versions:
16
+ [
17
+ { ruby: "3.3", rails: 7_1, arelx: 2 },
18
+ { ruby: "3.3", rails: 7, arelx: 2 },
19
+ { ruby: "3.3", rails: 6_1, arelx: 2 },
20
+ { ruby: "3.2", rails: 7_1, arelx: 2 },
21
+ { ruby: "3.2", rails: 7, arelx: 2 },
22
+ { ruby: "3.2", rails: 6, arelx: 2 },
23
+ { ruby: "3.2", rails: 6_1, arelx: 2 },
24
+ { ruby: "3.1", rails: 7_1, arelx: 2 },
25
+ { ruby: "3.1", rails: 7, arelx: 2 },
26
+ { ruby: "3.1", rails: 6_1, arelx: 2 },
27
+ { ruby: "3.1", rails: 6, arelx: 2 },
28
+ { ruby: "3.0", rails: 7_1, arelx: 2 },
29
+ { ruby: "3.0", rails: 7, arelx: 2 },
30
+ { ruby: "3.0", rails: 6_1, arelx: 2 },
31
+ { ruby: "2.7", rails: 7_1, arelx: 2 },
32
+ { ruby: "2.7", rails: 7, arelx: 2 },
33
+ { ruby: "2.7", rails: 6_1, arelx: 2 },
34
+ { ruby: "2.7", rails: 6, arelx: 2 },
35
+ { ruby: "2.7", rails: 5_2, arelx: 1 },
36
+ { ruby: "2.7", rails: 4_2, arelx: 1 },
37
+ { ruby: "2.5", rails: 6_1, arelx: 2 },
38
+ { ruby: "2.5", rails: 6, arelx: 2 },
39
+ { ruby: "2.5", rails: 5_2, arelx: 1 },
40
+ { ruby: "2.5", rails: 4_2, arelx: 1 },
41
+ { ruby: jruby-9.2, rails: 6_1, arelx: 2 },
42
+ { ruby: jruby-9.2, rails: 6, arelx: 2 },
43
+ { ruby: jruby-9.2, rails: 5_2, arelx: 1 },
44
+ { ruby: jruby-9.3, rails: 6_1, arelx: 2 },
45
+ { ruby: jruby-9.3, rails: 6, arelx: 2 },
46
+ { ruby: jruby-9.3, rails: 5_2, arelx: 1 },
47
+ ]
42
48
  steps:
43
49
  - uses: actions/checkout@v2
44
50
  - name: Set up Ruby
@@ -49,9 +55,6 @@ jobs:
49
55
  run: |
50
56
  sudo apt-get update -q
51
57
  sudo apt-get install -y freetds-dev
52
- - name: Update system-wide gems
53
- if: ${{ !contains(fromJson('["2.5", "jruby-9.2"]'), matrix.versions.ruby) }}
54
- run: gem update --system --no-document
55
58
  - name: Setup Gemfile for arelx 2.x
56
59
  if: ${{ matrix.versions.arelx == 2 }}
57
60
  run: |
@@ -71,34 +74,40 @@ jobs:
71
74
  strategy:
72
75
  fail-fast: false
73
76
  matrix:
74
- versions: [
75
- {ruby: '3.2', rails: 7_1, arelx: 2},
76
- {ruby: '3.2', rails: 7, arelx: 2},
77
- {ruby: '3.2', rails: 6_1, arelx: 2},
78
- {ruby: '3.1', rails: 7_1, arelx: 2},
79
- {ruby: '3.1', rails: 7, arelx: 2},
80
- {ruby: '3.1', rails: 6_1, arelx: 2},
81
- {ruby: '3.0', rails: 7_1, arelx: 2},
82
- {ruby: '3.0', rails: 7, arelx: 2},
83
- {ruby: '3.0', rails: 6_1, arelx: 2},
84
- {ruby: '2.7', rails: 7_1, arelx: 2},
85
- {ruby: '2.7', rails: 7, arelx: 2},
86
- {ruby: '2.7', rails: 6_1, arelx: 2},
87
- {ruby: '2.7', rails: 6, arelx: 2},
88
- {ruby: '2.7', rails: 5_2, arelx: 1},
89
- {ruby: '2.7', rails: 4_2, arelx: 1},
90
- {ruby: '2.5', rails: 6_1, arelx: 2},
91
- {ruby: '2.5', rails: 6, arelx: 2},
92
- {ruby: '2.5', rails: 5_2, arelx: 1},
93
- {ruby: '2.5', rails: 4_2, arelx: 1},
94
- {ruby: jruby-9.2, rails: 6_1, arelx: 2},
95
- {ruby: jruby-9.2, rails: 6, arelx: 2},
96
- {ruby: jruby-9.2, rails: 5_2, arelx: 1},
97
- {ruby: jruby-9.2, rails: 4_2, arelx: 1},
98
- {ruby: jruby-9.3, rails: 6_1, arelx: 2},
99
- {ruby: jruby-9.3, rails: 6, arelx: 2},
100
- {ruby: jruby-9.3, rails: 5_2, arelx: 1},
101
- ]
77
+ versions:
78
+ [
79
+ { ruby: "3.3", rails: 7_1, arelx: 2 },
80
+ { ruby: "3.3", rails: 7, arelx: 2 },
81
+ { ruby: "3.3", rails: 6_1, arelx: 2 },
82
+ { ruby: "3.2", rails: 7_1, arelx: 2 },
83
+ { ruby: "3.2", rails: 7, arelx: 2 },
84
+ { ruby: "3.2", rails: 6_1, arelx: 2 },
85
+ { ruby: "3.2", rails: 6, arelx: 2 },
86
+ { ruby: "3.1", rails: 7_1, arelx: 2 },
87
+ { ruby: "3.1", rails: 7, arelx: 2 },
88
+ { ruby: "3.1", rails: 6, arelx: 2 },
89
+ { ruby: "3.1", rails: 6_1, arelx: 2 },
90
+ { ruby: "3.0", rails: 7_1, arelx: 2 },
91
+ { ruby: "3.0", rails: 7, arelx: 2 },
92
+ { ruby: "3.0", rails: 6_1, arelx: 2 },
93
+ { ruby: "2.7", rails: 7_1, arelx: 2 },
94
+ { ruby: "2.7", rails: 7, arelx: 2 },
95
+ { ruby: "2.7", rails: 6_1, arelx: 2 },
96
+ { ruby: "2.7", rails: 6, arelx: 2 },
97
+ { ruby: "2.7", rails: 5_2, arelx: 1 },
98
+ { ruby: "2.7", rails: 4_2, arelx: 1 },
99
+ { ruby: "2.5", rails: 6_1, arelx: 2 },
100
+ { ruby: "2.5", rails: 6, arelx: 2 },
101
+ { ruby: "2.5", rails: 5_2, arelx: 1 },
102
+ { ruby: "2.5", rails: 4_2, arelx: 1 },
103
+ { ruby: jruby-9.2, rails: 6_1, arelx: 2 },
104
+ { ruby: jruby-9.2, rails: 6, arelx: 2 },
105
+ { ruby: jruby-9.2, rails: 5_2, arelx: 1 },
106
+ { ruby: jruby-9.2, rails: 4_2, arelx: 1 },
107
+ { ruby: jruby-9.3, rails: 6_1, arelx: 2 },
108
+ { ruby: jruby-9.3, rails: 6, arelx: 2 },
109
+ { ruby: jruby-9.3, rails: 5_2, arelx: 1 },
110
+ ]
102
111
  steps:
103
112
  - uses: actions/checkout@v2
104
113
  - name: Set up Ruby
@@ -109,9 +118,6 @@ jobs:
109
118
  run: |
110
119
  sudo apt-get update -q
111
120
  sudo apt-get install -y freetds-dev
112
- - name: Update system-wide gems
113
- if: ${{ !contains(fromJson('["2.5", "jruby-9.2"]'), matrix.versions.ruby) }}
114
- run: gem update --system --no-document
115
121
  - name: Setup Gemfile
116
122
  if: ${{ matrix.versions.arelx == 2 }}
117
123
  run: |
@@ -132,33 +138,38 @@ jobs:
132
138
  fail-fast: false
133
139
  matrix:
134
140
  versions: [
135
- {ruby: '3.2', rails: 7_1, arelx: 2},
136
- {ruby: '3.2', rails: 7, arelx: 2},
137
- {ruby: '3.2', rails: 6_1, arelx: 2},
138
- {ruby: '3.1', rails: 7_1, arelx: 2},
139
- {ruby: '3.1', rails: 7, arelx: 2},
140
- {ruby: '3.1', rails: 6_1, arelx: 2},
141
- {ruby: '3.0', rails: 7_1, arelx: 2},
142
- {ruby: '3.0', rails: 7, arelx: 2},
143
- {ruby: '3.0', rails: 6_1, arelx: 2},
144
- {ruby: '2.7', rails: 7_1, arelx: 2},
145
- {ruby: '2.7', rails: 7, arelx: 2},
146
- {ruby: '2.7', rails: 6_1, arelx: 2},
147
- {ruby: '2.7', rails: 6, arelx: 2},
148
- {ruby: '2.7', rails: 5_2, arelx: 1},
149
- {ruby: '2.7', rails: 4_2, arelx: 1},
150
- {ruby: '2.5', rails: 6_1, arelx: 2},
151
- {ruby: '2.5', rails: 6, arelx: 2},
152
- {ruby: '2.5', rails: 5_2, arelx: 1},
153
- {ruby: '2.5', rails: 4_2, arelx: 1},
154
- {ruby: jruby-9.2, rails: 6_1, arelx: 2},
155
- {ruby: jruby-9.2, rails: 6, arelx: 2},
156
- {ruby: jruby-9.2, rails: 5_2, arelx: 1},
157
- {ruby: jruby-9.2, rails: 4_2, arelx: 1},
158
- {ruby: jruby-9.3, rails: 6_1, arelx: 2},
159
- {ruby: jruby-9.3, rails: 6, arelx: 2},
160
- {ruby: jruby-9.3, rails: 5_2, arelx: 1},
161
- ]
141
+ { ruby: "3.3", rails: 7_1, arelx: 2 },
142
+ { ruby: "3.3", rails: 7, arelx: 2 },
143
+ { ruby: "3.3", rails: 6_1, arelx: 2 },
144
+ { ruby: "3.2", rails: 7_1, arelx: 2 },
145
+ { ruby: "3.2", rails: 7, arelx: 2 },
146
+ { ruby: "3.2", rails: 6_1, arelx: 2 },
147
+ # { ruby: "3.2", rails: 6, arelx: 2 }, # cannot test > undefined symbol: rb_tainted_str_new2
148
+ { ruby: "3.1", rails: 7_1, arelx: 2 },
149
+ { ruby: "3.1", rails: 7, arelx: 2 },
150
+ { ruby: "3.1", rails: 6_1, arelx: 2 },
151
+ { ruby: "3.1", rails: 6, arelx: 2 },
152
+ { ruby: "3.0", rails: 7_1, arelx: 2 },
153
+ { ruby: "3.0", rails: 7, arelx: 2 },
154
+ { ruby: "3.0", rails: 6_1, arelx: 2 },
155
+ { ruby: "2.7", rails: 7_1, arelx: 2 },
156
+ { ruby: "2.7", rails: 7, arelx: 2 },
157
+ { ruby: "2.7", rails: 6_1, arelx: 2 },
158
+ { ruby: "2.7", rails: 6, arelx: 2 },
159
+ { ruby: "2.7", rails: 5_2, arelx: 1 },
160
+ { ruby: "2.7", rails: 4_2, arelx: 1 },
161
+ { ruby: "2.5", rails: 6_1, arelx: 2 },
162
+ { ruby: "2.5", rails: 6, arelx: 2 },
163
+ { ruby: "2.5", rails: 5_2, arelx: 1 },
164
+ { ruby: "2.5", rails: 4_2, arelx: 1 },
165
+ { ruby: jruby-9.2, rails: 6_1, arelx: 2 },
166
+ { ruby: jruby-9.2, rails: 6, arelx: 2 },
167
+ { ruby: jruby-9.2, rails: 5_2, arelx: 1 },
168
+ { ruby: jruby-9.2, rails: 4_2, arelx: 1 },
169
+ { ruby: jruby-9.3, rails: 6_1, arelx: 2 },
170
+ { ruby: jruby-9.3, rails: 6, arelx: 2 },
171
+ { ruby: jruby-9.3, rails: 5_2, arelx: 1 },
172
+ ]
162
173
  steps:
163
174
  - uses: actions/checkout@v2
164
175
  # PostgreSQL requires locales to be installed on the system to be able
@@ -191,9 +202,6 @@ jobs:
191
202
  run: |
192
203
  sudo apt-get update -q
193
204
  sudo apt-get install -y freetds-dev
194
- - name: Update system-wide gems
195
- if: ${{ !contains(fromJson('["2.5", "jruby-9.2"]'), matrix.versions.ruby) }}
196
- run: gem update --system --no-document
197
205
  - name: Setup Gemfile
198
206
  if: ${{ matrix.versions.arelx == 2 }}
199
207
  run: |
@@ -217,33 +225,38 @@ jobs:
217
225
  fail-fast: false
218
226
  matrix:
219
227
  versions: [
220
- {ruby: '3.2', rails: 7_1, arelx: 2},
221
- {ruby: '3.2', rails: 7, arelx: 2},
222
- {ruby: '3.2', rails: 6_1, arelx: 2},
223
- {ruby: '3.1', rails: 7_1, arelx: 2},
224
- {ruby: '3.1', rails: 7, arelx: 2},
225
- {ruby: '3.1', rails: 6_1, arelx: 2},
226
- {ruby: '3.0', rails: 7_1, arelx: 2},
227
- {ruby: '3.0', rails: 7, arelx: 2},
228
- {ruby: '3.0', rails: 6_1, arelx: 2},
229
- {ruby: '2.7', rails: 7_1, arelx: 2},
230
- {ruby: '2.7', rails: 7, arelx: 2},
231
- {ruby: '2.7', rails: 6_1, arelx: 2},
232
- {ruby: '2.7', rails: 6, arelx: 2},
233
- {ruby: '2.7', rails: 5_2, arelx: 1},
234
- {ruby: '2.7', rails: 4_2, arelx: 1},
235
- {ruby: '2.5', rails: 6_1, arelx: 2},
236
- {ruby: '2.5', rails: 6, arelx: 2},
237
- {ruby: '2.5', rails: 5_2, arelx: 1},
238
- {ruby: '2.5', rails: 4_2, arelx: 1},
239
- {ruby: jruby-9.2, rails: 6_1, arelx: 2},
240
- {ruby: jruby-9.2, rails: 6, arelx: 2},
241
- {ruby: jruby-9.2, rails: 5_2, arelx: 1},
242
- {ruby: jruby-9.2, rails: 4_2, arelx: 1},
243
- {ruby: jruby-9.3, rails: 6_1, arelx: 2},
244
- {ruby: jruby-9.3, rails: 6, arelx: 2},
245
- {ruby: jruby-9.3, rails: 5_2, arelx: 1},
246
- ]
228
+ { ruby: "3.3", rails: 7_1, arelx: 2 },
229
+ { ruby: "3.3", rails: 7, arelx: 2 },
230
+ { ruby: "3.3", rails: 6_1, arelx: 2 },
231
+ { ruby: "3.2", rails: 7_1, arelx: 2 },
232
+ { ruby: "3.2", rails: 7, arelx: 2 },
233
+ { ruby: "3.2", rails: 6_1, arelx: 2 },
234
+ # { ruby: "3.2", rails: 6, arelx: 2 }, # cannot test > undefined symbol: rb_tainted_str_new2
235
+ { ruby: "3.1", rails: 7_1, arelx: 2 },
236
+ { ruby: "3.1", rails: 7, arelx: 2 },
237
+ { ruby: "3.1", rails: 6_1, arelx: 2 },
238
+ { ruby: "3.1", rails: 6, arelx: 2 },
239
+ { ruby: "3.0", rails: 7_1, arelx: 2 },
240
+ { ruby: "3.0", rails: 7, arelx: 2 },
241
+ { ruby: "3.0", rails: 6_1, arelx: 2 },
242
+ { ruby: "2.7", rails: 7_1, arelx: 2 },
243
+ { ruby: "2.7", rails: 7, arelx: 2 },
244
+ { ruby: "2.7", rails: 6_1, arelx: 2 },
245
+ { ruby: "2.7", rails: 6, arelx: 2 },
246
+ { ruby: "2.7", rails: 5_2, arelx: 1 },
247
+ { ruby: "2.7", rails: 4_2, arelx: 1 },
248
+ { ruby: "2.5", rails: 6_1, arelx: 2 },
249
+ { ruby: "2.5", rails: 6, arelx: 2 },
250
+ { ruby: "2.5", rails: 5_2, arelx: 1 },
251
+ { ruby: "2.5", rails: 4_2, arelx: 1 },
252
+ { ruby: jruby-9.2, rails: 6_1, arelx: 2 },
253
+ { ruby: jruby-9.2, rails: 6, arelx: 2 },
254
+ { ruby: jruby-9.2, rails: 5_2, arelx: 1 },
255
+ { ruby: jruby-9.2, rails: 4_2, arelx: 1 },
256
+ { ruby: jruby-9.3, rails: 6_1, arelx: 2 },
257
+ { ruby: jruby-9.3, rails: 6, arelx: 2 },
258
+ { ruby: jruby-9.3, rails: 5_2, arelx: 1 },
259
+ ]
247
260
  services:
248
261
  mysql:
249
262
  image: mysql:5.7
@@ -268,9 +281,6 @@ jobs:
268
281
  run: |
269
282
  sudo apt-get update -q
270
283
  sudo apt-get install -y freetds-dev
271
- - name: Update system-wide gems
272
- if: ${{ !contains(fromJson('["2.5", "jruby-9.2"]'), matrix.versions.ruby) }}
273
- run: gem update --system --no-document
274
284
  - name: Setup Gemfile
275
285
  if: ${{ matrix.versions.arelx == 2 }}
276
286
  run: |
@@ -297,29 +307,48 @@ jobs:
297
307
  fail-fast: false
298
308
  matrix:
299
309
  versions: [
300
- # {ruby: '3.2', rails: 7, arelx: 2},
301
- {ruby: '3.2', rails: 6_1, arelx: 2},
302
- # {ruby: '3.1', rails: 7, arelx: 2},
303
- {ruby: '3.1', rails: 6_1, arelx: 2},
304
- # {ruby: '3.0', rails: 7, arelx: 2},
305
- {ruby: '3.0', rails: 6_1, arelx: 2},
306
- # {ruby: '2.7', rails: 7, arelx: 2},
307
- {ruby: '2.7', rails: 6_1, arelx: 2},
308
- {ruby: '2.7', rails: 6, arelx: 2},
309
- {ruby: '2.7', rails: 5_2, arelx: 1},
310
- {ruby: '2.7', rails: 4_2, arelx: 1},
311
- {ruby: '2.5', rails: 6_1, arelx: 2},
312
- {ruby: '2.5', rails: 6, arelx: 2},
313
- {ruby: '2.5', rails: 5_2, arelx: 1},
314
- {ruby: '2.5', rails: 4_2, arelx: 1},
315
- # {ruby: jruby-9.2, rails: 6_1, arelx: 2},
316
- # {ruby: jruby-9.2, rails: 6, arelx: 2},
317
- {ruby: jruby-9.2, rails: 5_2, arelx: 1},
318
- {ruby: jruby-9.2, rails: 4_2, arelx: 1},
319
- # {ruby: jruby-9.3, rails: 6_1, arelx: 2},
320
- # {ruby: jruby-9.3, rails: 6, arelx: 2},
321
- {ruby: jruby-9.3, rails: 5_2, arelx: 1},
322
- ]
310
+ { ruby: "3.3", rails: 7_1, arelx: 2 },
311
+ { ruby: "3.3", rails: 7, arelx: 2 },
312
+ { ruby: "3.3", rails: 6_1, arelx: 2 },
313
+ { ruby: "3.3", rails: 6, arelx: 2 },
314
+ { ruby: "3.2", rails: 7_1, arelx: 2 },
315
+ { ruby: "3.2", rails: 7, arelx: 2 },
316
+ { ruby: "3.2", rails: 6_1, arelx: 2 },
317
+ { ruby: "3.2", rails: 6, arelx: 2 },
318
+ { ruby: "3.1", rails: 7_1, arelx: 2 },
319
+ { ruby: "3.1", rails: 7, arelx: 2 },
320
+ { ruby: "3.1", rails: 6_1, arelx: 2 },
321
+ { ruby: "3.1", rails: 6, arelx: 2 },
322
+ { ruby: "3.0", rails: 7, arelx: 2 },
323
+ { ruby: "3.0", rails: 6_1, arelx: 2 },
324
+ { ruby: "3.0", rails: 6, arelx: 2 },
325
+ { ruby: "2.7", rails: 6_1, arelx: 2 },
326
+ { ruby: "2.7", rails: 6, arelx: 2 },
327
+ { ruby: "2.7", rails: 5_2, arelx: 1 },
328
+ { ruby: "2.7", rails: 4_2, arelx: 1 },
329
+ { ruby: "2.5", rails: 6_1, arelx: 2 },
330
+ { ruby: "2.5", rails: 6, arelx: 2 },
331
+ { ruby: "2.5", rails: 5_2, arelx: 1 },
332
+ { ruby: "2.5", rails: 4_2, arelx: 1 },
333
+ # {ruby: jruby-9.2, rails: 6_1, arelx: 2},
334
+ # {ruby: jruby-9.2, rails: 6, arelx: 2},
335
+ { ruby: jruby-9.2, rails: 5_2, arelx: 1 },
336
+ { ruby: jruby-9.2, rails: 4_2, arelx: 1 },
337
+ # See comments on 9.4 to understand why these are disabled for now.
338
+ # {ruby: jruby-9.3, rails: 6_1, arelx: 2},
339
+ # {ruby: jruby-9.3, rails: 6, arelx: 2},
340
+ # {ruby: jruby-9.3, rails: 5_2, arelx: 1},
341
+ { ruby: jruby-9.4, rails: 7_1, arelx: 2 },
342
+ { ruby: jruby-9.4, rails: 7, arelx: 2 },
343
+ #
344
+ # 6 and 6.1 don't work because of a bug in the alt adapter
345
+ # https://github.com/JesseChavez/activerecord-jdbc-adapter/issues/16
346
+ # {ruby: jruby-9.4, rails: 6_1, arelx: 2},
347
+ # {ruby: jruby-9.4, rails: 6, arelx: 2},
348
+ #
349
+ # < 5.2 don't work because of a deeper issue.
350
+ # {ruby: jruby-9.4, rails: 5_2, arelx: 1},
351
+ ]
323
352
  mssql: [2017, 2019]
324
353
  steps:
325
354
  - uses: actions/checkout@v2
@@ -337,9 +366,6 @@ jobs:
337
366
  version: ${{ matrix.mssql }}
338
367
  install: sqlengine, sqlclient, sqlpackage, localdb
339
368
  sa-password: Password12!
340
- - name: Update system-wide gems
341
- if: ${{ !contains(fromJson('["2.5", "jruby-9.2"]'), matrix.versions.ruby) }}
342
- run: gem update --system --no-document
343
369
  - name: Setup Gemfile
344
370
  if: ${{ matrix.versions.arelx == 2 }}
345
371
  run: |
data/NEWS.md CHANGED
@@ -1,6 +1,40 @@
1
1
  # News
2
2
 
3
- ## Current Release
3
+ ## Release v2.1.10/v1.3.10
4
+
5
+ - MS SQL: add support for jruby 9.4 via [activerecord-jdbc-alt-adapter](https://rubygems.org/gems/activerecord-jdbc-alt-adapter/)
6
+
7
+ ## Release v2.1.9/v1.3.9
8
+
9
+ ### Bug Fixes
10
+
11
+ - Postgres:
12
+ - Datetime formatting in postgres now behaves like mysql: if the target
13
+ timezone is a string, we automatically consider that you're trying to
14
+ convert from `UTC`.
15
+ - Datetime casting will now automatically ask for a
16
+ `timestamp without timezone`, also aligning with the expected befavior
17
+ in mysql. This also makes casting work better with timezone conversion,
18
+ especially if you don't pass the timezone from which you're converting
19
+ to.
20
+ ```ruby
21
+ scope
22
+ .select(Arel.quoted('2022-02-01 10:42:00')
23
+ .cast(:datetime)
24
+ .format_date('%Y/%m/%d %H:%M:%S', 'Europe/Paris')
25
+ .as('res'))
26
+ ```
27
+ Will produce:
28
+ ```sql
29
+ SELECT TO_CHAR(
30
+ CAST('2022-02-01 10:42:00' AS timestamp without time zone) AT TIME ZONE 'UTC' AT TIME ZONE 'Europe/Paris',
31
+ 'YYYY/MM/DD HH24:MI:SS'
32
+ )
33
+ AS "res"
34
+ -- …
35
+ ```
36
+
37
+ ## Release v2.1.7/v1.3.7
4
38
 
5
39
  ### New Features
6
40
 
@@ -8,11 +42,11 @@
8
42
  The actual behavior of `format` is inconsistent across DB vendors: in mysql we
9
43
  can format dates and numbers with it, and in the other ones we only format
10
44
  dates.
11
-
45
+
12
46
  We're planning on normalizing this behavior. We want `format` to "cleverly"
13
47
  format dates or numbers, and `format_date` / `format_number` to strictly
14
48
  format dates / numbers.
15
-
49
+
16
50
  The introduction of `format_date` is the first step in this direction.
17
51
 
18
52
  ## Release v2.1.6/v1.3.6
data/README.md CHANGED
@@ -173,9 +173,9 @@ The second form accepts 2 kinds of values:
173
173
 
174
174
  ```ruby
175
175
  t[:birthdate].format('%Y/%m/%d %H:%M:%S', 'posix/Pacific/Tahiti')
176
- # => DATE_FORMAT(CONVERT_TZ(CAST(my_table.birthdate AS datetime), 'UTC', 'posix/Pacific/Tahiti'), '%Y/%m/%d %H:%i:%S') ## MySQL
177
- # => TO_CHAR(CAST(my_table.birthdate AS timestamp with time zone) AT TIME ZONE 'posix/Pacific/Tahiti', 'YYYY/MM/DD HH24:MI:SS') ## PostgreSQL
178
- # => CONVERT(datetime, my_table.birthdate) AT TIME ZONE 'UTC' AT TIME ZONE N'posix/Pacific/Tahiti' ## SQL Server (& truncated for clarity)
176
+ # => DATE_FORMAT(CONVERT_TZ(CAST(my_table.birthdate AS datetime), 'UTC', 'posix/Pacific/Tahiti'), '%Y/%m/%d %H:%i:%S') ## MySQL
177
+ # => TO_CHAR(CAST(my_table.birthdate AS timestamp with time zone) AT TIME ZONE 'UTC' AT TIME ZONE 'posix/Pacific/Tahiti', 'YYYY/MM/DD HH24:MI:SS') ## PostgreSQL
178
+ # => CONVERT(datetime, my_table.birthdate) AT TIME ZONE 'UTC' AT TIME ZONE N'posix/Pacific/Tahiti' ## SQL Server (& truncated for clarity)
179
179
  # ^^^^^^^^^^^^^^^^^^^^ 🚨 Invalid timezone for SQL Server. Explanation below.
180
180
  ```
181
181
 
@@ -772,7 +772,7 @@ bundle exec rake test:to_sql
772
772
  Refer to the [Version Compatibility](#version-compatibility) section to correctly
773
773
  set your gemfile.
774
774
 
775
- ### MariaDB and Postgres
775
+ ### Testing databases locally
776
776
 
777
777
  We provide a `docker compose` to set up some databases for testing:
778
778
 
data/bin/build ADDED
@@ -0,0 +1,15 @@
1
+ #! /usr/bin/env sh
2
+ set -e
3
+
4
+ # VERSION ~> 1
5
+ echo "Packaging v1"
6
+ cp ./version_v1.rb lib/arel_extensions/version.rb
7
+ cp ./gemspecs/arel_extensions-v1.gemspec ./arel_extensions.gemspec
8
+ gem build ./arel_extensions.gemspec
9
+
10
+ # VERSION ~> 2
11
+ echo "Packaging v2"
12
+ cp ./version_v2.rb lib/arel_extensions/version.rb
13
+ cp ./gemspecs/arel_extensions-v2.gemspec ./arel_extensions.gemspec
14
+ gem build ./arel_extensions.gemspec
15
+
data/bin/publish ADDED
@@ -0,0 +1,8 @@
1
+ #! /usr/bin/env sh
2
+ set -e
3
+
4
+ find . -name "arel_extensions*.gem" | while read packaged_gem ; do
5
+ echo "Publishing $packaged_gem"
6
+ gem push "$packaged_gem"
7
+ done
8
+
data/dev/compose.yaml CHANGED
@@ -27,3 +27,11 @@ services:
27
27
  interval: 10s
28
28
  timeout: 5s
29
29
  retries: 3
30
+ mssql:
31
+ image: mcr.microsoft.com/mssql/server:2019-latest
32
+ container_name: mssql
33
+ environment:
34
+ MSSQL_SA_PASSWORD: Password12!
35
+ ACCEPT_EULA: Y
36
+ ports:
37
+ - "1433:1433"
@@ -20,11 +20,12 @@ group :development, :test do
20
20
  gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.has_key? 'ORACLE_HOME'
21
21
 
22
22
  # for JRuby
23
- gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v60.4', platforms: :jruby
24
- gem 'jdbc-sqlite3', platforms: :jruby
25
- gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
23
+ gem 'activerecord-jdbc-alt-adapter', '~> 60.0', platform: :jruby, require: true
26
24
  gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
27
25
  gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
26
+ gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
27
+ gem 'jdbc-mssql', platforms: :jruby, require: true
28
+ gem 'jdbc-sqlite3', platforms: :jruby
28
29
  end
29
30
 
30
31
  gemspec path: Dir.pwd
@@ -20,11 +20,12 @@ group :development, :test do
20
20
  gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.has_key? 'ORACLE_HOME'
21
21
 
22
22
  # for JRuby
23
- gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v61.1', platforms: :jruby
24
- gem 'jdbc-sqlite3', platforms: :jruby
25
- gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
23
+ gem 'activerecord-jdbc-alt-adapter', '~> 61.0', platform: :jruby, require: true
26
24
  gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
27
25
  gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
26
+ gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
27
+ gem 'jdbc-mssql', platforms: :jruby, require: true
28
+ gem 'jdbc-sqlite3', platforms: :jruby
28
29
  end
29
30
 
30
31
  gemspec path: Dir.pwd