arel_extensions 1.7.0 → 2.0.0.rc3
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 +2 -1
- data/.gitignore +6 -8
- data/.rubocop.yml +4 -194
- data/.travis/oracle/download.js +152 -0
- data/.travis/oracle/download.sh +30 -0
- data/.travis/oracle/download_ojdbc.js +116 -0
- data/.travis/oracle/install.sh +34 -0
- data/.travis/setup_accounts.sh +9 -0
- data/.travis/sqlite3/extension-functions.sh +6 -0
- data/.travis.yml +223 -0
- data/Gemfile +28 -2
- data/README.md +89 -265
- data/Rakefile +30 -50
- data/TODO +1 -0
- data/appveyor.yml +22 -60
- data/arel_extensions.gemspec +17 -14
- data/functions.html +3 -3
- data/gemfiles/rails3.gemfile +20 -0
- data/gemfiles/rails4.gemfile +29 -0
- data/gemfiles/rails5_0.gemfile +29 -0
- data/gemfiles/rails5_1_4.gemfile +17 -19
- data/gemfiles/rails5_2.gemfile +17 -26
- data/init/mssql.sql +4 -4
- data/init/mysql.sql +38 -38
- data/init/oracle.sql +0 -0
- data/init/postgresql.sql +25 -24
- data/init/sqlite.sql +0 -0
- data/lib/arel_extensions/attributes.rb +3 -9
- data/lib/arel_extensions/boolean_functions.rb +16 -57
- data/lib/arel_extensions/common_sql_functions.rb +20 -21
- data/lib/arel_extensions/comparators.rb +28 -31
- data/lib/arel_extensions/date_duration.rb +13 -19
- data/lib/arel_extensions/insert_manager.rb +15 -22
- data/lib/arel_extensions/math.rb +70 -68
- data/lib/arel_extensions/math_functions.rb +52 -57
- data/lib/arel_extensions/nodes/abs.rb +1 -0
- data/lib/arel_extensions/nodes/blank.rb +5 -6
- data/lib/arel_extensions/nodes/case.rb +27 -31
- data/lib/arel_extensions/nodes/cast.rb +12 -12
- data/lib/arel_extensions/nodes/ceil.rb +1 -1
- data/lib/arel_extensions/nodes/coalesce.rb +5 -4
- data/lib/arel_extensions/nodes/collate.rb +10 -9
- data/lib/arel_extensions/nodes/concat.rb +22 -13
- data/lib/arel_extensions/nodes/date_diff.rb +70 -77
- data/lib/arel_extensions/nodes/duration.rb +5 -2
- data/lib/arel_extensions/nodes/find_in_set.rb +1 -0
- data/lib/arel_extensions/nodes/floor.rb +1 -1
- data/lib/arel_extensions/nodes/format.rb +8 -35
- data/lib/arel_extensions/nodes/formatted_number.rb +23 -22
- data/lib/arel_extensions/nodes/function.rb +39 -50
- data/lib/arel_extensions/nodes/is_null.rb +0 -2
- data/lib/arel_extensions/nodes/json.rb +47 -72
- data/lib/arel_extensions/nodes/length.rb +0 -5
- data/lib/arel_extensions/nodes/levenshtein_distance.rb +2 -2
- data/lib/arel_extensions/nodes/locate.rb +3 -2
- data/lib/arel_extensions/nodes/log10.rb +2 -1
- data/lib/arel_extensions/nodes/matches.rb +8 -6
- data/lib/arel_extensions/nodes/md5.rb +1 -0
- data/lib/arel_extensions/nodes/power.rb +5 -5
- data/lib/arel_extensions/nodes/rand.rb +3 -2
- data/lib/arel_extensions/nodes/repeat.rb +6 -4
- data/lib/arel_extensions/nodes/replace.rb +8 -16
- data/lib/arel_extensions/nodes/round.rb +7 -6
- data/lib/arel_extensions/nodes/soundex.rb +15 -15
- data/lib/arel_extensions/nodes/std.rb +21 -18
- data/lib/arel_extensions/nodes/substring.rb +16 -58
- data/lib/arel_extensions/nodes/then.rb +2 -2
- data/lib/arel_extensions/nodes/trim.rb +7 -5
- data/lib/arel_extensions/nodes/union.rb +9 -6
- data/lib/arel_extensions/nodes/union_all.rb +8 -5
- data/lib/arel_extensions/nodes/wday.rb +6 -2
- data/lib/arel_extensions/nodes.rb +1 -1
- data/lib/arel_extensions/null_functions.rb +6 -18
- data/lib/arel_extensions/predications.rb +49 -54
- data/lib/arel_extensions/railtie.rb +5 -5
- data/lib/arel_extensions/set_functions.rb +7 -5
- data/lib/arel_extensions/string_functions.rb +55 -110
- data/lib/arel_extensions/tasks.rb +6 -6
- data/lib/arel_extensions/version.rb +1 -3
- data/lib/arel_extensions/visitors/ibm_db.rb +36 -29
- data/lib/arel_extensions/visitors/mssql.rb +248 -493
- data/lib/arel_extensions/visitors/mysql.rb +244 -420
- data/lib/arel_extensions/visitors/oracle.rb +258 -311
- data/lib/arel_extensions/visitors/oracle12.rb +34 -20
- data/lib/arel_extensions/visitors/postgresql.rb +239 -350
- data/lib/arel_extensions/visitors/sqlite.rb +169 -191
- data/lib/arel_extensions/visitors/to_sql.rb +299 -371
- data/lib/arel_extensions/visitors.rb +62 -83
- data/lib/arel_extensions.rb +32 -243
- data/test/database.yml +10 -20
- data/test/helper.rb +18 -0
- data/test/real_db_test.rb +120 -123
- data/test/support/fake_record.rb +3 -11
- data/test/test_comparators.rb +17 -14
- data/test/visitors/test_bulk_insert_oracle.rb +12 -12
- data/test/visitors/test_bulk_insert_sqlite.rb +14 -13
- data/test/visitors/test_bulk_insert_to_sql.rb +13 -11
- data/test/visitors/test_oracle.rb +55 -55
- data/test/visitors/test_to_sql.rb +226 -419
- data/test/with_ar/all_agnostic_test.rb +375 -912
- data/test/with_ar/insert_agnostic_test.rb +22 -28
- data/test/with_ar/test_bulk_sqlite.rb +17 -18
- data/test/with_ar/test_math_sqlite.rb +27 -27
- data/test/with_ar/test_string_mysql.rb +34 -32
- data/test/with_ar/test_string_sqlite.rb +35 -31
- metadata +64 -50
- data/.github/workflows/publish.yml +0 -30
- data/.github/workflows/release.yml +0 -30
- data/.github/workflows/ruby.yml +0 -452
- data/CONTRIBUTING.md +0 -102
- data/Makefile +0 -48
- data/NEWS.md +0 -131
- data/bin/build +0 -15
- data/bin/publish +0 -8
- data/dev/arelx.dockerfile +0 -41
- data/dev/compose.yaml +0 -69
- data/dev/postgres.dockerfile +0 -5
- data/dev/rbenv +0 -189
- data/gemfiles/rails5.gemfile +0 -36
- data/gemfiles/rails6.gemfile +0 -40
- data/gemfiles/rails6_1.gemfile +0 -48
- data/gemfiles/rails7.gemfile +0 -48
- data/gemfiles/rails7_1.gemfile +0 -48
- data/gemfiles/rails7_2.gemfile +0 -47
- data/gemfiles/rails8.gemfile +0 -40
- data/gemfiles/rails8_1.gemfile +0 -41
- data/gemspecs/arel_extensions-v1.gemspec +0 -25
- data/gemspecs/arel_extensions-v2.gemspec +0 -25
- data/generate_gems.sh +0 -15
- data/lib/arel_extensions/aliases.rb +0 -14
- data/lib/arel_extensions/constants.rb +0 -13
- data/lib/arel_extensions/helpers.rb +0 -61
- data/lib/arel_extensions/nodes/aggregate_function.rb +0 -13
- data/lib/arel_extensions/nodes/byte_size.rb +0 -11
- data/lib/arel_extensions/nodes/char_length.rb +0 -11
- data/lib/arel_extensions/nodes/formatted_date.rb +0 -42
- data/lib/arel_extensions/nodes/rollup.rb +0 -36
- data/lib/arel_extensions/nodes/select.rb +0 -10
- data/lib/arel_extensions/nodes/sum.rb +0 -7
- data/lib/arel_extensions/visitors/convert_format.rb +0 -37
- data/lib/arel_extensions/warning.rb +0 -42
- data/test/arelx_test_helper.rb +0 -94
- data/test/config_loader.rb +0 -9
- data/version_v1.rb +0 -5
- data/version_v2.rb +0 -5
data/NEWS.md
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
# News
|
|
2
|
-
|
|
3
|
-
## [unreleased]
|
|
4
|
-
|
|
5
|
-
## Release v2.5.0/v1.7.0 (02-09-2026)
|
|
6
|
-
|
|
7
|
-
- Fix a typo preventing optimizer hints from being applied on SELECT in MySQL.
|
|
8
|
-
- Fix a bug (crash) in Group Concat of MSSQL.
|
|
9
|
-
- Fix a crash when building a JSON document from numeric literal values (e.g. `Arel.json(col => 1)`), on sqlite and mssql.
|
|
10
|
-
- MS SQL: string casts and MD5 input now use `varchar(MAX)`, so long strings are
|
|
11
|
-
no longer truncated at 30 characters (the default when only `varchar` is specified).
|
|
12
|
-
- PostgreSQL: JSON creation from non-JSON text now encodes it (`to_jsonb` instead of a
|
|
13
|
-
bare `::jsonb` cast), and `json.set(key, nil)` sets the JSON null member instead of the db's NULL.
|
|
14
|
-
- PostgreSQL: an empty JSON array (`Arel.json([])`) is now rendered as `'[]'::jsonb`
|
|
15
|
-
instead of `to_jsonb(array[])`.
|
|
16
|
-
- JSON: Booleans (`true`/`false`) are now supported as JSON values, whether as literals
|
|
17
|
-
(`Arel.json({ col => true })`) or boolean columns (`Arel.json({ col => bool_col })`).
|
|
18
|
-
- String slicing: the `[range..]` syntax, and calls to `substring` now behave exactly as in Ruby and MySQL, notably handling negative and beginless/endless indices.
|
|
19
|
-
|
|
20
|
-
## Release v2.4.0/v1.6.0 (23-12-2025)
|
|
21
|
-
|
|
22
|
-
- Drop supoprt for Ruby < 2.7.
|
|
23
|
-
- Drop support for Rails < 5.2.
|
|
24
|
-
- Add support for Rails 8 and 8.1.
|
|
25
|
-
- Add `byte_size` and `char_length`. They should replace all uses of `length` because it's inconsistent across vendors; it can surprise you and give you byte size when you expect string length.
|
|
26
|
-
|
|
27
|
-
## Release v2.3.3/v1.5.3 (11-02-2025)
|
|
28
|
-
|
|
29
|
-
- Fix the `&` operator which does `find_in_set` for mysql and postgres, accepting strings and integers.
|
|
30
|
-
- Add `regex_matches`, an alias for `=~`.
|
|
31
|
-
|
|
32
|
-
## Release v2.3.2/v1.5.2 (02-01-2025)
|
|
33
|
-
|
|
34
|
-
- Fix a subtle bug on table access as in `table[:col]` in certain situations.
|
|
35
|
-
- `==` and `!=` deprecation warnings can stem from `arel` itself, so now we don't emit them because they're plain wrong.
|
|
36
|
-
|
|
37
|
-
## Release v2.3.1/v1.5.1 (20-12-2024)
|
|
38
|
-
|
|
39
|
-
- Fallback to Ruby's Warning module if ActiveSupport doesn't exist. Relevant for old Rails versions.
|
|
40
|
-
- Added documentation on how to _"properly"_ configure the deprecator in a Rails application.
|
|
41
|
-
|
|
42
|
-
## Release v2.3.0/v1.5.0 (19-12-2024)
|
|
43
|
-
|
|
44
|
-
- Use ActiveSupport's deprecation machinery instead of Ruby's Warning module.
|
|
45
|
-
- Fix a bug with group concat that didn't correctly check for the separator value.
|
|
46
|
-
|
|
47
|
-
## Release v2.2.2/v1.4.2 (27-11-2024)
|
|
48
|
-
|
|
49
|
-
- Fix deprecation warnings for `==` and `!=`, showing the true location.
|
|
50
|
-
- Always emit deprecation warnings for `==` and `!=`.
|
|
51
|
-
|
|
52
|
-
## Release v2.2.1/v1.4.1 (08-11-2024)
|
|
53
|
-
|
|
54
|
-
- Improved deprecation warnings for `==` and `!=`, showing the location where they're called.
|
|
55
|
-
|
|
56
|
-
## Release v2.2.0/v1.4.0
|
|
57
|
-
|
|
58
|
-
- MS SQL: restrict date-quoting to Arel <= 6 (Rails 4.2)
|
|
59
|
-
- MS SQL: turn on warnings on requires only when gem is found
|
|
60
|
-
- Rails: 7.2 support for mysql, postgres, and sqlite.
|
|
61
|
-
- Attributes: deprecate `==` and `!=`. They're causing issues with
|
|
62
|
-
`active_record`, and they're not sanitary.
|
|
63
|
-
|
|
64
|
-
## Release v2.1.11/v1.3.11
|
|
65
|
-
|
|
66
|
-
- MS SQL: turn on warnings on requires only when necessary.
|
|
67
|
-
|
|
68
|
-
## Release v2.1.10/v1.3.10
|
|
69
|
-
|
|
70
|
-
- MS SQL: add support for jruby 9.4 via [activerecord-jdbc-alt-adapter](https://rubygems.org/gems/activerecord-jdbc-alt-adapter/)
|
|
71
|
-
|
|
72
|
-
## Release v2.1.9/v1.3.9
|
|
73
|
-
|
|
74
|
-
### Bug Fixes
|
|
75
|
-
|
|
76
|
-
- Postgres:
|
|
77
|
-
- Datetime formatting in postgres now behaves like mysql: if the target
|
|
78
|
-
timezone is a string, we automatically consider that you're trying to
|
|
79
|
-
convert from `UTC`.
|
|
80
|
-
- Datetime casting will now automatically ask for a
|
|
81
|
-
`timestamp without timezone`, also aligning with the expected befavior
|
|
82
|
-
in mysql. This also makes casting work better with timezone conversion,
|
|
83
|
-
especially if you don't pass the timezone from which you're converting
|
|
84
|
-
to.
|
|
85
|
-
```ruby
|
|
86
|
-
scope
|
|
87
|
-
.select(Arel.quoted('2022-02-01 10:42:00')
|
|
88
|
-
.cast(:datetime)
|
|
89
|
-
.format_date('%Y/%m/%d %H:%M:%S', 'Europe/Paris')
|
|
90
|
-
.as('res'))
|
|
91
|
-
```
|
|
92
|
-
Will produce:
|
|
93
|
-
```sql
|
|
94
|
-
SELECT TO_CHAR(
|
|
95
|
-
CAST('2022-02-01 10:42:00' AS timestamp without time zone) AT TIME ZONE 'UTC' AT TIME ZONE 'Europe/Paris',
|
|
96
|
-
'YYYY/MM/DD HH24:MI:SS'
|
|
97
|
-
)
|
|
98
|
-
AS "res"
|
|
99
|
-
-- …
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Release v2.1.7/v1.3.7
|
|
103
|
-
|
|
104
|
-
### New Features
|
|
105
|
-
|
|
106
|
-
- `o.format_date` as an alternative to `o.format`
|
|
107
|
-
The actual behavior of `format` is inconsistent across DB vendors: in mysql we
|
|
108
|
-
can format dates and numbers with it, and in the other ones we only format
|
|
109
|
-
dates.
|
|
110
|
-
|
|
111
|
-
We're planning on normalizing this behavior. We want `format` to "cleverly"
|
|
112
|
-
format dates or numbers, and `format_date` / `format_number` to strictly
|
|
113
|
-
format dates / numbers.
|
|
114
|
-
|
|
115
|
-
The introduction of `format_date` is the first step in this direction.
|
|
116
|
-
|
|
117
|
-
## Release v2.1.6/v1.3.6
|
|
118
|
-
|
|
119
|
-
### Bug Fixes
|
|
120
|
-
|
|
121
|
-
- This used to fail.
|
|
122
|
-
```
|
|
123
|
-
Arel.when(a).then(b).format('%Y-%m-%d')
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
### New Features
|
|
127
|
-
|
|
128
|
-
- `o.present`, a synonym for `o.not_blank`
|
|
129
|
-
- `o.coalesce_blank(a, b, c)`
|
|
130
|
-
- `o.if_present`, if the value is `null` or blank, then it returns `null`,
|
|
131
|
-
otherwise, it returns the value. Inspired by rails' `presence`.
|
data/bin/build
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
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
DELETED
data/dev/arelx.dockerfile
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
FROM ubuntu:22.04
|
|
2
|
-
|
|
3
|
-
ENV APP_HOME=/app
|
|
4
|
-
ENV DEBIAN_FRONTEND=noninteractive
|
|
5
|
-
|
|
6
|
-
RUN mkdir -p $APP_HOME
|
|
7
|
-
|
|
8
|
-
# Install OS dependencies
|
|
9
|
-
RUN apt-get update -q && apt-get install -y \
|
|
10
|
-
curl bundler build-essential git gnupg locales \
|
|
11
|
-
libbz2-dev libffi-dev liblzma-dev lsb-release libsqlite3-dev libyaml-dev \
|
|
12
|
-
make neovim ncurses-term openjdk-17-jdk-headless tzdata zlib1g-dev \
|
|
13
|
-
&& ln -fs /usr/share/zoneinfo/UTC /etc/localtime \
|
|
14
|
-
&& dpkg-reconfigure --frontend noninteractive tzdata
|
|
15
|
-
|
|
16
|
-
# Add DB Repo Keys
|
|
17
|
-
RUN curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg \
|
|
18
|
-
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list \
|
|
19
|
-
&& curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc \
|
|
20
|
-
&& curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list \
|
|
21
|
-
&& apt-get update -q
|
|
22
|
-
|
|
23
|
-
# Install DB Clients
|
|
24
|
-
RUN ACCEPT_EULA=y DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
25
|
-
freetds-dev libmysqlclient-dev mysql-client msodbcsql18 mssql-tools18 unixodbc-dev libpq-dev \
|
|
26
|
-
&& echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc \
|
|
27
|
-
&& apt-get clean \
|
|
28
|
-
&& rm -rf /var/lib/apt/lists/* \
|
|
29
|
-
&& locale-gen en_US.UTF-8
|
|
30
|
-
|
|
31
|
-
WORKDIR $APP_HOME
|
|
32
|
-
|
|
33
|
-
# Install Ruby via Mise
|
|
34
|
-
ENV MISE_DATA_DIR="/mise"
|
|
35
|
-
ENV MISE_CONFIG_DIR="/mise"
|
|
36
|
-
ENV MISE_CACHE_DIR="/mise/cache"
|
|
37
|
-
ENV MISE_INSTALL_PATH="/usr/local/bin/mise"
|
|
38
|
-
ENV PATH="/mise/shims:$PATH"
|
|
39
|
-
|
|
40
|
-
RUN curl https://mise.run | sh
|
|
41
|
-
RUN mise install ruby
|
data/dev/compose.yaml
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
name: arelx
|
|
2
|
-
services:
|
|
3
|
-
arelx:
|
|
4
|
-
container_name: arelx-build
|
|
5
|
-
build:
|
|
6
|
-
context: ..
|
|
7
|
-
dockerfile: dev/arelx.dockerfile
|
|
8
|
-
volumes:
|
|
9
|
-
- ../:/app
|
|
10
|
-
- gem_cache:/mise/installs/ruby
|
|
11
|
-
command: tail -f /dev/null
|
|
12
|
-
depends_on:
|
|
13
|
-
mariadb:
|
|
14
|
-
condition: service_healthy
|
|
15
|
-
postgres:
|
|
16
|
-
condition: service_healthy
|
|
17
|
-
# TODO: Fix, it's not healthy apparently
|
|
18
|
-
# mssql:
|
|
19
|
-
# condition: service_healthy
|
|
20
|
-
environment:
|
|
21
|
-
# Map ENV vars for database.yml
|
|
22
|
-
MYSQL_HOST: mariadb
|
|
23
|
-
POSTGRES_HOST: postgres
|
|
24
|
-
MSSQL_HOST: mssql
|
|
25
|
-
|
|
26
|
-
mariadb:
|
|
27
|
-
image: mariadb:11.0
|
|
28
|
-
container_name: mariadb
|
|
29
|
-
environment:
|
|
30
|
-
MARIADB_DATABASE: arelx_test
|
|
31
|
-
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: true
|
|
32
|
-
healthcheck:
|
|
33
|
-
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
34
|
-
interval: 5s
|
|
35
|
-
timeout: 5s
|
|
36
|
-
retries: 5
|
|
37
|
-
|
|
38
|
-
postgres:
|
|
39
|
-
build:
|
|
40
|
-
context: ..
|
|
41
|
-
dockerfile: dev/postgres.dockerfile
|
|
42
|
-
container_name: postgres
|
|
43
|
-
environment:
|
|
44
|
-
POSTGRES_USER: postgres
|
|
45
|
-
POSTGRES_PASSWORD: secret
|
|
46
|
-
POSTGRES_DB: arelx_test
|
|
47
|
-
healthcheck:
|
|
48
|
-
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
|
|
49
|
-
interval: 5s
|
|
50
|
-
timeout: 5s
|
|
51
|
-
retries: 5
|
|
52
|
-
|
|
53
|
-
mssql:
|
|
54
|
-
image: mcr.microsoft.com/mssql/server:2019-latest
|
|
55
|
-
container_name: mssql
|
|
56
|
-
platform: linux/amd64
|
|
57
|
-
environment:
|
|
58
|
-
ACCEPT_EULA: Y
|
|
59
|
-
# MSSQL_COLLATION: Latin1_General_100_CI_AS_SC_UTF8
|
|
60
|
-
MSSQL_SA_PASSWORD: Password12!
|
|
61
|
-
healthcheck:
|
|
62
|
-
test: ["CMD-SHELL", "/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $${MSSQL_SA_PASSWORD} -Q 'SELECT 1'"]
|
|
63
|
-
interval: 10s
|
|
64
|
-
retries: 20
|
|
65
|
-
start_period: 30s
|
|
66
|
-
timeout: 10s
|
|
67
|
-
|
|
68
|
-
volumes:
|
|
69
|
-
gem_cache:
|
data/dev/postgres.dockerfile
DELETED
data/dev/rbenv
DELETED
|
@@ -1,189 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
# frozen_string_literal: true
|
|
3
|
-
|
|
4
|
-
require 'colorize'
|
|
5
|
-
require 'etc'
|
|
6
|
-
require 'open3'
|
|
7
|
-
require 'pathname'
|
|
8
|
-
require 'stringio'
|
|
9
|
-
require 'toml-rb'
|
|
10
|
-
require 'psych'
|
|
11
|
-
|
|
12
|
-
workflow = Pathname('.github/workflows/ruby.yml').read.gsub!(/rails: (\d(_\d)?)/, 'rails: "\1"')
|
|
13
|
-
jobs = Psych.load(workflow, symbolize_names: true)[:jobs]
|
|
14
|
-
data = {}
|
|
15
|
-
jobs.each do |name, details|
|
|
16
|
-
details[:strategy][:matrix][:versions].each do |entry|
|
|
17
|
-
db = name.to_s.gsub(/\Ajob_test_/, '').to_sym
|
|
18
|
-
ruby = entry[:ruby]
|
|
19
|
-
rails = entry[:rails]
|
|
20
|
-
arelx = entry[:arelx]
|
|
21
|
-
gemspec = :"arel_extensions-v#{arelx}"
|
|
22
|
-
gemfile = :"rails#{rails}"
|
|
23
|
-
|
|
24
|
-
data[db] ||= {}
|
|
25
|
-
data[db][gemspec] ||= {}
|
|
26
|
-
data[db][gemspec][gemfile] ||= []
|
|
27
|
-
data[db][gemspec][gemfile] << ruby
|
|
28
|
-
data[db][gemspec][gemfile].sort!
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
MATRIX = data.freeze
|
|
33
|
-
|
|
34
|
-
def sh(command, exit_on_fail: true, stealth: false)
|
|
35
|
-
cmd, args = command.split(' ', 2)
|
|
36
|
-
puts "#{'$'.green.bold} #{cmd.blue} #{args&.yellow}"
|
|
37
|
-
Open3.popen3(command) do |stdin, stdout, stderr, wait_thr|
|
|
38
|
-
stdin.close
|
|
39
|
-
out, err =
|
|
40
|
-
if stealth
|
|
41
|
-
[StringIO.new, StringIO.new]
|
|
42
|
-
else
|
|
43
|
-
[$stdout, $stderr]
|
|
44
|
-
end
|
|
45
|
-
th_out = Thread.new do
|
|
46
|
-
stdout.each_line { |line| out.puts line }
|
|
47
|
-
end
|
|
48
|
-
th_err = Thread.new do
|
|
49
|
-
stderr.each_line { |line| err.puts line }
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
th_out.join
|
|
53
|
-
th_err.join
|
|
54
|
-
wait_thr.join
|
|
55
|
-
exit_status = wait_thr.value.exitstatus
|
|
56
|
-
if exit_status.nonzero?
|
|
57
|
-
warn "'#{command}' failed with exit status #{exit_status}. Aborting …".red
|
|
58
|
-
warn stderr if !stealth
|
|
59
|
-
exit exit_status if exit_on_fail
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
if stealth
|
|
63
|
-
[out.string, err.string, (exit_status if !exit_on_fail)].compact
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
module RBEnv
|
|
69
|
-
RBENV_ROOT =
|
|
70
|
-
if (root = ENV['RBENV_ROOT']) && root && !root.strip.empty?
|
|
71
|
-
Pathname(root)
|
|
72
|
-
else
|
|
73
|
-
Pathname(Dir.home).join('.rbenv')
|
|
74
|
-
end.freeze
|
|
75
|
-
RBENV_BUILD = RBENV_ROOT.join('plugins').join('ruby-build').freeze
|
|
76
|
-
SHELL = Pathname(Etc.getpwuid.shell).basename.to_s.downcase.to_sym
|
|
77
|
-
|
|
78
|
-
def self.available_versions
|
|
79
|
-
out, _ = sh "rbenv versions --bare", stealth: true
|
|
80
|
-
res = out.lines.map(&:strip)
|
|
81
|
-
warn res
|
|
82
|
-
res
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def self.ensure(ruby_version)
|
|
86
|
-
version = RBEnv.resolve_to_latest(ruby_version)
|
|
87
|
-
if self.installed?(version)
|
|
88
|
-
puts "#{version.yellow} already installed. Skipping …"
|
|
89
|
-
else
|
|
90
|
-
puts "Installing #{version.yellow}"
|
|
91
|
-
sh "rbenv install #{version}"
|
|
92
|
-
end
|
|
93
|
-
version
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def self.install
|
|
97
|
-
if RBENV_ROOT.exist?
|
|
98
|
-
puts "#{RBENV_ROOT} exists. Skipping …"
|
|
99
|
-
else
|
|
100
|
-
sh "git clone --depth 1 https://github.com/rbenv/rbenv.git #{RBENV_ROOT}"
|
|
101
|
-
puts "Setup your shell to recognize rbenv. Check github.com/rbenv/rbenv."
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
if RBENV_BUILD.exist?
|
|
105
|
-
puts "#{RBENV_BUILD} exists. Skipping …"
|
|
106
|
-
else
|
|
107
|
-
sh "git clone --depth 1 https://github.com/rbenv/ruby-build.git #{RBENV_BUILD}"
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
def self.installed?(version)
|
|
112
|
-
installed = available_versions
|
|
113
|
-
puts "installed? = #{installed}"
|
|
114
|
-
installed && !installed.empty? && installed.include?(version)
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def self.resolve_to_latest(version)
|
|
118
|
-
out, _ = sh "rbenv install --list-all", stealth: true
|
|
119
|
-
out
|
|
120
|
-
.lines
|
|
121
|
-
.map(&:strip)
|
|
122
|
-
.select { |v| v.match(/^#{Regexp.escape(version)}\.\d+/) }
|
|
123
|
-
.max_by { |v| v.split('.').map(&:to_i) }
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
def self.set(version)
|
|
127
|
-
sh "rbenv local #{version}"
|
|
128
|
-
end
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
module CI
|
|
132
|
-
def self.help(*_args)
|
|
133
|
-
puts "Usage:"
|
|
134
|
-
puts " #{$0} [#{CI.singleton_class.instance_methods(false).sort.join(' | ')}]"
|
|
135
|
-
puts
|
|
136
|
-
puts "You can ask for many commands."
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def self.install(*_args)
|
|
140
|
-
RBEnv.install
|
|
141
|
-
MATRIX
|
|
142
|
-
.flat_map { |_, db|
|
|
143
|
-
db.flat_map { |_, arelx|
|
|
144
|
-
arelx.flat_map { |rails, rubies|
|
|
145
|
-
rails.start_with?("rails") ? rubies : []
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
.uniq
|
|
150
|
-
.sort
|
|
151
|
-
.each do |version|
|
|
152
|
-
RBEnv.ensure(version)
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
# @param args [Array<String>] a list of databases to test
|
|
157
|
-
def self.test(*args)
|
|
158
|
-
puts "Requested DBs: #{args.inspect}"
|
|
159
|
-
MATRIX.each do |db, arelx|
|
|
160
|
-
puts "db = #{db}; #{!args.empty? && args.include?(db)}"
|
|
161
|
-
if args.empty? || args.include?(db)
|
|
162
|
-
puts "Testing #{db}"
|
|
163
|
-
else
|
|
164
|
-
puts "Skipping #{db}"
|
|
165
|
-
next
|
|
166
|
-
end
|
|
167
|
-
arelx.each do |arelx_version, rails|
|
|
168
|
-
sh "cp ./gemspecs/#{arelx_version}.gemspec ./arel_extensions.gemspec"
|
|
169
|
-
rails.each do |rails_version, ruby|
|
|
170
|
-
sh "cp ./gemfiles/#{rails_version}.gemfile ./Gemfile"
|
|
171
|
-
ruby.each do |ruby_version|
|
|
172
|
-
full_version = RBEnv.ensure(ruby_version)
|
|
173
|
-
RBEnv.set(full_version)
|
|
174
|
-
sh "ruby --version"
|
|
175
|
-
sh "which ruby"
|
|
176
|
-
sh "rm -rf Gemfile.lock vendor"
|
|
177
|
-
sh "bundle config set --local path vendor"
|
|
178
|
-
sh "bundle install"
|
|
179
|
-
sh "bundle exec rake test:#{db}"
|
|
180
|
-
end
|
|
181
|
-
end
|
|
182
|
-
end
|
|
183
|
-
end
|
|
184
|
-
end
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
# main
|
|
188
|
-
command = ARGV.size.nonzero? ? ARGV : %w[help]
|
|
189
|
-
CI.send(command[0], *command[1..])
|
data/gemfiles/rails5.gemfile
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
source 'https://rubygems.org'
|
|
4
|
-
|
|
5
|
-
gem 'arel', '~> 7.0'
|
|
6
|
-
|
|
7
|
-
group :development, :test do
|
|
8
|
-
gem 'minitest', '~> 5.9'
|
|
9
|
-
gem 'rake', '~> 12.3.3'
|
|
10
|
-
gem 'rubocop'
|
|
11
|
-
gem 'rubocop-performance'
|
|
12
|
-
|
|
13
|
-
gem 'activemodel', '~> 5.0'
|
|
14
|
-
gem 'activerecord', '5.0.6'
|
|
15
|
-
gem 'activesupport', '~> 5.0'
|
|
16
|
-
|
|
17
|
-
gem 'mysql2', '0.4.10', platforms: %i[mri mswin mingw]
|
|
18
|
-
gem 'pg', '< 1.0.0', platforms: %i[mri mingw]
|
|
19
|
-
gem 'sqlite3', '<= 1.3.13', platforms: %i[mri mswin mingw]
|
|
20
|
-
|
|
21
|
-
gem 'tiny_tds', platforms: %i[mri mingw] if RUBY_PLATFORM.include?('windows')
|
|
22
|
-
# gem "activerecord-sqlserver-adapter", platforms: [:mri, :mingw]
|
|
23
|
-
|
|
24
|
-
gem 'activerecord-oracle_enhanced-adapter', '~> 1.7' if ENV.key? 'ORACLE_HOME'
|
|
25
|
-
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.key? 'ORACLE_HOME'
|
|
26
|
-
|
|
27
|
-
# for JRuby
|
|
28
|
-
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v50.0', platforms: :jruby
|
|
29
|
-
gem 'activerecord-jdbcmssql-adapter', platforms: :jruby
|
|
30
|
-
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
31
|
-
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
32
|
-
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
33
|
-
gem 'jdbc-sqlite3', platforms: :jruby
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
gemspec path: Dir.pwd
|
data/gemfiles/rails6.gemfile
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
source 'https://rubygems.org'
|
|
4
|
-
|
|
5
|
-
gem 'rails', '~> 6.0.0'
|
|
6
|
-
|
|
7
|
-
group :development, :test do
|
|
8
|
-
gem 'concurrent-ruby', '1.3.4' # Need to pin b/c of a known issue https://github.com/rails/rails/issues/54260
|
|
9
|
-
gem 'debug', platforms: %i[mri]
|
|
10
|
-
gem 'minitest', '~> 5.9'
|
|
11
|
-
gem 'rake', '~> 12.3.3'
|
|
12
|
-
gem 'rubocop'
|
|
13
|
-
gem 'rubocop-performance'
|
|
14
|
-
gem 'ruby-lsp', platforms: %i[mri]
|
|
15
|
-
|
|
16
|
-
gem 'activemodel', '~> 6.0.0'
|
|
17
|
-
gem 'activerecord', '~> 6.0.0'
|
|
18
|
-
gem 'activesupport', '~> 6.0.0'
|
|
19
|
-
|
|
20
|
-
gem 'mysql2', '0.5.2', platforms: [:mri]
|
|
21
|
-
gem 'pg', '< 1.0.0', platforms: [:mri]
|
|
22
|
-
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
|
23
|
-
|
|
24
|
-
gem 'activerecord-sqlserver-adapter', '~> 6.0', platforms: %i[mri mingw x64_mingw mswin]
|
|
25
|
-
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
26
|
-
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
27
|
-
|
|
28
|
-
gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.key? 'ORACLE_HOME'
|
|
29
|
-
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.key? 'ORACLE_HOME'
|
|
30
|
-
|
|
31
|
-
# for JRuby
|
|
32
|
-
gem 'activerecord-jdbc-alt-adapter', '~> 60.0', platform: :jruby, require: true
|
|
33
|
-
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
34
|
-
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
35
|
-
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
36
|
-
gem 'jdbc-mssql', platforms: :jruby, require: true
|
|
37
|
-
gem 'jdbc-sqlite3', platforms: :jruby
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
gemspec path: Dir.pwd
|
data/gemfiles/rails6_1.gemfile
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
source 'https://rubygems.org'
|
|
4
|
-
|
|
5
|
-
gem 'rails', '~> 6.1.0'
|
|
6
|
-
|
|
7
|
-
group :development, :test do
|
|
8
|
-
gem 'concurrent-ruby', '1.3.4' # Need to pin b/c of a known issue https://github.com/rails/rails/issues/54260
|
|
9
|
-
gem 'debug', platforms: %i[mri]
|
|
10
|
-
gem 'minitest', '~> 5.9'
|
|
11
|
-
gem 'rake', '~> 12.3.3'
|
|
12
|
-
gem 'rubocop'
|
|
13
|
-
gem 'rubocop-performance'
|
|
14
|
-
gem 'ruby-lsp', platforms: %i[mri]
|
|
15
|
-
|
|
16
|
-
gem 'activemodel', '~> 6.1.0'
|
|
17
|
-
gem 'activerecord', '~> 6.1.0'
|
|
18
|
-
gem 'activesupport', '~> 6.1.0'
|
|
19
|
-
|
|
20
|
-
gem 'mysql2', '~>0.5', platforms: [:mri]
|
|
21
|
-
gem 'pg', '~> 1.1', platforms: [:mri]
|
|
22
|
-
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
|
23
|
-
|
|
24
|
-
gem 'activerecord-sqlserver-adapter', '~> 6.1.0', platforms: %i[mri mingw x64_mingw mswin]
|
|
25
|
-
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
26
|
-
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
27
|
-
|
|
28
|
-
gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.key? 'ORACLE_HOME'
|
|
29
|
-
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.key? 'ORACLE_HOME'
|
|
30
|
-
|
|
31
|
-
# for JRuby
|
|
32
|
-
gem 'activerecord-jdbc-alt-adapter', '~> 61.0', platform: :jruby, require: true
|
|
33
|
-
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
34
|
-
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
35
|
-
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
36
|
-
gem 'jdbc-mssql', platforms: :jruby, require: true
|
|
37
|
-
gem 'jdbc-sqlite3', platforms: :jruby
|
|
38
|
-
|
|
39
|
-
# Ruby 3.4+ removes the following gems from the standard distribution.
|
|
40
|
-
# Warnings are emitted from 3.3 .
|
|
41
|
-
if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('3.3.0')
|
|
42
|
-
gem 'base64'
|
|
43
|
-
gem 'bigdecimal'
|
|
44
|
-
gem 'mutex_m'
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
gemspec path: Dir.pwd
|
data/gemfiles/rails7.gemfile
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
source 'https://rubygems.org'
|
|
4
|
-
|
|
5
|
-
gem 'rails', '~> 7.0.1'
|
|
6
|
-
|
|
7
|
-
group :development, :test do
|
|
8
|
-
gem 'concurrent-ruby', '1.3.4' # Need to pin b/c of a known issue https://github.com/rails/rails/issues/54260
|
|
9
|
-
gem 'debug', platforms: %i[mri]
|
|
10
|
-
gem 'minitest', '~> 5.9'
|
|
11
|
-
gem 'rake', '~> 12.3.3'
|
|
12
|
-
gem 'rubocop'
|
|
13
|
-
gem 'rubocop-performance'
|
|
14
|
-
gem 'ruby-lsp', platforms: %i[mri]
|
|
15
|
-
|
|
16
|
-
gem 'activemodel', '~> 7.0.1'
|
|
17
|
-
gem 'activerecord', '~> 7.0.1'
|
|
18
|
-
gem 'activesupport', '~> 7.0.1'
|
|
19
|
-
|
|
20
|
-
gem 'mysql2', '~>0.5', platforms: [:mri]
|
|
21
|
-
gem 'pg', '~> 1.1', platforms: [:mri]
|
|
22
|
-
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
|
23
|
-
|
|
24
|
-
gem 'activerecord-sqlserver-adapter', '~> 7.0.7', platforms: %i[mri mingw x64_mingw mswin]
|
|
25
|
-
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
26
|
-
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
27
|
-
|
|
28
|
-
gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.key? 'ORACLE_HOME'
|
|
29
|
-
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.key? 'ORACLE_HOME'
|
|
30
|
-
|
|
31
|
-
# for JRuby
|
|
32
|
-
gem 'activerecord-jdbc-alt-adapter', '~> 70.0', platform: :jruby, require: true
|
|
33
|
-
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
34
|
-
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
35
|
-
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
36
|
-
gem 'jdbc-mssql', platforms: :jruby, require: true
|
|
37
|
-
gem 'jdbc-sqlite3', platform: :jruby
|
|
38
|
-
|
|
39
|
-
# Ruby 3.4+ removes the following gems from the standard distribution.
|
|
40
|
-
# Warnings are emitted from 3.3 .
|
|
41
|
-
if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('3.3.0')
|
|
42
|
-
gem 'base64'
|
|
43
|
-
gem 'bigdecimal'
|
|
44
|
-
gem 'mutex_m'
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
gemspec path: Dir.pwd
|
data/gemfiles/rails7_1.gemfile
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
source 'https://rubygems.org'
|
|
4
|
-
|
|
5
|
-
gem 'rails', '~> 7.1'
|
|
6
|
-
|
|
7
|
-
group :development, :test do
|
|
8
|
-
gem 'debug', platforms: %i[mri]
|
|
9
|
-
gem 'minitest', '~> 5.9'
|
|
10
|
-
gem 'rake', '~> 12.3.3'
|
|
11
|
-
gem 'rubocop'
|
|
12
|
-
gem 'rubocop-performance'
|
|
13
|
-
gem 'ruby-lsp', platforms: %i[mri]
|
|
14
|
-
|
|
15
|
-
gem 'activemodel', '~> 7.1'
|
|
16
|
-
gem 'activerecord', '~> 7.1'
|
|
17
|
-
gem 'activesupport', '~> 7.1'
|
|
18
|
-
|
|
19
|
-
gem 'mysql2', '~>0.5', platforms: [:mri]
|
|
20
|
-
gem 'pg', '~> 1.5', platforms: [:mri]
|
|
21
|
-
gem 'sqlite3', '~> 1.6', platforms: [:mri]
|
|
22
|
-
|
|
23
|
-
gem 'activerecord-sqlserver-adapter', '~> 7.1.0', platforms: %i[mri mingw x64_mingw mswin]
|
|
24
|
-
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
25
|
-
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
26
|
-
|
|
27
|
-
gem 'activerecord-oracle_enhanced-adapter', '~> 7.0.0' if ENV.key? 'ORACLE_HOME'
|
|
28
|
-
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.key? 'ORACLE_HOME'
|
|
29
|
-
|
|
30
|
-
# for JRuby
|
|
31
|
-
gem 'activerecord-jdbc-alt-adapter', '~> 71.0.0.alpha1', platform: :jruby, require: true
|
|
32
|
-
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
33
|
-
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
34
|
-
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
35
|
-
gem 'jar-dependencies', '0.4.1', platforms: :jruby
|
|
36
|
-
gem 'jdbc-mssql', platforms: :jruby, require: true
|
|
37
|
-
gem 'jdbc-sqlite3', platform: :jruby
|
|
38
|
-
|
|
39
|
-
# Ruby 3.4+ removes the following gems from the standard distribution.
|
|
40
|
-
# Warnings are emitted from 3.3 .
|
|
41
|
-
if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('3.3.0')
|
|
42
|
-
gem 'base64'
|
|
43
|
-
gem 'bigdecimal'
|
|
44
|
-
gem 'mutex_m'
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
gemspec path: Dir.pwd
|