arel_extensions 2.3.3 → 2.5.0
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/.github/workflows/ruby.yml +92 -43
- data/.gitignore +2 -1
- data/.rubocop.yml +131 -5
- data/Makefile +48 -0
- data/NEWS.md +22 -0
- data/README.md +32 -5
- data/Rakefile +5 -3
- data/arel_extensions.gemspec +3 -5
- data/dev/arelx.dockerfile +13 -16
- data/dev/compose.yaml +26 -28
- data/gemfiles/rails5.gemfile +15 -8
- data/gemfiles/rails5_1_4.gemfile +11 -9
- data/gemfiles/rails5_2.gemfile +16 -9
- data/gemfiles/rails6.gemfile +13 -7
- data/gemfiles/rails6_1.gemfile +13 -7
- data/gemfiles/rails7.gemfile +15 -9
- data/gemfiles/rails7_1.gemfile +15 -8
- data/gemfiles/rails7_2.gemfile +12 -6
- data/gemfiles/rails8.gemfile +40 -0
- data/gemfiles/rails8_1.gemfile +41 -0
- data/gemspecs/arel_extensions-v1.gemspec +3 -5
- data/gemspecs/arel_extensions-v2.gemspec +3 -5
- data/lib/arel_extensions/aliases.rb +3 -3
- data/lib/arel_extensions/attributes.rb +2 -0
- data/lib/arel_extensions/boolean_functions.rb +9 -7
- data/lib/arel_extensions/common_sql_functions.rb +5 -3
- data/lib/arel_extensions/comparators.rb +6 -4
- data/lib/arel_extensions/constants.rb +13 -0
- data/lib/arel_extensions/date_duration.rb +2 -0
- data/lib/arel_extensions/helpers.rb +18 -19
- data/lib/arel_extensions/insert_manager.rb +5 -1
- data/lib/arel_extensions/math.rb +40 -44
- data/lib/arel_extensions/math_functions.rb +29 -31
- data/lib/arel_extensions/nodes/aggregate_function.rb +4 -4
- data/lib/arel_extensions/nodes/blank.rb +6 -4
- data/lib/arel_extensions/nodes/byte_size.rb +11 -0
- data/lib/arel_extensions/nodes/case.rb +16 -13
- data/lib/arel_extensions/nodes/cast.rb +3 -5
- data/lib/arel_extensions/nodes/char_length.rb +11 -0
- data/lib/arel_extensions/nodes/coalesce.rb +1 -1
- data/lib/arel_extensions/nodes/collate.rb +1 -1
- data/lib/arel_extensions/nodes/concat.rb +6 -6
- data/lib/arel_extensions/nodes/date_diff.rb +40 -49
- data/lib/arel_extensions/nodes/duration.rb +2 -2
- data/lib/arel_extensions/nodes/format.rb +2 -2
- data/lib/arel_extensions/nodes/formatted_date.rb +2 -2
- data/lib/arel_extensions/nodes/formatted_number.rb +2 -2
- data/lib/arel_extensions/nodes/function.rb +7 -7
- data/lib/arel_extensions/nodes/is_null.rb +2 -0
- data/lib/arel_extensions/nodes/json.rb +27 -15
- data/lib/arel_extensions/nodes/levenshtein_distance.rb +2 -2
- data/lib/arel_extensions/nodes/locate.rb +1 -1
- data/lib/arel_extensions/nodes/matches.rb +2 -2
- data/lib/arel_extensions/nodes/power.rb +2 -2
- data/lib/arel_extensions/nodes/rand.rb +2 -2
- data/lib/arel_extensions/nodes/repeat.rb +2 -2
- data/lib/arel_extensions/nodes/replace.rb +3 -3
- data/lib/arel_extensions/nodes/rollup.rb +4 -4
- data/lib/arel_extensions/nodes/round.rb +3 -3
- data/lib/arel_extensions/nodes/select.rb +1 -1
- data/lib/arel_extensions/nodes/std.rb +4 -4
- data/lib/arel_extensions/nodes/substring.rb +52 -2
- 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 +3 -3
- data/lib/arel_extensions/nodes/union_all.rb +3 -3
- data/lib/arel_extensions/nodes/wday.rb +2 -2
- data/lib/arel_extensions/null_functions.rb +5 -7
- data/lib/arel_extensions/predications.rb +23 -19
- data/lib/arel_extensions/string_functions.rb +37 -28
- data/lib/arel_extensions/version.rb +3 -1
- data/lib/arel_extensions/visitors/convert_format.rb +2 -2
- data/lib/arel_extensions/visitors/ibm_db.rb +5 -5
- data/lib/arel_extensions/visitors/mssql.rb +111 -97
- data/lib/arel_extensions/visitors/mysql.rb +101 -67
- data/lib/arel_extensions/visitors/oracle.rb +113 -103
- data/lib/arel_extensions/visitors/oracle12.rb +5 -6
- data/lib/arel_extensions/visitors/postgresql.rb +119 -92
- data/lib/arel_extensions/visitors/sqlite.rb +72 -64
- data/lib/arel_extensions/visitors/to_sql.rb +85 -75
- data/lib/arel_extensions/visitors.rb +7 -7
- data/lib/arel_extensions/warning.rb +5 -5
- data/lib/arel_extensions.rb +47 -31
- data/test/arelx_test_helper.rb +8 -6
- data/test/config_loader.rb +9 -0
- data/test/database.yml +8 -6
- data/test/real_db_test.rb +33 -33
- data/test/support/fake_record.rb +3 -1
- data/test/visitors/test_bulk_insert_oracle.rb +2 -2
- data/test/visitors/test_bulk_insert_sqlite.rb +2 -2
- data/test/visitors/test_to_sql.rb +2 -2
- data/test/with_ar/all_agnostic_test.rb +214 -32
- data/test/with_ar/insert_agnostic_test.rb +2 -2
- data/test/with_ar/test_bulk_sqlite.rb +2 -2
- data/test/with_ar/test_math_sqlite.rb +2 -2
- data/test/with_ar/test_string_mysql.rb +2 -2
- data/test/with_ar/test_string_sqlite.rb +2 -2
- data/version_v1.rb +3 -1
- data/version_v2.rb +3 -1
- metadata +9 -33
- data/bin/compose +0 -6
- data/gemfiles/rails3.gemfile +0 -20
- data/gemfiles/rails4_2.gemfile +0 -38
data/dev/arelx.dockerfile
CHANGED
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
FROM ubuntu:22.04
|
|
2
2
|
|
|
3
|
-
ENV RBENV_ROOT=/opt/rbenv
|
|
4
|
-
ENV PATH=${RBENV_ROOT}/shims:${RBENV_ROOT}/bin:${PATH}
|
|
5
3
|
ENV APP_HOME=/app
|
|
6
|
-
# I know there's a more reliable way, but this is simpler.
|
|
7
|
-
ENV IN_DOCKER=true
|
|
8
4
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
9
5
|
|
|
10
6
|
RUN mkdir -p $APP_HOME
|
|
11
7
|
|
|
8
|
+
# Install OS dependencies
|
|
12
9
|
RUN apt-get update -q && apt-get install -y \
|
|
13
10
|
curl bundler build-essential git gnupg locales \
|
|
14
11
|
libbz2-dev libffi-dev liblzma-dev lsb-release libsqlite3-dev libyaml-dev \
|
|
15
|
-
make openjdk-17-jdk-headless
|
|
12
|
+
make neovim ncurses-term openjdk-17-jdk-headless tzdata zlib1g-dev \
|
|
16
13
|
&& ln -fs /usr/share/zoneinfo/UTC /etc/localtime \
|
|
17
14
|
&& dpkg-reconfigure --frontend noninteractive tzdata
|
|
18
15
|
|
|
16
|
+
# Add DB Repo Keys
|
|
19
17
|
RUN curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg \
|
|
20
18
|
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list \
|
|
21
19
|
&& curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc \
|
|
22
20
|
&& curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list \
|
|
23
21
|
&& apt-get update -q
|
|
24
22
|
|
|
23
|
+
# Install DB Clients
|
|
25
24
|
RUN ACCEPT_EULA=y DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
26
25
|
freetds-dev libmysqlclient-dev mysql-client msodbcsql18 mssql-tools18 unixodbc-dev libpq-dev \
|
|
27
26
|
&& echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc \
|
|
@@ -29,16 +28,14 @@ RUN ACCEPT_EULA=y DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
|
|
29
28
|
&& rm -rf /var/lib/apt/lists/* \
|
|
30
29
|
&& locale-gen en_US.UTF-8
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
WORKDIR $APP_HOME
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
COPY ./.github/workflows/ruby.yml ./.github/workflows/ruby.yml
|
|
43
|
-
RUN /usr/bin/gem install colorize psych toml-rb
|
|
44
|
-
RUN ./dev/rbenv install && rm ./dev/rbenv ./.github/workflows/ruby.yml
|
|
40
|
+
RUN curl https://mise.run | sh
|
|
41
|
+
RUN mise install ruby
|
data/dev/compose.yaml
CHANGED
|
@@ -7,29 +7,34 @@ services:
|
|
|
7
7
|
dockerfile: dev/arelx.dockerfile
|
|
8
8
|
volumes:
|
|
9
9
|
- ../:/app
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
- gem_cache:/mise/installs/ruby
|
|
11
|
+
command: tail -f /dev/null
|
|
12
12
|
depends_on:
|
|
13
13
|
mariadb:
|
|
14
14
|
condition: service_healthy
|
|
15
15
|
postgres:
|
|
16
16
|
condition: service_healthy
|
|
17
|
-
|
|
18
|
-
|
|
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
|
+
|
|
19
26
|
mariadb:
|
|
20
27
|
image: mariadb:11.0
|
|
21
28
|
container_name: mariadb
|
|
22
29
|
environment:
|
|
23
30
|
MARIADB_DATABASE: arelx_test
|
|
24
31
|
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: true
|
|
25
|
-
ports:
|
|
26
|
-
- "3306:3306"
|
|
27
|
-
network_mode: "host"
|
|
28
32
|
healthcheck:
|
|
29
33
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
30
|
-
interval:
|
|
34
|
+
interval: 5s
|
|
31
35
|
timeout: 5s
|
|
32
|
-
retries:
|
|
36
|
+
retries: 5
|
|
37
|
+
|
|
33
38
|
postgres:
|
|
34
39
|
build:
|
|
35
40
|
context: ..
|
|
@@ -39,33 +44,26 @@ services:
|
|
|
39
44
|
POSTGRES_USER: postgres
|
|
40
45
|
POSTGRES_PASSWORD: secret
|
|
41
46
|
POSTGRES_DB: arelx_test
|
|
42
|
-
ports:
|
|
43
|
-
- "5432:5432"
|
|
44
|
-
network_mode: "host"
|
|
45
47
|
healthcheck:
|
|
46
48
|
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
|
|
47
|
-
interval:
|
|
49
|
+
interval: 5s
|
|
48
50
|
timeout: 5s
|
|
49
|
-
retries:
|
|
51
|
+
retries: 5
|
|
52
|
+
|
|
50
53
|
mssql:
|
|
51
54
|
image: mcr.microsoft.com/mssql/server:2019-latest
|
|
52
55
|
container_name: mssql
|
|
56
|
+
platform: linux/amd64
|
|
53
57
|
environment:
|
|
54
|
-
MSSQL_SA_PASSWORD: Password12!
|
|
55
58
|
ACCEPT_EULA: Y
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
network_mode: "host"
|
|
59
|
+
# MSSQL_COLLATION: Latin1_General_100_CI_AS_SC_UTF8
|
|
60
|
+
MSSQL_SA_PASSWORD: Password12!
|
|
59
61
|
healthcheck:
|
|
60
|
-
test:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
]
|
|
65
|
-
interval: 30s
|
|
66
|
-
retries: 5
|
|
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
|
|
67
66
|
timeout: 10s
|
|
68
67
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
name: arelx-network
|
|
68
|
+
volumes:
|
|
69
|
+
gem_cache:
|
data/gemfiles/rails5.gemfile
CHANGED
|
@@ -1,29 +1,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
5
|
gem 'arel', '~> 7.0'
|
|
4
6
|
|
|
5
7
|
group :development, :test do
|
|
6
|
-
gem '
|
|
8
|
+
gem 'minitest', '~> 5.9'
|
|
9
|
+
gem 'rake', '~> 12.3.3'
|
|
10
|
+
gem 'rubocop'
|
|
11
|
+
gem 'rubocop-performance'
|
|
12
|
+
|
|
7
13
|
gem 'activemodel', '~> 5.0'
|
|
8
14
|
gem 'activerecord', '5.0.6'
|
|
15
|
+
gem 'activesupport', '~> 5.0'
|
|
9
16
|
|
|
10
|
-
gem 'sqlite3', '<= 1.3.13', platforms: %i[mri mswin mingw]
|
|
11
17
|
gem 'mysql2', '0.4.10', platforms: %i[mri mswin mingw]
|
|
12
18
|
gem 'pg', '< 1.0.0', platforms: %i[mri mingw]
|
|
19
|
+
gem 'sqlite3', '<= 1.3.13', platforms: %i[mri mswin mingw]
|
|
13
20
|
|
|
14
|
-
gem 'tiny_tds', platforms: %i[mri mingw] if RUBY_PLATFORM.
|
|
21
|
+
gem 'tiny_tds', platforms: %i[mri mingw] if RUBY_PLATFORM.include?('windows')
|
|
15
22
|
# gem "activerecord-sqlserver-adapter", platforms: [:mri, :mingw]
|
|
16
23
|
|
|
17
|
-
gem '
|
|
18
|
-
gem '
|
|
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'
|
|
19
26
|
|
|
20
27
|
# for JRuby
|
|
21
28
|
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v50.0', platforms: :jruby
|
|
22
|
-
gem '
|
|
23
|
-
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
29
|
+
gem 'activerecord-jdbcmssql-adapter', platforms: :jruby
|
|
24
30
|
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
25
31
|
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
26
|
-
gem 'activerecord-
|
|
32
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
33
|
+
gem 'jdbc-sqlite3', platforms: :jruby
|
|
27
34
|
end
|
|
28
35
|
|
|
29
36
|
gemspec path: Dir.pwd
|
data/gemfiles/rails5_1_4.gemfile
CHANGED
|
@@ -1,30 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
|
-
gem 'rails', '5.1.4'
|
|
4
5
|
gem 'arel', '~> 8'
|
|
6
|
+
gem 'rails', '5.1.4'
|
|
5
7
|
|
|
6
8
|
group :development, :test do
|
|
7
|
-
gem 'activesupport', '5.1.4'
|
|
8
9
|
gem 'activemodel', '5.1.4'
|
|
9
10
|
gem 'activerecord', '5.1.4'
|
|
11
|
+
gem 'activesupport', '5.1.4'
|
|
10
12
|
|
|
11
|
-
gem 'sqlite3', '<= 1.3.13', platforms: %i[mri mswin mingw]
|
|
12
13
|
gem 'mysql2', '0.4.10', platforms: %i[mri mswin mingw]
|
|
13
14
|
gem 'pg', '< 1.0.0', platforms: %i[mri mingw]
|
|
15
|
+
gem 'sqlite3', '<= 1.3.13', platforms: %i[mri mswin mingw]
|
|
14
16
|
|
|
15
|
-
gem 'tiny_tds', platforms: %i[mri mingw]
|
|
17
|
+
gem 'tiny_tds', platforms: %i[mri mingw] if RUBY_PLATFORM.include?('windows')
|
|
16
18
|
# gem "activerecord-sqlserver-adapter", platforms: [:mri, :mingw]
|
|
17
19
|
|
|
18
|
-
gem '
|
|
19
|
-
gem '
|
|
20
|
+
gem 'activerecord-oracle_enhanced-adapter', '~> 1.8' if ENV.key? 'ORACLE_HOME'
|
|
21
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.key? 'ORACLE_HOME'
|
|
20
22
|
|
|
21
23
|
# for JRuby
|
|
22
24
|
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v51.0', platforms: :jruby
|
|
23
|
-
gem '
|
|
24
|
-
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
25
|
+
gem 'activerecord-jdbcmssql-adapter', platforms: :jruby
|
|
25
26
|
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
26
27
|
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
27
|
-
gem 'activerecord-
|
|
28
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
29
|
+
gem 'jdbc-sqlite3', platforms: :jruby
|
|
28
30
|
end
|
|
29
31
|
|
|
30
32
|
gemspec path: Dir.pwd
|
data/gemfiles/rails5_2.gemfile
CHANGED
|
@@ -1,32 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
|
-
gem 'rails', '~> 5.2.0'
|
|
4
5
|
gem 'arel', '~> 9'
|
|
6
|
+
gem 'rails', '~> 5.2.0'
|
|
5
7
|
|
|
6
8
|
group :development, :test do
|
|
7
|
-
gem '
|
|
8
|
-
gem '
|
|
9
|
+
gem 'minitest', '~> 5.9'
|
|
10
|
+
gem 'rake', '~> 12.3.3'
|
|
11
|
+
gem 'rubocop'
|
|
12
|
+
gem 'rubocop-performance'
|
|
13
|
+
|
|
9
14
|
gem 'activemodel', '~> 5.2.0'
|
|
10
15
|
gem 'activerecord', '~> 5.2.0'
|
|
16
|
+
gem 'activesupport', '~> 5.2.0'
|
|
17
|
+
gem 'bigdecimal', '1.3.5', platforms: %i[mri mingw x64_mingw mswin]
|
|
11
18
|
|
|
12
|
-
gem 'sqlite3', '<= 1.3.13', platforms: [:mri]
|
|
13
19
|
gem 'mysql2', '0.4.10', platforms: [:mri]
|
|
14
20
|
gem 'pg', '< 1.0.0', platforms: [:mri]
|
|
21
|
+
gem 'sqlite3', '<= 1.3.13', platforms: [:mri]
|
|
15
22
|
|
|
16
|
-
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
17
23
|
gem 'activerecord-sqlserver-adapter', '~> 5.2', platforms: %i[mri mingw x64_mingw mswin]
|
|
24
|
+
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
18
25
|
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
19
26
|
|
|
20
|
-
gem '
|
|
21
|
-
gem '
|
|
27
|
+
gem 'activerecord-oracle_enhanced-adapter', '~> 5.2.0' if ENV.key? 'ORACLE_HOME'
|
|
28
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.key? 'ORACLE_HOME'
|
|
22
29
|
|
|
23
30
|
# for JRuby
|
|
24
31
|
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v52.7', platforms: :jruby
|
|
25
|
-
gem 'jdbc-sqlite3', platforms: :jruby
|
|
26
|
-
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
27
32
|
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
28
33
|
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
34
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
29
35
|
gem 'activerecord-jdbcsqlserver-adapter', '~> 52.0', platforms: :jruby
|
|
36
|
+
gem 'jdbc-sqlite3', platforms: :jruby
|
|
30
37
|
end
|
|
31
38
|
|
|
32
39
|
gemspec path: Dir.pwd
|
data/gemfiles/rails6.gemfile
CHANGED
|
@@ -1,26 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
5
|
gem 'rails', '~> 6.0.0'
|
|
4
6
|
|
|
5
7
|
group :development, :test do
|
|
6
|
-
gem 'ruby-lsp', platforms: %i[mri]
|
|
7
|
-
gem 'debug', platforms: %i[mri]
|
|
8
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]
|
|
9
15
|
|
|
10
|
-
gem 'activesupport', '~> 6.0.0'
|
|
11
16
|
gem 'activemodel', '~> 6.0.0'
|
|
12
17
|
gem 'activerecord', '~> 6.0.0'
|
|
18
|
+
gem 'activesupport', '~> 6.0.0'
|
|
13
19
|
|
|
14
|
-
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
|
15
20
|
gem 'mysql2', '0.5.2', platforms: [:mri]
|
|
16
21
|
gem 'pg', '< 1.0.0', platforms: [:mri]
|
|
22
|
+
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
|
17
23
|
|
|
18
|
-
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
19
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]
|
|
20
26
|
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
21
27
|
|
|
22
|
-
gem '
|
|
23
|
-
gem '
|
|
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'
|
|
24
30
|
|
|
25
31
|
# for JRuby
|
|
26
32
|
gem 'activerecord-jdbc-alt-adapter', '~> 60.0', platform: :jruby, require: true
|
data/gemfiles/rails6_1.gemfile
CHANGED
|
@@ -1,26 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
5
|
gem 'rails', '~> 6.1.0'
|
|
4
6
|
|
|
5
7
|
group :development, :test do
|
|
6
|
-
gem 'ruby-lsp', platforms: %i[mri]
|
|
7
|
-
gem 'debug', platforms: %i[mri]
|
|
8
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]
|
|
9
15
|
|
|
10
|
-
gem 'activesupport', '~> 6.1.0'
|
|
11
16
|
gem 'activemodel', '~> 6.1.0'
|
|
12
17
|
gem 'activerecord', '~> 6.1.0'
|
|
18
|
+
gem 'activesupport', '~> 6.1.0'
|
|
13
19
|
|
|
14
|
-
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
|
15
20
|
gem 'mysql2', '~>0.5', platforms: [:mri]
|
|
16
21
|
gem 'pg', '~> 1.1', platforms: [:mri]
|
|
22
|
+
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
|
17
23
|
|
|
18
|
-
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
19
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]
|
|
20
26
|
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
21
27
|
|
|
22
|
-
gem '
|
|
23
|
-
gem '
|
|
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'
|
|
24
30
|
|
|
25
31
|
# for JRuby
|
|
26
32
|
gem 'activerecord-jdbc-alt-adapter', '~> 61.0', platform: :jruby, require: true
|
data/gemfiles/rails7.gemfile
CHANGED
|
@@ -1,34 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
5
|
gem 'rails', '~> 7.0.1'
|
|
4
6
|
|
|
5
7
|
group :development, :test do
|
|
6
|
-
gem 'ruby-lsp', platforms: %i[mri]
|
|
7
|
-
gem 'debug', platforms: %i[mri]
|
|
8
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]
|
|
9
15
|
|
|
10
|
-
gem 'activesupport', '~> 7.0.1'
|
|
11
16
|
gem 'activemodel', '~> 7.0.1'
|
|
12
17
|
gem 'activerecord', '~> 7.0.1'
|
|
18
|
+
gem 'activesupport', '~> 7.0.1'
|
|
13
19
|
|
|
14
|
-
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
|
15
20
|
gem 'mysql2', '~>0.5', platforms: [:mri]
|
|
16
21
|
gem 'pg', '~> 1.1', platforms: [:mri]
|
|
22
|
+
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
|
17
23
|
|
|
18
|
-
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
19
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]
|
|
20
26
|
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
21
27
|
|
|
22
|
-
gem '
|
|
23
|
-
gem '
|
|
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'
|
|
24
30
|
|
|
25
31
|
# for JRuby
|
|
26
|
-
gem 'jdbc-mssql', platforms: :jruby, require: true
|
|
27
|
-
gem 'jdbc-sqlite3', platform: :jruby
|
|
28
32
|
gem 'activerecord-jdbc-alt-adapter', '~> 70.0', platform: :jruby, require: true
|
|
29
33
|
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
30
34
|
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
31
35
|
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
36
|
+
gem 'jdbc-mssql', platforms: :jruby, require: true
|
|
37
|
+
gem 'jdbc-sqlite3', platform: :jruby
|
|
32
38
|
|
|
33
39
|
# Ruby 3.4+ removes the following gems from the standard distribution.
|
|
34
40
|
# Warnings are emitted from 3.3 .
|
data/gemfiles/rails7_1.gemfile
CHANGED
|
@@ -1,33 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
5
|
gem 'rails', '~> 7.1'
|
|
4
6
|
|
|
5
7
|
group :development, :test do
|
|
6
|
-
gem 'ruby-lsp', platforms: %i[mri]
|
|
7
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]
|
|
8
14
|
|
|
9
|
-
gem 'activesupport', '~> 7.1'
|
|
10
15
|
gem 'activemodel', '~> 7.1'
|
|
11
16
|
gem 'activerecord', '~> 7.1'
|
|
17
|
+
gem 'activesupport', '~> 7.1'
|
|
12
18
|
|
|
13
|
-
gem 'sqlite3', '~> 1.6', platforms: [:mri]
|
|
14
19
|
gem 'mysql2', '~>0.5', platforms: [:mri]
|
|
15
20
|
gem 'pg', '~> 1.5', platforms: [:mri]
|
|
21
|
+
gem 'sqlite3', '~> 1.6', platforms: [:mri]
|
|
16
22
|
|
|
23
|
+
gem 'activerecord-sqlserver-adapter', '~> 7.1.0', platforms: %i[mri mingw x64_mingw mswin]
|
|
17
24
|
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
18
|
-
gem 'activerecord-sqlserver-adapter', '~> 7.1.0.beta1', platforms: %i[mri mingw x64_mingw mswin]
|
|
19
25
|
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
20
26
|
|
|
21
|
-
gem '
|
|
22
|
-
gem '
|
|
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'
|
|
23
29
|
|
|
24
30
|
# for JRuby
|
|
25
|
-
gem 'jdbc-mssql', platforms: :jruby, require: true
|
|
26
|
-
gem 'jdbc-sqlite3', platform: :jruby
|
|
27
31
|
gem 'activerecord-jdbc-alt-adapter', '~> 71.0.0.alpha1', platform: :jruby, require: true
|
|
28
32
|
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
29
33
|
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
30
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
|
|
31
38
|
|
|
32
39
|
# Ruby 3.4+ removes the following gems from the standard distribution.
|
|
33
40
|
# Warnings are emitted from 3.3 .
|
data/gemfiles/rails7_2.gemfile
CHANGED
|
@@ -1,25 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
source 'https://rubygems.org'
|
|
2
4
|
|
|
3
5
|
gem 'rails', '~> 7.2'
|
|
4
6
|
|
|
5
7
|
group :development, :test do
|
|
6
|
-
gem 'ruby-lsp', platforms: %i[mri]
|
|
7
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]
|
|
8
14
|
|
|
9
|
-
gem 'activesupport', '~> 7.2'
|
|
10
15
|
gem 'activemodel', '~> 7.2'
|
|
11
16
|
gem 'activerecord', '~> 7.2'
|
|
17
|
+
gem 'activesupport', '~> 7.2'
|
|
12
18
|
|
|
13
|
-
gem 'sqlite3', '~> 1.6', platforms: [:mri]
|
|
14
19
|
gem 'mysql2', '~>0.5', platforms: [:mri]
|
|
15
20
|
gem 'pg', '~> 1.5', platforms: [:mri]
|
|
21
|
+
gem 'sqlite3', '~> 1.6', platforms: [:mri]
|
|
16
22
|
|
|
17
|
-
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
18
23
|
gem 'activerecord-sqlserver-adapter', '~> 7.2', platforms: %i[mri mingw x64_mingw mswin]
|
|
24
|
+
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
19
25
|
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
20
26
|
|
|
21
|
-
gem '
|
|
22
|
-
gem '
|
|
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'
|
|
23
29
|
|
|
24
30
|
# for JRuby
|
|
25
31
|
gem 'jdbc-mssql', platforms: :jruby, require: true
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
gem 'rails', '~> 8.0'
|
|
4
|
+
|
|
5
|
+
group :development, :test do
|
|
6
|
+
gem 'debug', platforms: %i[mri]
|
|
7
|
+
gem 'ruby-lsp', platforms: %i[mri]
|
|
8
|
+
|
|
9
|
+
gem 'activemodel', '~> 8.0'
|
|
10
|
+
gem 'activerecord', '~> 8.0'
|
|
11
|
+
gem 'activesupport', '~> 8.0'
|
|
12
|
+
|
|
13
|
+
gem 'mysql2', '~>0.5', platforms: [:mri]
|
|
14
|
+
gem 'pg', '~> 1.5', platforms: [:mri]
|
|
15
|
+
gem 'sqlite3', '~> 2.1', platforms: [:mri]
|
|
16
|
+
|
|
17
|
+
gem 'activerecord-sqlserver-adapter', '~> 8.0', platforms: %i[mri mingw x64_mingw mswin]
|
|
18
|
+
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
19
|
+
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
20
|
+
|
|
21
|
+
gem 'activerecord-oracle_enhanced-adapter', '~> 8.0' if ENV.has_key? 'ORACLE_HOME'
|
|
22
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
|
|
23
|
+
|
|
24
|
+
# for JRuby
|
|
25
|
+
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
26
|
+
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
27
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
28
|
+
gem 'jdbc-mssql', platforms: :jruby, require: true
|
|
29
|
+
gem 'jdbc-sqlite3', platform: :jruby
|
|
30
|
+
|
|
31
|
+
# Ruby 3.4+ removes the following gems from the standard distribution.
|
|
32
|
+
# Warnings are emitted from 3.3.
|
|
33
|
+
if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('3.3.0')
|
|
34
|
+
gem 'base64'
|
|
35
|
+
gem 'bigdecimal'
|
|
36
|
+
gem 'mutex_m'
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
gemspec path: Dir.pwd
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
gem 'rails', '~> 8.1'
|
|
4
|
+
|
|
5
|
+
group :development, :test do
|
|
6
|
+
gem 'debug', platforms: %i[mri]
|
|
7
|
+
gem 'ruby-lsp', platforms: %i[mri]
|
|
8
|
+
|
|
9
|
+
gem 'activemodel', '~> 8.1'
|
|
10
|
+
gem 'activerecord', '~> 8.1'
|
|
11
|
+
gem 'activesupport', '~> 8.1'
|
|
12
|
+
|
|
13
|
+
gem 'mysql2', '~>0.5', platforms: [:mri]
|
|
14
|
+
gem 'pg', '~> 1.5', platforms: [:mri]
|
|
15
|
+
gem 'sqlite3', '~> 2.1', platforms: [:mri]
|
|
16
|
+
|
|
17
|
+
gem 'activerecord-sqlserver-adapter', '~> 8.1', platforms: %i[mri mingw x64_mingw mswin]
|
|
18
|
+
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
|
19
|
+
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
|
20
|
+
|
|
21
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
|
|
22
|
+
# gem 'activerecord-oracle_enhanced-adapter', '~> 8.1.0' if ENV.has_key? 'ORACLE_HOME'
|
|
23
|
+
|
|
24
|
+
# for JRuby
|
|
25
|
+
gem 'jdbc-mssql', platforms: :jruby, require: true
|
|
26
|
+
gem 'jdbc-sqlite3', platform: :jruby
|
|
27
|
+
# gem 'activerecord-jdbc-alt-adapter', '~> 71.0.0.alpha1', platform: :jruby, require: true
|
|
28
|
+
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
|
29
|
+
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
|
30
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
|
31
|
+
|
|
32
|
+
# Ruby 3.4+ removes the following gems from the standard distribution.
|
|
33
|
+
# Warnings are emitted from 3.3.
|
|
34
|
+
if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('3.3.0')
|
|
35
|
+
gem 'base64'
|
|
36
|
+
gem 'bigdecimal'
|
|
37
|
+
gem 'mutex_m'
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
gemspec path: Dir.pwd
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
|
2
4
|
require 'arel_extensions/version'
|
|
3
5
|
|
|
4
6
|
Gem::Specification.new do |s|
|
|
@@ -17,11 +19,7 @@ Gem::Specification.new do |s|
|
|
|
17
19
|
|
|
18
20
|
# Manifest
|
|
19
21
|
s.files = `git ls-files`.split("\n")
|
|
20
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
21
22
|
s.require_paths = ['lib']
|
|
22
23
|
|
|
23
24
|
s.add_dependency('arel', '>= 6.0')
|
|
24
|
-
|
|
25
|
-
s.add_development_dependency('minitest', '~> 5.9')
|
|
26
|
-
s.add_development_dependency('rake', '~> 12.3.3')
|
|
27
25
|
end
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
$LOAD_PATH.push File.expand_path('lib', __dir__)
|
|
2
4
|
require 'arel_extensions/version'
|
|
3
5
|
|
|
4
6
|
Gem::Specification.new do |s|
|
|
@@ -17,11 +19,7 @@ Gem::Specification.new do |s|
|
|
|
17
19
|
|
|
18
20
|
# Manifest
|
|
19
21
|
s.files = `git ls-files`.split("\n")
|
|
20
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
21
22
|
s.require_paths = ['lib']
|
|
22
23
|
|
|
23
24
|
s.add_dependency('activerecord', '>= 6.0')
|
|
24
|
-
|
|
25
|
-
s.add_development_dependency('minitest', '~> 5.9')
|
|
26
|
-
s.add_development_dependency('rake', '~> 12.3.3')
|
|
27
25
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module ArelExtensions
|
|
2
4
|
module Aliases
|
|
3
|
-
|
|
4
5
|
# Install an alias, if present.
|
|
5
|
-
def xas
|
|
6
|
+
def xas(other)
|
|
6
7
|
if other.present?
|
|
7
8
|
Arel::Nodes::As.new(self, Arel.sql(other))
|
|
8
9
|
else
|
|
9
10
|
self
|
|
10
11
|
end
|
|
11
12
|
end
|
|
12
|
-
|
|
13
13
|
end
|
|
14
14
|
end
|