arel_extensions 2.0.21 → 2.2.2
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/publish.yml +29 -0
- data/.github/workflows/release.yml +30 -0
- data/.github/workflows/ruby.yml +377 -80
- data/.gitignore +7 -6
- data/.rubocop.yml +62 -1
- data/CONTRIBUTING.md +102 -0
- data/Gemfile +2 -23
- data/NEWS.md +89 -0
- data/README.md +228 -84
- data/Rakefile +11 -4
- data/TODO +0 -1
- data/appveyor.yml +60 -22
- data/arel_extensions.gemspec +11 -12
- data/bin/build +15 -0
- data/bin/compose +6 -0
- data/bin/publish +8 -0
- data/dev/arelx.dockerfile +44 -0
- data/dev/compose.yaml +71 -0
- data/dev/postgres.dockerfile +5 -0
- data/dev/rbenv +189 -0
- data/gemfiles/rails3.gemfile +10 -10
- data/gemfiles/rails4_2.gemfile +38 -0
- data/gemfiles/rails5.gemfile +29 -0
- data/gemfiles/rails5_1_4.gemfile +13 -13
- data/gemfiles/rails5_2.gemfile +16 -14
- data/gemfiles/rails6.gemfile +18 -15
- data/gemfiles/rails6_1.gemfile +18 -15
- data/gemfiles/rails7.gemfile +33 -0
- data/gemfiles/rails7_1.gemfile +33 -0
- data/gemfiles/rails7_2.gemfile +33 -0
- data/gemspecs/arel_extensions-v1.gemspec +12 -13
- data/gemspecs/arel_extensions-v2.gemspec +11 -12
- 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/aliases.rb +14 -0
- data/lib/arel_extensions/attributes.rb +10 -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 +14 -9
- data/lib/arel_extensions/helpers.rb +62 -0
- data/lib/arel_extensions/insert_manager.rb +19 -17
- data/lib/arel_extensions/math.rb +48 -45
- 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 +10 -12
- data/lib/arel_extensions/nodes/cast.rb +6 -6
- 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 +33 -14
- 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 +3 -2
- data/lib/arel_extensions/nodes/formatted_date.rb +42 -0
- data/lib/arel_extensions/nodes/formatted_number.rb +2 -2
- data/lib/arel_extensions/nodes/function.rb +22 -26
- data/lib/arel_extensions/nodes/is_null.rb +0 -0
- data/lib/arel_extensions/nodes/json.rb +15 -9
- data/lib/arel_extensions/nodes/length.rb +6 -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 -10
- data/lib/arel_extensions/nodes/rollup.rb +36 -0
- data/lib/arel_extensions/nodes/round.rb +0 -0
- data/lib/arel_extensions/nodes/select.rb +10 -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 +5 -5
- data/lib/arel_extensions/nodes/union_all.rb +4 -4
- data/lib/arel_extensions/nodes/wday.rb +0 -0
- data/lib/arel_extensions/nodes.rb +0 -0
- data/lib/arel_extensions/null_functions.rb +16 -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 +19 -10
- 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 +394 -169
- data/lib/arel_extensions/visitors/mysql.rb +238 -151
- data/lib/arel_extensions/visitors/oracle.rb +170 -131
- data/lib/arel_extensions/visitors/oracle12.rb +16 -16
- data/lib/arel_extensions/visitors/postgresql.rb +170 -140
- data/lib/arel_extensions/visitors/sqlite.rb +88 -87
- data/lib/arel_extensions/visitors/to_sql.rb +185 -156
- data/lib/arel_extensions/visitors.rb +73 -60
- data/lib/arel_extensions.rb +173 -36
- data/test/arelx_test_helper.rb +49 -1
- data/test/database.yml +13 -7
- data/test/real_db_test.rb +101 -83
- data/test/support/fake_record.rb +8 -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 +121 -93
- data/test/with_ar/all_agnostic_test.rb +630 -320
- data/test/with_ar/insert_agnostic_test.rb +25 -18
- data/test/with_ar/test_bulk_sqlite.rb +11 -7
- data/test/with_ar/test_math_sqlite.rb +18 -14
- data/test/with_ar/test_string_mysql.rb +26 -22
- data/test/with_ar/test_string_sqlite.rb +26 -22
- data/version_v1.rb +1 -1
- data/version_v2.rb +1 -1
- metadata +24 -26
- 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
- data/gemfiles/rails4.gemfile +0 -29
- data/gemfiles/rails5_0.gemfile +0 -29
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/compose
ADDED
data/bin/publish
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
FROM ubuntu:22.04
|
2
|
+
|
3
|
+
ENV RBENV_ROOT=/opt/rbenv
|
4
|
+
ENV PATH=${RBENV_ROOT}/shims:${RBENV_ROOT}/bin:${PATH}
|
5
|
+
ENV APP_HOME=/app
|
6
|
+
# I know there's a more reliable way, but this is simpler.
|
7
|
+
ENV IN_DOCKER=true
|
8
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
9
|
+
|
10
|
+
RUN mkdir -p $APP_HOME
|
11
|
+
|
12
|
+
RUN apt-get update -q && apt-get install -y \
|
13
|
+
curl bundler build-essential git gnupg locales \
|
14
|
+
libbz2-dev libffi-dev liblzma-dev lsb-release libsqlite3-dev libyaml-dev \
|
15
|
+
make openjdk-17-jdk-headless ruby-dev ruby-full tzdata zlib1g-dev \
|
16
|
+
&& ln -fs /usr/share/zoneinfo/UTC /etc/localtime \
|
17
|
+
&& dpkg-reconfigure --frontend noninteractive tzdata
|
18
|
+
|
19
|
+
RUN curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg \
|
20
|
+
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list \
|
21
|
+
&& curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc \
|
22
|
+
&& curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list \
|
23
|
+
&& apt-get update -q
|
24
|
+
|
25
|
+
RUN ACCEPT_EULA=y DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
26
|
+
freetds-dev libmysqlclient-dev mysql-client msodbcsql18 mssql-tools18 unixodbc-dev libpq-dev \
|
27
|
+
&& echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc \
|
28
|
+
&& apt-get clean \
|
29
|
+
&& rm -rf /var/lib/apt/lists/* \
|
30
|
+
&& locale-gen en_US.UTF-8
|
31
|
+
|
32
|
+
RUN /bin/bash -c "source ~/.bashrc"
|
33
|
+
|
34
|
+
RUN mkdir -p ${RBENV_ROOT} \
|
35
|
+
&& git clone https://github.com/rbenv/rbenv.git ${RBENV_ROOT} \
|
36
|
+
&& git clone --depth 1 https://github.com/rbenv/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build \
|
37
|
+
&& rbenv init - \
|
38
|
+
&& rbenv global system
|
39
|
+
|
40
|
+
WORKDIR $APP_HOME
|
41
|
+
COPY ./dev/rbenv ./dev/rbenv
|
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
|
data/dev/compose.yaml
ADDED
@@ -0,0 +1,71 @@
|
|
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
|
+
entrypoint: ["/usr/bin/ruby", "dev/rbenv", "test"]
|
11
|
+
network_mode: "host"
|
12
|
+
depends_on:
|
13
|
+
mariadb:
|
14
|
+
condition: service_healthy
|
15
|
+
postgres:
|
16
|
+
condition: service_healthy
|
17
|
+
mssql:
|
18
|
+
condition: service_healthy
|
19
|
+
mariadb:
|
20
|
+
image: mariadb:11.0
|
21
|
+
container_name: mariadb
|
22
|
+
environment:
|
23
|
+
MARIADB_DATABASE: arelx_test
|
24
|
+
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: true
|
25
|
+
ports:
|
26
|
+
- "3306:3306"
|
27
|
+
network_mode: "host"
|
28
|
+
healthcheck:
|
29
|
+
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
30
|
+
interval: 10s
|
31
|
+
timeout: 5s
|
32
|
+
retries: 3
|
33
|
+
postgres:
|
34
|
+
build:
|
35
|
+
context: ..
|
36
|
+
dockerfile: dev/postgres.dockerfile
|
37
|
+
container_name: postgres
|
38
|
+
environment:
|
39
|
+
POSTGRES_USER: postgres
|
40
|
+
POSTGRES_PASSWORD: secret
|
41
|
+
POSTGRES_DB: arelx_test
|
42
|
+
ports:
|
43
|
+
- "5432:5432"
|
44
|
+
network_mode: "host"
|
45
|
+
healthcheck:
|
46
|
+
test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
|
47
|
+
interval: 10s
|
48
|
+
timeout: 5s
|
49
|
+
retries: 3
|
50
|
+
mssql:
|
51
|
+
image: mcr.microsoft.com/mssql/server:2019-latest
|
52
|
+
container_name: mssql
|
53
|
+
environment:
|
54
|
+
MSSQL_SA_PASSWORD: Password12!
|
55
|
+
ACCEPT_EULA: Y
|
56
|
+
ports:
|
57
|
+
- "1433:1433"
|
58
|
+
network_mode: "host"
|
59
|
+
healthcheck:
|
60
|
+
test:
|
61
|
+
[
|
62
|
+
"CMD-SHELL",
|
63
|
+
"/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $${MSSQL_SA_PASSWORD} -Q 'SELECT 1'",
|
64
|
+
]
|
65
|
+
interval: 30s
|
66
|
+
retries: 5
|
67
|
+
timeout: 10s
|
68
|
+
|
69
|
+
networks:
|
70
|
+
default:
|
71
|
+
name: arelx-network
|
data/dev/rbenv
ADDED
@@ -0,0 +1,189 @@
|
|
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/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
|
@@ -0,0 +1,38 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
gem 'arel', '~> 6.0'
|
4
|
+
|
5
|
+
group :development, :test do
|
6
|
+
# We need to explicitly include bigdecimal for ruby 2.7 .
|
7
|
+
# See https://github.com/ruby/bigdecimal for details.
|
8
|
+
rb_version = Gem::Version.new(RUBY_VERSION)
|
9
|
+
if Gem::Version.new('2.7') <= rb_version && rb_version < Gem::Version.new('2.8')
|
10
|
+
gem 'bigdecimal', '~> 1.3.5', platforms: %i[mri mingw x64_mingw mswin]
|
11
|
+
end
|
12
|
+
|
13
|
+
gem 'activesupport', '~> 4.0'
|
14
|
+
gem 'activemodel', '~> 4.0'
|
15
|
+
gem 'activerecord', '~> 4.0'
|
16
|
+
|
17
|
+
gem 'sqlite3', '<= 1.3.13', platforms: %i[mri mswin mingw]
|
18
|
+
gem 'mysql2', '0.4.10', platforms: %i[mri mswin mingw]
|
19
|
+
gem 'pg', '< 1.0.0', platforms: %i[mri mingw]
|
20
|
+
|
21
|
+
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
22
|
+
gem 'activerecord-sqlserver-adapter', '~> 4.2.0', platforms: %i[mri mingw x64_mingw mswin]
|
23
|
+
|
24
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
|
25
|
+
gem 'activerecord-oracle_enhanced-adapter', '~> 1.6.0' if ENV.has_key? 'ORACLE_HOME'
|
26
|
+
|
27
|
+
# for JRuby
|
28
|
+
gem 'activerecord-jdbc-adapter', '~> 1.3', platforms: :jruby
|
29
|
+
gem 'jdbc-sqlite3', '~> 3.28', platforms: :jruby
|
30
|
+
gem 'jdbc-postgres', '~> 42.2', platforms: :jruby
|
31
|
+
gem 'jdbc-mysql', '~> 5.1', platforms: :jruby
|
32
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
33
|
+
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
34
|
+
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
35
|
+
gem 'activerecord-jdbcmssql-adapter', platforms: :jruby
|
36
|
+
end
|
37
|
+
|
38
|
+
gemspec path: Dir.pwd
|
@@ -0,0 +1,29 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
gem 'arel', '~> 7.0'
|
4
|
+
|
5
|
+
group :development, :test do
|
6
|
+
gem 'activesupport', '~> 5.0'
|
7
|
+
gem 'activemodel', '~> 5.0'
|
8
|
+
gem 'activerecord', '5.0.6'
|
9
|
+
|
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
|
+
|
14
|
+
gem 'tiny_tds', platforms: %i[mri mingw] if RUBY_PLATFORM.match?(/windows/)
|
15
|
+
# gem "activerecord-sqlserver-adapter", platforms: [:mri, :mingw]
|
16
|
+
|
17
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
|
18
|
+
gem 'activerecord-oracle_enhanced-adapter', '~> 1.7' if ENV.has_key? 'ORACLE_HOME'
|
19
|
+
|
20
|
+
# for JRuby
|
21
|
+
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v50.0', 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
|
+
end
|
28
|
+
|
29
|
+
gemspec path: Dir.pwd
|
data/gemfiles/rails5_1_4.gemfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
gem 'rails', '5.1.4'
|
4
4
|
gem 'arel', '~> 8'
|
@@ -8,23 +8,23 @@ group :development, :test do
|
|
8
8
|
gem 'activemodel', '5.1.4'
|
9
9
|
gem 'activerecord', '5.1.4'
|
10
10
|
|
11
|
-
gem
|
12
|
-
gem
|
13
|
-
gem
|
11
|
+
gem 'sqlite3', '<= 1.3.13', platforms: %i[mri mswin mingw]
|
12
|
+
gem 'mysql2', '0.4.10', platforms: %i[mri mswin mingw]
|
13
|
+
gem 'pg', '< 1.0.0', platforms: %i[mri mingw]
|
14
14
|
|
15
|
-
gem
|
16
|
-
# gem "activerecord-sqlserver-adapter", :
|
15
|
+
gem 'tiny_tds', platforms: %i[mri mingw] if RUBY_PLATFORM.match?(/windows/)
|
16
|
+
# gem "activerecord-sqlserver-adapter", platforms: [:mri, :mingw]
|
17
17
|
|
18
|
-
gem 'ruby-oci8', platforms: [
|
18
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
|
19
19
|
gem 'activerecord-oracle_enhanced-adapter', '~> 1.8' if ENV.has_key? 'ORACLE_HOME'
|
20
20
|
|
21
21
|
# for JRuby
|
22
22
|
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v51.0', platforms: :jruby
|
23
|
-
gem
|
24
|
-
gem
|
25
|
-
gem
|
26
|
-
gem
|
27
|
-
gem
|
23
|
+
gem 'jdbc-sqlite3', platforms: :jruby
|
24
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
25
|
+
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
26
|
+
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
27
|
+
gem 'activerecord-jdbcmssql-adapter', platforms: :jruby
|
28
28
|
end
|
29
29
|
|
30
|
-
gemspec path:
|
30
|
+
gemspec path: Dir.pwd
|
data/gemfiles/rails5_2.gemfile
CHANGED
@@ -1,30 +1,32 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
gem 'rails', '~> 5.2.0'
|
4
4
|
gem 'arel', '~> 9'
|
5
5
|
|
6
6
|
group :development, :test do
|
7
|
+
gem 'bigdecimal', '1.3.5', platforms: %i[mri mingw x64_mingw mswin]
|
7
8
|
gem 'activesupport', '~> 5.2.0'
|
8
9
|
gem 'activemodel', '~> 5.2.0'
|
9
10
|
gem 'activerecord', '~> 5.2.0'
|
10
11
|
|
11
|
-
gem
|
12
|
-
gem
|
13
|
-
gem
|
12
|
+
gem 'sqlite3', '<= 1.3.13', platforms: [:mri]
|
13
|
+
gem 'mysql2', '0.4.10', platforms: [:mri]
|
14
|
+
gem 'pg', '< 1.0.0', platforms: [:mri]
|
14
15
|
|
15
|
-
gem
|
16
|
-
|
16
|
+
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
17
|
+
gem 'activerecord-sqlserver-adapter', '~> 5.2', platforms: %i[mri mingw x64_mingw mswin]
|
18
|
+
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
17
19
|
|
18
|
-
gem 'ruby-oci8', platforms: [
|
20
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
|
19
21
|
gem 'activerecord-oracle_enhanced-adapter', '~> 5.2.0' if ENV.has_key? 'ORACLE_HOME'
|
20
22
|
|
21
23
|
# for JRuby
|
22
|
-
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v52.
|
23
|
-
gem
|
24
|
-
gem
|
25
|
-
gem
|
26
|
-
gem
|
27
|
-
gem
|
24
|
+
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
|
+
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
28
|
+
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
29
|
+
gem 'activerecord-jdbcsqlserver-adapter', '~> 52.0', platforms: :jruby
|
28
30
|
end
|
29
31
|
|
30
|
-
gemspec path:
|
32
|
+
gemspec path: Dir.pwd
|
data/gemfiles/rails6.gemfile
CHANGED
@@ -1,30 +1,33 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
gem 'rails', '~> 6.0.0'
|
4
4
|
|
5
|
-
|
6
5
|
group :development, :test do
|
6
|
+
gem 'ruby-lsp', platforms: %i[mri]
|
7
|
+
gem 'debug', platforms: %i[mri]
|
8
|
+
|
7
9
|
gem 'activesupport', '~> 6.0.0'
|
8
10
|
gem 'activemodel', '~> 6.0.0'
|
9
11
|
gem 'activerecord', '~> 6.0.0'
|
10
12
|
|
11
|
-
gem
|
12
|
-
gem
|
13
|
-
gem
|
13
|
+
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
14
|
+
gem 'mysql2', '0.5.2', platforms: [:mri]
|
15
|
+
gem 'pg', '< 1.0.0', platforms: [:mri]
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
+
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
18
|
+
gem 'activerecord-sqlserver-adapter', '~> 6.0', platforms: %i[mri mingw x64_mingw mswin]
|
19
|
+
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
17
20
|
|
18
|
-
gem 'ruby-oci8', platforms: [
|
21
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
|
19
22
|
gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.has_key? 'ORACLE_HOME'
|
20
23
|
|
21
24
|
# for JRuby
|
22
|
-
gem 'activerecord-jdbc-adapter',
|
23
|
-
gem
|
24
|
-
gem
|
25
|
-
gem
|
26
|
-
gem
|
27
|
-
gem
|
25
|
+
gem 'activerecord-jdbc-alt-adapter', '~> 60.0', platform: :jruby, require: true
|
26
|
+
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
27
|
+
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
28
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
29
|
+
gem 'jdbc-mssql', platforms: :jruby, require: true
|
30
|
+
gem 'jdbc-sqlite3', platforms: :jruby
|
28
31
|
end
|
29
32
|
|
30
|
-
gemspec path:
|
33
|
+
gemspec path: Dir.pwd
|
data/gemfiles/rails6_1.gemfile
CHANGED
@@ -1,30 +1,33 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
gem 'rails', '~> 6.1.0'
|
4
4
|
|
5
|
-
|
6
5
|
group :development, :test do
|
6
|
+
gem 'ruby-lsp', platforms: %i[mri]
|
7
|
+
gem 'debug', platforms: %i[mri]
|
8
|
+
|
7
9
|
gem 'activesupport', '~> 6.1.0'
|
8
10
|
gem 'activemodel', '~> 6.1.0'
|
9
11
|
gem 'activerecord', '~> 6.1.0'
|
10
12
|
|
11
|
-
gem
|
12
|
-
gem
|
13
|
-
gem
|
13
|
+
gem 'sqlite3', '~> 1.4', platforms: [:mri]
|
14
|
+
gem 'mysql2', '~>0.5', platforms: [:mri]
|
15
|
+
gem 'pg', '~> 1.1', platforms: [:mri]
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
+
gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
|
18
|
+
gem 'activerecord-sqlserver-adapter', '~> 6.1.0', platforms: %i[mri mingw x64_mingw mswin]
|
19
|
+
gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
|
17
20
|
|
18
|
-
gem 'ruby-oci8', platforms: [
|
21
|
+
gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
|
19
22
|
gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.has_key? 'ORACLE_HOME'
|
20
23
|
|
21
24
|
# for JRuby
|
22
|
-
gem 'activerecord-jdbc-adapter',
|
23
|
-
gem
|
24
|
-
gem
|
25
|
-
gem
|
26
|
-
gem
|
27
|
-
gem
|
25
|
+
gem 'activerecord-jdbc-alt-adapter', '~> 61.0', platform: :jruby, require: true
|
26
|
+
gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
|
27
|
+
gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
|
28
|
+
gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
|
29
|
+
gem 'jdbc-mssql', platforms: :jruby, require: true
|
30
|
+
gem 'jdbc-sqlite3', platforms: :jruby
|
28
31
|
end
|
29
32
|
|
30
|
-
gemspec path:
|
33
|
+
gemspec path: Dir.pwd
|