arel_extensions 2.1.2 → 2.1.5
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 +4 -4
- data/.codeclimate.yml +1 -2
- data/.github/workflows/ruby.yml +43 -91
- data/.gitignore +7 -6
- data/.rubocop.yml +62 -1
- data/Gemfile +11 -11
- data/README.md +1 -1
- data/Rakefile +4 -4
- data/TODO +0 -1
- data/appveyor.yml +73 -0
- data/arel_extensions.gemspec +11 -11
- data/gemfiles/rails3.gemfile +10 -10
- data/gemfiles/rails4.gemfile +14 -14
- data/gemfiles/rails5_0.gemfile +13 -13
- data/gemfiles/rails5_1_4.gemfile +13 -13
- data/gemfiles/rails5_2.gemfile +15 -14
- data/gemfiles/rails6.gemfile +13 -12
- data/gemfiles/rails6_1.gemfile +13 -12
- data/gemfiles/rails7.gemfile +9 -8
- data/gemspecs/arel_extensions-v1.gemspec +12 -12
- data/gemspecs/arel_extensions-v2.gemspec +11 -11
- data/init/mssql.sql +0 -0
- data/init/mysql.sql +0 -0
- data/init/oracle.sql +0 -0
- data/init/postgresql.sql +0 -0
- data/init/sqlite.sql +0 -0
- data/lib/arel_extensions/attributes.rb +2 -2
- data/lib/arel_extensions/boolean_functions.rb +2 -4
- data/lib/arel_extensions/common_sql_functions.rb +12 -12
- data/lib/arel_extensions/comparators.rb +14 -14
- data/lib/arel_extensions/date_duration.rb +7 -7
- data/lib/arel_extensions/helpers.rb +19 -16
- data/lib/arel_extensions/insert_manager.rb +1 -1
- data/lib/arel_extensions/math.rb +44 -31
- data/lib/arel_extensions/math_functions.rb +18 -18
- data/lib/arel_extensions/nodes/abs.rb +0 -0
- data/lib/arel_extensions/nodes/aggregate_function.rb +0 -0
- data/lib/arel_extensions/nodes/blank.rb +1 -1
- data/lib/arel_extensions/nodes/case.rb +4 -6
- data/lib/arel_extensions/nodes/cast.rb +5 -5
- data/lib/arel_extensions/nodes/ceil.rb +0 -0
- data/lib/arel_extensions/nodes/change_case.rb +0 -0
- data/lib/arel_extensions/nodes/coalesce.rb +1 -1
- data/lib/arel_extensions/nodes/collate.rb +9 -9
- data/lib/arel_extensions/nodes/concat.rb +2 -2
- data/lib/arel_extensions/nodes/date_diff.rb +10 -10
- data/lib/arel_extensions/nodes/duration.rb +0 -0
- data/lib/arel_extensions/nodes/find_in_set.rb +0 -0
- data/lib/arel_extensions/nodes/floor.rb +0 -0
- data/lib/arel_extensions/nodes/format.rb +0 -0
- data/lib/arel_extensions/nodes/formatted_number.rb +2 -2
- data/lib/arel_extensions/nodes/function.rb +21 -21
- data/lib/arel_extensions/nodes/is_null.rb +0 -0
- data/lib/arel_extensions/nodes/json.rb +7 -7
- data/lib/arel_extensions/nodes/length.rb +0 -0
- data/lib/arel_extensions/nodes/levenshtein_distance.rb +1 -1
- data/lib/arel_extensions/nodes/locate.rb +1 -1
- data/lib/arel_extensions/nodes/log10.rb +0 -0
- data/lib/arel_extensions/nodes/matches.rb +1 -1
- data/lib/arel_extensions/nodes/md5.rb +0 -0
- data/lib/arel_extensions/nodes/power.rb +0 -0
- data/lib/arel_extensions/nodes/rand.rb +0 -0
- data/lib/arel_extensions/nodes/repeat.rb +2 -2
- data/lib/arel_extensions/nodes/replace.rb +2 -2
- data/lib/arel_extensions/nodes/round.rb +0 -0
- data/lib/arel_extensions/nodes/soundex.rb +2 -2
- data/lib/arel_extensions/nodes/std.rb +0 -0
- data/lib/arel_extensions/nodes/substring.rb +1 -1
- data/lib/arel_extensions/nodes/sum.rb +0 -0
- data/lib/arel_extensions/nodes/then.rb +1 -1
- data/lib/arel_extensions/nodes/trim.rb +2 -2
- data/lib/arel_extensions/nodes/union.rb +4 -4
- data/lib/arel_extensions/nodes/union_all.rb +3 -3
- data/lib/arel_extensions/nodes/wday.rb +0 -0
- data/lib/arel_extensions/nodes.rb +0 -0
- data/lib/arel_extensions/null_functions.rb +0 -0
- data/lib/arel_extensions/predications.rb +10 -10
- data/lib/arel_extensions/railtie.rb +1 -1
- data/lib/arel_extensions/set_functions.rb +3 -3
- data/lib/arel_extensions/string_functions.rb +8 -8
- data/lib/arel_extensions/tasks.rb +2 -2
- data/lib/arel_extensions/version.rb +1 -1
- data/lib/arel_extensions/visitors/convert_format.rb +0 -0
- data/lib/arel_extensions/visitors/ibm_db.rb +20 -20
- data/lib/arel_extensions/visitors/mssql.rb +150 -130
- data/lib/arel_extensions/visitors/mysql.rb +147 -149
- data/lib/arel_extensions/visitors/oracle.rb +141 -135
- data/lib/arel_extensions/visitors/oracle12.rb +16 -16
- data/lib/arel_extensions/visitors/postgresql.rb +147 -139
- data/lib/arel_extensions/visitors/sqlite.rb +85 -87
- data/lib/arel_extensions/visitors/to_sql.rb +146 -148
- data/lib/arel_extensions/visitors.rb +7 -7
- data/lib/arel_extensions.rb +56 -32
- data/test/arelx_test_helper.rb +14 -13
- data/test/database.yml +5 -5
- data/test/real_db_test.rb +81 -81
- data/test/support/fake_record.rb +2 -2
- data/test/test_comparators.rb +5 -5
- data/test/visitors/test_bulk_insert_oracle.rb +5 -5
- data/test/visitors/test_bulk_insert_sqlite.rb +5 -5
- data/test/visitors/test_bulk_insert_to_sql.rb +5 -5
- data/test/visitors/test_oracle.rb +14 -14
- data/test/visitors/test_to_sql.rb +87 -87
- data/test/with_ar/all_agnostic_test.rb +411 -306
- data/test/with_ar/insert_agnostic_test.rb +19 -16
- data/test/with_ar/test_bulk_sqlite.rb +5 -5
- data/test/with_ar/test_math_sqlite.rb +12 -12
- data/test/with_ar/test_string_mysql.rb +20 -20
- data/test/with_ar/test_string_sqlite.rb +20 -20
- data/version_v1.rb +1 -1
- data/version_v2.rb +1 -1
- metadata +3 -9
- data/.travis/oracle/download.js +0 -152
- data/.travis/oracle/download.sh +0 -30
- data/.travis/oracle/download_ojdbc.js +0 -116
- data/.travis/oracle/install.sh +0 -34
- data/.travis/setup_accounts.sh +0 -9
- data/.travis/sqlite3/extension-functions.sh +0 -6
- data/.travis.yml +0 -193
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 460764a1fc17c5359b553da4b62d75b2300cc4a0ead64ce1ddcf3e897d703045
|
|
4
|
+
data.tar.gz: 751125d207b3485e3220b6335cbd7050516ea7d8bb8cd88b3810e00c0a80fb86
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a8781a647977d941173ed7dc68c256bb85ecf4c490908baa21ec1e36f32a35e4c175f5c51a69a50e3af4b4921c4575a5bacb8b3748ffe46a8852bac08bb1444c
|
|
7
|
+
data.tar.gz: 45dbf8f8537750c23ef4d7718cfed20a5e5618b86d84cd4f23154db6e9a92fdef9a4befec53ac29da230e21fbcf8c98f311a3ceef89532cc947cb0a9d3c39f31
|
data/.codeclimate.yml
CHANGED
data/.github/workflows/ruby.yml
CHANGED
|
@@ -148,32 +148,41 @@ jobs:
|
|
|
148
148
|
matrix:
|
|
149
149
|
ruby: [3.1, 3.0, 2.7, 2.5, jruby-9.2, jruby-9.3]
|
|
150
150
|
rails: [7, 6_1, 6, 5_2]
|
|
151
|
-
exclude:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
postgres:
|
|
163
|
-
image: postgres:11.6-alpine
|
|
164
|
-
env:
|
|
165
|
-
POSTGRES_DB: arext_test
|
|
166
|
-
POSTGRES_PASSWORD: secret
|
|
167
|
-
ports:
|
|
168
|
-
- 5432:5432
|
|
169
|
-
# needed because the postgres container does not provide a healthcheck
|
|
170
|
-
options: >-
|
|
171
|
-
--health-cmd "pg_isready -d arext_test -U postgres -p 5432"
|
|
172
|
-
--health-interval 10s
|
|
173
|
-
--health-timeout 5s
|
|
174
|
-
--health-retries 5
|
|
151
|
+
exclude:
|
|
152
|
+
[
|
|
153
|
+
{ ruby: 3.1, rails: 6 },
|
|
154
|
+
{ ruby: 3.1, rails: 5_2 },
|
|
155
|
+
{ ruby: 3.0, rails: 6 },
|
|
156
|
+
{ ruby: 3.0, rails: 5_2 },
|
|
157
|
+
{ ruby: 2.7, rails: 5_2 },
|
|
158
|
+
{ ruby: 2.5, rails: 7 },
|
|
159
|
+
{ ruby: jruby-9.2, rails: 7 },
|
|
160
|
+
{ ruby: jruby-9.3, rails: 7 },
|
|
161
|
+
]
|
|
175
162
|
steps:
|
|
176
163
|
- uses: actions/checkout@v2
|
|
164
|
+
# PostgreSQL requires locales to be installed on the system to be able
|
|
165
|
+
# to do time and currency conversions at runtime.
|
|
166
|
+
#
|
|
167
|
+
# That's why we're not launching it as a service; pre-built images
|
|
168
|
+
# lack loaclization.
|
|
169
|
+
#
|
|
170
|
+
# After we install locales, we'll install PostgreSQL binaries and start
|
|
171
|
+
# the service.
|
|
172
|
+
- name: setup locale
|
|
173
|
+
run: |
|
|
174
|
+
sudo locale-gen fr_FR.utf8
|
|
175
|
+
sudo update-locale
|
|
176
|
+
- name: setup postgres 11
|
|
177
|
+
run: |
|
|
178
|
+
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
|
|
179
|
+
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
|
|
180
|
+
sudo apt update
|
|
181
|
+
sudo apt -y install postgresql-11
|
|
182
|
+
sudo systemctl enable postgresql
|
|
183
|
+
sudo systemctl start postgresql
|
|
184
|
+
sudo su -c "psql -c \"alter user postgres with password 'secret'\"" postgres
|
|
185
|
+
sudo su -c "createdb arelx_test" postgres
|
|
177
186
|
- name: Set up Ruby
|
|
178
187
|
uses: ruby/setup-ruby@v1
|
|
179
188
|
with:
|
|
@@ -229,7 +238,7 @@ jobs:
|
|
|
229
238
|
env:
|
|
230
239
|
MYSQL_ALLOW_EMPTY_PASSWORD: true
|
|
231
240
|
MYSQL_USERNAME: root
|
|
232
|
-
MYSQL_DATABASE:
|
|
241
|
+
MYSQL_DATABASE: arelx_test
|
|
233
242
|
ports:
|
|
234
243
|
- 3306:3306
|
|
235
244
|
options: >-
|
|
@@ -268,7 +277,7 @@ jobs:
|
|
|
268
277
|
DB_CONNECTION: mysql
|
|
269
278
|
DB_HOST: 127.0.0.1
|
|
270
279
|
DB_PORT: 3306
|
|
271
|
-
DB_DATABASE:
|
|
280
|
+
DB_DATABASE: arelx_test
|
|
272
281
|
DB_USERNAME: root
|
|
273
282
|
run: bundle exec rake test:mysql
|
|
274
283
|
|
|
@@ -280,18 +289,19 @@ jobs:
|
|
|
280
289
|
fail-fast: false
|
|
281
290
|
matrix:
|
|
282
291
|
ruby: [3.1, 3.0, 2.7, 2.5, jruby-9.2, jruby-9.3]
|
|
283
|
-
rails: [
|
|
292
|
+
rails: [6_1, 6, 5_2]
|
|
293
|
+
version: [2017, 2019]
|
|
284
294
|
exclude: [
|
|
285
295
|
{ruby: 3.1, rails: 6 },
|
|
286
296
|
{ruby: 3.1, rails: 5_2 },
|
|
287
297
|
{ruby: 3.0, rails: 6 },
|
|
288
298
|
{ruby: 3.0, rails: 5_2 },
|
|
289
299
|
{ruby: 2.7, rails: 5_2 },
|
|
290
|
-
{ruby: 2.5, rails: 7 },
|
|
291
|
-
{ruby: jruby-9.2, rails: 7 },
|
|
300
|
+
# {ruby: 2.5, rails: 7 },
|
|
301
|
+
# {ruby: jruby-9.2, rails: 7 },
|
|
292
302
|
{ruby: jruby-9.2, rails: 6_1 },
|
|
293
303
|
{ruby: jruby-9.2, rails: 6 },
|
|
294
|
-
{ruby: jruby-9.3, rails: 7 },
|
|
304
|
+
# {ruby: jruby-9.3, rails: 7 },
|
|
295
305
|
{ruby: jruby-9.3, rails: 6_1 },
|
|
296
306
|
{ruby: jruby-9.3, rails: 6 },
|
|
297
307
|
]
|
|
@@ -305,9 +315,10 @@ jobs:
|
|
|
305
315
|
run: |
|
|
306
316
|
sudo apt-get update -q
|
|
307
317
|
sudo apt-get install -y freetds-dev
|
|
308
|
-
- name: Install MSSQL
|
|
309
|
-
uses: potatoqualitee/mssqlsuite@v1
|
|
318
|
+
- name: Install MSSQL ${{ matrix.version }}
|
|
319
|
+
uses: potatoqualitee/mssqlsuite@v1.5.1
|
|
310
320
|
with:
|
|
321
|
+
version: ${{ matrix.version }}
|
|
311
322
|
install: sqlengine, sqlclient, sqlpackage, localdb
|
|
312
323
|
sa-password: Password12!
|
|
313
324
|
- name: Update system-wide gems
|
|
@@ -328,62 +339,3 @@ jobs:
|
|
|
328
339
|
bundle install
|
|
329
340
|
- name: Run test mssql
|
|
330
341
|
run: bundle exec rake test:mssql
|
|
331
|
-
|
|
332
|
-
job_test_windows:
|
|
333
|
-
name: test mssql on windows
|
|
334
|
-
needs: job_build_gem
|
|
335
|
-
runs-on: windows-latest
|
|
336
|
-
strategy:
|
|
337
|
-
fail-fast: false
|
|
338
|
-
matrix:
|
|
339
|
-
ruby: [3.1, 3.0, 2.7, 2.5]
|
|
340
|
-
rails: [7, 6_1, 6, 5_2]
|
|
341
|
-
exclude: [
|
|
342
|
-
{ruby: 3.1, rails: 6 },
|
|
343
|
-
{ruby: 3.1, rails: 5_2 },
|
|
344
|
-
{ruby: 3.0, rails: 6 },
|
|
345
|
-
{ruby: 3.0, rails: 5_2 },
|
|
346
|
-
{ruby: 2.7, rails: 5_2 },
|
|
347
|
-
{ruby: 2.5, rails: 7 },
|
|
348
|
-
{ruby: jruby-9.2, rails: 7 },
|
|
349
|
-
{ruby: jruby-9.2, rails: 6_1 },
|
|
350
|
-
{ruby: jruby-9.2, rails: 6 },
|
|
351
|
-
{ruby: jruby-9.3, rails: 7 },
|
|
352
|
-
{ruby: jruby-9.3, rails: 6_1 },
|
|
353
|
-
{ruby: jruby-9.3, rails: 6 },
|
|
354
|
-
]
|
|
355
|
-
steps:
|
|
356
|
-
- uses: actions/checkout@v2
|
|
357
|
-
- name: Install mssql
|
|
358
|
-
uses: potatoqualitee/mssqlsuite@v1
|
|
359
|
-
with:
|
|
360
|
-
install: sqlengine, sqlclient, sqlpackage, localdb
|
|
361
|
-
sa-password: Password12!
|
|
362
|
-
- name: Set up Ruby
|
|
363
|
-
uses: MSP-Greg/ruby-setup-ruby@win-ucrt-1
|
|
364
|
-
with:
|
|
365
|
-
ruby-version: ${{ matrix.ruby }}
|
|
366
|
-
- name: Install required packages on Windows
|
|
367
|
-
shell: cmd
|
|
368
|
-
run: |
|
|
369
|
-
ridk exec sh -c "pacman --sync --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-gcc"
|
|
370
|
-
- name: Update system-wide gems
|
|
371
|
-
run: gem update --system
|
|
372
|
-
- name: Setup Gemfile
|
|
373
|
-
if: ${{ matrix.rails != '5_2' }}
|
|
374
|
-
run: |
|
|
375
|
-
cp ./gemspecs/arel_extensions-v2.gemspec ./arel_extensions.gemspec
|
|
376
|
-
cp ./version_v2.rb lib/arel_extensions/version.rb
|
|
377
|
-
cp ./gemfiles/rails${{ matrix.rails }}.gemfile ./Gemfile
|
|
378
|
-
- name: bundle install
|
|
379
|
-
run: |
|
|
380
|
-
bundle config set gemfile .\gemfiles\rails${{ matrix.rails }}.gemfile
|
|
381
|
-
bundle install --verbose
|
|
382
|
-
- name: Download gem from build job
|
|
383
|
-
uses: actions/download-artifact@v2
|
|
384
|
-
with:
|
|
385
|
-
name: ${{ matrix.ruby }}-${{ matrix.rails }}-gem
|
|
386
|
-
- name: Install downloaded gem
|
|
387
|
-
run: gem install --local *.gem --verbose
|
|
388
|
-
- name: Run test mssql
|
|
389
|
-
run: bundle exec rake test:mssql
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
AllCops:
|
|
2
2
|
DisabledByDefault: true
|
|
3
3
|
Exclude:
|
|
4
|
-
- "
|
|
4
|
+
- "vendor/**/*"
|
|
5
5
|
|
|
6
6
|
Layout/EndOfLine:
|
|
7
7
|
Enabled: true
|
|
@@ -9,12 +9,31 @@ Layout/EndOfLine:
|
|
|
9
9
|
Layout/ExtraSpacing:
|
|
10
10
|
Enabled: true
|
|
11
11
|
|
|
12
|
+
Layout/IndentationWidth:
|
|
13
|
+
Enabled: true
|
|
14
|
+
|
|
15
|
+
Layout/LineLength:
|
|
16
|
+
Enabled: false
|
|
17
|
+
|
|
18
|
+
Layout/SpaceAfterComma:
|
|
19
|
+
Enabled: true
|
|
20
|
+
|
|
12
21
|
Layout/SpaceAroundEqualsInParameterDefault:
|
|
13
22
|
Enabled: true
|
|
14
23
|
|
|
24
|
+
Layout/SpaceAroundOperators:
|
|
25
|
+
Enabled: true
|
|
26
|
+
|
|
27
|
+
Layout/SpaceInsideHashLiteralBraces:
|
|
28
|
+
Enabled: true
|
|
29
|
+
EnforcedStyle: no_space
|
|
30
|
+
|
|
15
31
|
Layout/TrailingEmptyLines:
|
|
16
32
|
Enabled: true
|
|
17
33
|
|
|
34
|
+
Metrics/BlockLength:
|
|
35
|
+
Enabled: false
|
|
36
|
+
|
|
18
37
|
Naming/FileName:
|
|
19
38
|
Enabled: true
|
|
20
39
|
|
|
@@ -36,9 +55,45 @@ Style/EmptyElse:
|
|
|
36
55
|
Style/Encoding:
|
|
37
56
|
Enabled: true
|
|
38
57
|
|
|
58
|
+
Style/HashSyntax:
|
|
59
|
+
Enabled: true
|
|
60
|
+
EnforcedStyle: ruby19
|
|
61
|
+
|
|
39
62
|
Style/MethodCallWithArgsParentheses:
|
|
40
63
|
Enabled: false
|
|
41
64
|
|
|
65
|
+
Style/MethodCallWithoutArgsParentheses:
|
|
66
|
+
Enabled: true
|
|
67
|
+
|
|
68
|
+
Style/NegatedIf:
|
|
69
|
+
Enabled: false
|
|
70
|
+
|
|
71
|
+
Style/NumericLiterals:
|
|
72
|
+
Enabled: true
|
|
73
|
+
|
|
74
|
+
Style/RedundantParentheses:
|
|
75
|
+
Enabled: true
|
|
76
|
+
|
|
77
|
+
Style/RedundantRegexpCharacterClass:
|
|
78
|
+
Enabled: true
|
|
79
|
+
|
|
80
|
+
Style/RedundantReturn:
|
|
81
|
+
Enabled: true
|
|
82
|
+
|
|
83
|
+
# Even when conservative, this is unsafe.
|
|
84
|
+
#Style/StringConcatenation:
|
|
85
|
+
# Enabled: true
|
|
86
|
+
# Mode: 'conservative'
|
|
87
|
+
|
|
88
|
+
Style/StringLiterals:
|
|
89
|
+
Enabled: true
|
|
90
|
+
|
|
91
|
+
Style/SymbolArray:
|
|
92
|
+
Enabled: true
|
|
93
|
+
|
|
94
|
+
Style/WordArray:
|
|
95
|
+
Enabled: true
|
|
96
|
+
|
|
42
97
|
# Performance cops have been transferred to rubocop-performance gem.
|
|
43
98
|
require: rubocop-performance
|
|
44
99
|
|
|
@@ -47,3 +102,9 @@ Performance/DoubleStartEndWith:
|
|
|
47
102
|
|
|
48
103
|
Performance/RedundantMerge:
|
|
49
104
|
Enabled: true
|
|
105
|
+
|
|
106
|
+
Performance/RegexpMatch:
|
|
107
|
+
Enabled: true
|
|
108
|
+
|
|
109
|
+
Performance/StringReplacement:
|
|
110
|
+
Enabled: true
|
data/Gemfile
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
source
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
3
|
gemspec
|
|
4
4
|
|
|
5
5
|
group :development, :test do
|
|
6
|
-
gem
|
|
7
|
-
gem
|
|
8
|
-
gem
|
|
6
|
+
gem 'sqlite3', '<= 1.3.13', platforms: [:mri]
|
|
7
|
+
gem 'mysql2', '0.4.10', platforms: [:mri]
|
|
8
|
+
gem 'pg', '< 1', platforms: [:mri]
|
|
9
9
|
|
|
10
|
-
gem
|
|
11
|
-
gem
|
|
12
|
-
gem
|
|
13
|
-
gem
|
|
10
|
+
gem 'jdbc-sqlite3', platforms: :jruby
|
|
11
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
12
|
+
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
13
|
+
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
14
14
|
|
|
15
|
-
gem
|
|
16
|
-
gem
|
|
15
|
+
gem 'tiny_tds', '~> 2.1', require: false, platforms: %i[mri mingw x64_mingw mswin]
|
|
16
|
+
gem 'activerecord-sqlserver-adapter', '~> 6.0', platforms: %i[mri mingw x64_mingw mswin]
|
|
17
17
|
|
|
18
|
-
gem 'ruby-oci8', platforms: [
|
|
18
|
+
gem 'ruby-oci8', platforms: %i[mri mswin x64_mingw mingw]
|
|
19
19
|
gem 'activerecord-oracle_enhanced-adapter', '~> 1.6.0'
|
|
20
20
|
|
|
21
21
|
gem 'activesupport', '~> 6.0'
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Arel Extensions
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+

|
|
4
4
|
[](https://ci.appveyor.com/project/yazfav/arel-extensions)
|
|
5
5
|
[](https://hakiri.io/github/Faveod/arel-extensions/master)
|
|
6
6
|

|
data/Rakefile
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
require 'bundler'
|
|
2
|
-
Bundler::GemHelper.install_tasks name:
|
|
2
|
+
Bundler::GemHelper.install_tasks name: 'arel_extensions'
|
|
3
3
|
|
|
4
4
|
require 'rake/testtask'
|
|
5
5
|
|
|
6
|
-
desc
|
|
6
|
+
desc 'Default Task'
|
|
7
7
|
task default: [:test]
|
|
8
8
|
|
|
9
9
|
Rake::TestTask.new(:test) do |t|
|
|
@@ -21,7 +21,7 @@ namespace :test do
|
|
|
21
21
|
t.pattern = 'test/visitors/test_to_sql.rb'
|
|
22
22
|
t.warning = true
|
|
23
23
|
t.verbose = true
|
|
24
|
-
t.ruby_opts = [
|
|
24
|
+
t.ruby_opts = ['--dev'] if defined?(JRUBY_VERSION)
|
|
25
25
|
}
|
|
26
26
|
end
|
|
27
27
|
|
|
@@ -33,7 +33,7 @@ end
|
|
|
33
33
|
t.pattern = 'test/with_ar/*_agnostic_test.rb'
|
|
34
34
|
t.warning = false
|
|
35
35
|
t.verbose = true
|
|
36
|
-
t.ruby_opts = [
|
|
36
|
+
t.ruby_opts = ['--dev'] if defined?(JRUBY_VERSION)
|
|
37
37
|
}
|
|
38
38
|
end
|
|
39
39
|
|
data/TODO
CHANGED
data/appveyor.yml
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
image: Visual Studio 2015
|
|
2
|
+
|
|
3
|
+
version: "{build}"
|
|
4
|
+
|
|
5
|
+
cache:
|
|
6
|
+
- vendor/bundle
|
|
7
|
+
|
|
8
|
+
environment:
|
|
9
|
+
matrix:
|
|
10
|
+
- RUBY_VERSION: 25-x64
|
|
11
|
+
RAILS: 5_2
|
|
12
|
+
SQL: MSSQL$SQL2012SP1
|
|
13
|
+
- RUBY_VERSION: 25-x64
|
|
14
|
+
RAILS: 5_2
|
|
15
|
+
SQL: MSSQL$SQL2014
|
|
16
|
+
- RUBY_VERSION: 25-x64
|
|
17
|
+
RAILS: 5_2
|
|
18
|
+
SQL: MSSQL$SQL2016
|
|
19
|
+
- RUBY_VERSION: 25-x64
|
|
20
|
+
RAILS: 6
|
|
21
|
+
SQL: MSSQL$SQL2012SP1
|
|
22
|
+
- RUBY_VERSION: 25-x64
|
|
23
|
+
RAILS: 6
|
|
24
|
+
SQL: MSSQL$SQL2014
|
|
25
|
+
- RUBY_VERSION: 25-x64
|
|
26
|
+
RAILS: 6
|
|
27
|
+
SQL: MSSQL$SQL2016
|
|
28
|
+
- RUBY_VERSION: 25-x64
|
|
29
|
+
RAILS: 6_1
|
|
30
|
+
SQL: MSSQL$SQL2012SP1
|
|
31
|
+
- RUBY_VERSION: 25-x64
|
|
32
|
+
RAILS: 6_1
|
|
33
|
+
SQL: MSSQL$SQL2014
|
|
34
|
+
- RUBY_VERSION: 25-x64
|
|
35
|
+
RAILS: 6_1
|
|
36
|
+
SQL: MSSQL$SQL2016
|
|
37
|
+
|
|
38
|
+
install:
|
|
39
|
+
- set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
|
|
40
|
+
- gem update --system
|
|
41
|
+
- gem install rubygems-update && update_rubygems
|
|
42
|
+
- bundle config --local path vendor/bundle
|
|
43
|
+
- cp ./gemfiles/rails%RAILS%.gemfile ./Gemfile
|
|
44
|
+
- bundle config set gemfile ./gemfiles/rails%RAILS%.gemfile
|
|
45
|
+
- bundle install
|
|
46
|
+
|
|
47
|
+
build: off
|
|
48
|
+
|
|
49
|
+
before_test:
|
|
50
|
+
- ruby -v
|
|
51
|
+
- gem -v
|
|
52
|
+
- bundle -v
|
|
53
|
+
|
|
54
|
+
test_script:
|
|
55
|
+
- ps: Get-Service '*SQL*'
|
|
56
|
+
- net start %SQL%
|
|
57
|
+
- bundle exec rake test:mssql
|
|
58
|
+
|
|
59
|
+
for:
|
|
60
|
+
-
|
|
61
|
+
matrix:
|
|
62
|
+
except:
|
|
63
|
+
- RAILS: 5_2
|
|
64
|
+
install:
|
|
65
|
+
- set PATH=C:\Ruby%RUBY_VERSION%\bin;%PATH%
|
|
66
|
+
- cp ./gemspecs/arel_extensions-v2.gemspec ./arel_extensions.gemspec
|
|
67
|
+
- cp ./version_v2.rb lib/arel_extensions/version.rb
|
|
68
|
+
- cp ./gemfiles/rails%RAILS%.gemfile ./Gemfile
|
|
69
|
+
- gem update --system
|
|
70
|
+
- gem install rubygems-update && update_rubygems
|
|
71
|
+
- bundle config --local path vendor/bundle
|
|
72
|
+
- bundle config set gemfile ./gemfiles/rails%RAILS%.gemfile
|
|
73
|
+
- bundle install
|
data/arel_extensions.gemspec
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
$:.push File.expand_path(
|
|
2
|
-
require
|
|
1
|
+
$:.push File.expand_path('../lib', __FILE__)
|
|
2
|
+
require 'arel_extensions/version'
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
|
-
s.name =
|
|
5
|
+
s.name = 'arel_extensions'
|
|
6
6
|
s.version = ArelExtensions::VERSION
|
|
7
7
|
s.platform = Gem::Platform::RUBY
|
|
8
|
-
s.authors = [
|
|
9
|
-
s.email = [
|
|
10
|
-
s.homepage =
|
|
11
|
-
s.description =
|
|
12
|
-
s.summary =
|
|
8
|
+
s.authors = ['Yann Azoury', 'Félix Bellanger', 'Julien Delporte']
|
|
9
|
+
s.email = ['yann.azoury@faveod.com', 'felix.bellanger@faveod.com', 'julien.delporte@faveod.com']
|
|
10
|
+
s.homepage = 'https://github.com/Faveod/arel-extensions'
|
|
11
|
+
s.description = 'Adds new features to Arel'
|
|
12
|
+
s.summary = 'Extending Arel'
|
|
13
13
|
s.license = 'MIT'
|
|
14
14
|
|
|
15
|
-
s.rdoc_options = [
|
|
16
|
-
s.extra_rdoc_files = [
|
|
15
|
+
s.rdoc_options = ['--main', 'README.md']
|
|
16
|
+
s.extra_rdoc_files = ['MIT-LICENSE.txt', 'README.md', 'functions.html']
|
|
17
17
|
|
|
18
18
|
# Manifest
|
|
19
19
|
s.files = `git ls-files`.split("\n")
|
|
20
20
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
21
|
-
s.require_paths = [
|
|
21
|
+
s.require_paths = ['lib']
|
|
22
22
|
|
|
23
23
|
s.add_dependency('activerecord', '>= 6.0')
|
|
24
24
|
|
data/gemfiles/rails3.gemfile
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
source
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
3
|
gem 'arel', '~> 3.0' # too old...
|
|
4
4
|
|
|
5
5
|
group :development, :test do
|
|
6
|
-
gem
|
|
7
|
-
gem
|
|
8
|
-
gem
|
|
9
|
-
gem
|
|
6
|
+
gem 'sqlite3', '<= 1.3.13', platform: %i[ruby mswin mingw]
|
|
7
|
+
gem 'mysql2', '0.4.10', platform: %i[ruby mswin mingw]
|
|
8
|
+
gem 'activerecord-mysql2-adapter', platform: %i[ruby mswin mingw]
|
|
9
|
+
gem 'pg', platform: %i[ruby mswin mingw]
|
|
10
10
|
# for JRuby
|
|
11
|
-
gem
|
|
12
|
-
gem
|
|
13
|
-
gem
|
|
14
|
-
gem
|
|
11
|
+
gem 'jdbc-sqlite3', platform: :jruby
|
|
12
|
+
gem 'activerecord-jdbcsqlite3-adapter', platform: :jruby
|
|
13
|
+
gem 'activerecord-jdbcmysql-adapter', platform: :jruby
|
|
14
|
+
gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
|
|
15
15
|
gem 'activesupport', '~> 3.2'
|
|
16
16
|
gem 'activemodel', '~> 3.2'
|
|
17
17
|
gem 'activerecord', '~> 3.2'
|
|
18
18
|
end
|
|
19
19
|
|
|
20
|
-
gemspec path:
|
|
20
|
+
gemspec path: Dir.pwd
|
data/gemfiles/rails4.gemfile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
source
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
3
|
gem 'arel', '~> 6.0'
|
|
4
4
|
|
|
@@ -7,23 +7,23 @@ group :development, :test do
|
|
|
7
7
|
gem 'activemodel', '~> 4.0'
|
|
8
8
|
gem 'activerecord', '~> 4.0'
|
|
9
9
|
|
|
10
|
-
gem
|
|
11
|
-
gem
|
|
12
|
-
gem
|
|
10
|
+
gem 'sqlite3', '<= 1.3.13', platforms: %i[mri mswin mingw]
|
|
11
|
+
gem 'mysql2', '0.4.10', platforms: %i[mri mswin mingw]
|
|
12
|
+
gem 'pg', '< 1.0.0', platforms: %i[mri mingw]
|
|
13
13
|
|
|
14
|
-
gem
|
|
15
|
-
gem
|
|
14
|
+
gem 'tiny_tds', platforms: %i[mri mingw mswin] if RUBY_PLATFORM.match?(/windows/)
|
|
15
|
+
gem 'activerecord-sqlserver-adapter', '~> 4.2.0', platforms: %i[mri mingw mswin] if RUBY_PLATFORM.match?(/windows/)
|
|
16
16
|
|
|
17
|
-
gem 'ruby-oci8', platforms: [
|
|
17
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
|
|
18
18
|
gem 'activerecord-oracle_enhanced-adapter', '~> 1.6.0' if ENV.has_key? 'ORACLE_HOME'
|
|
19
19
|
|
|
20
20
|
# for JRuby
|
|
21
|
-
gem 'activerecord-jdbc-adapter', '~> 1.3',platforms: :jruby
|
|
22
|
-
gem
|
|
23
|
-
gem
|
|
24
|
-
gem
|
|
25
|
-
gem
|
|
26
|
-
gem
|
|
21
|
+
gem 'activerecord-jdbc-adapter', '~> 1.3', platforms: :jruby
|
|
22
|
+
gem 'jdbc-sqlite3', platforms: :jruby
|
|
23
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
24
|
+
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
25
|
+
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
26
|
+
gem 'activerecord-jdbcmssql-adapter', platforms: :jruby
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
gemspec path:
|
|
29
|
+
gemspec path: Dir.pwd
|
data/gemfiles/rails5_0.gemfile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
source
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
3
|
gem 'arel', '~> 7.0'
|
|
4
4
|
|
|
@@ -7,23 +7,23 @@ group :development, :test do
|
|
|
7
7
|
gem 'activemodel', '~> 5.0'
|
|
8
8
|
gem 'activerecord', '5.0.6'
|
|
9
9
|
|
|
10
|
-
gem
|
|
11
|
-
gem
|
|
12
|
-
gem
|
|
10
|
+
gem 'sqlite3', '<= 1.3.13', platforms: %i[mri mswin mingw]
|
|
11
|
+
gem 'mysql2', '0.4.10', platforms: %i[mri mswin mingw]
|
|
12
|
+
gem 'pg', '< 1.0.0', platforms: %i[mri mingw]
|
|
13
13
|
|
|
14
|
-
gem
|
|
15
|
-
# gem "activerecord-sqlserver-adapter", :
|
|
14
|
+
gem 'tiny_tds', platforms: %i[mri mingw] if RUBY_PLATFORM.match?(/windows/)
|
|
15
|
+
# gem "activerecord-sqlserver-adapter", platforms: [:mri, :mingw]
|
|
16
16
|
|
|
17
|
-
gem 'ruby-oci8', platforms: [
|
|
17
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
|
|
18
18
|
gem 'activerecord-oracle_enhanced-adapter', '~> 1.7' if ENV.has_key? 'ORACLE_HOME'
|
|
19
19
|
|
|
20
20
|
# for JRuby
|
|
21
21
|
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v50.0', platforms: :jruby
|
|
22
|
-
gem
|
|
23
|
-
gem
|
|
24
|
-
gem
|
|
25
|
-
gem
|
|
26
|
-
gem
|
|
22
|
+
gem 'jdbc-sqlite3', platforms: :jruby
|
|
23
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
24
|
+
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
25
|
+
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
26
|
+
gem 'activerecord-jdbcmssql-adapter', platforms: :jruby
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
gemspec path:
|
|
29
|
+
gemspec path: Dir.pwd
|