arel_extensions 1.6.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.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +2 -1
  3. data/.gitignore +6 -7
  4. data/.rubocop.yml +3 -67
  5. data/.travis/oracle/download.js +152 -0
  6. data/.travis/oracle/download.sh +30 -0
  7. data/.travis/oracle/download_ojdbc.js +116 -0
  8. data/.travis/oracle/install.sh +34 -0
  9. data/.travis/setup_accounts.sh +9 -0
  10. data/.travis/sqlite3/extension-functions.sh +6 -0
  11. data/.travis.yml +223 -0
  12. data/Gemfile +28 -2
  13. data/README.md +91 -258
  14. data/Rakefile +30 -48
  15. data/TODO +1 -0
  16. data/appveyor.yml +22 -60
  17. data/arel_extensions.gemspec +14 -13
  18. data/functions.html +3 -3
  19. data/gemfiles/rails3.gemfile +20 -0
  20. data/gemfiles/rails4.gemfile +29 -0
  21. data/gemfiles/rails5_0.gemfile +29 -0
  22. data/gemfiles/rails5_1_4.gemfile +14 -14
  23. data/gemfiles/rails5_2.gemfile +14 -16
  24. data/init/mssql.sql +4 -4
  25. data/init/mysql.sql +38 -38
  26. data/init/oracle.sql +0 -0
  27. data/init/postgresql.sql +25 -24
  28. data/init/sqlite.sql +0 -0
  29. data/lib/arel_extensions/attributes.rb +3 -7
  30. data/lib/arel_extensions/boolean_functions.rb +14 -53
  31. data/lib/arel_extensions/common_sql_functions.rb +17 -16
  32. data/lib/arel_extensions/comparators.rb +28 -29
  33. data/lib/arel_extensions/date_duration.rb +13 -17
  34. data/lib/arel_extensions/insert_manager.rb +15 -18
  35. data/lib/arel_extensions/math.rb +53 -55
  36. data/lib/arel_extensions/math_functions.rb +39 -46
  37. data/lib/arel_extensions/nodes/abs.rb +1 -0
  38. data/lib/arel_extensions/nodes/blank.rb +2 -1
  39. data/lib/arel_extensions/nodes/case.rb +19 -20
  40. data/lib/arel_extensions/nodes/cast.rb +8 -10
  41. data/lib/arel_extensions/nodes/ceil.rb +1 -1
  42. data/lib/arel_extensions/nodes/coalesce.rb +4 -3
  43. data/lib/arel_extensions/nodes/collate.rb +10 -9
  44. data/lib/arel_extensions/nodes/concat.rb +18 -9
  45. data/lib/arel_extensions/nodes/date_diff.rb +26 -42
  46. data/lib/arel_extensions/nodes/duration.rb +3 -0
  47. data/lib/arel_extensions/nodes/find_in_set.rb +1 -0
  48. data/lib/arel_extensions/nodes/floor.rb +1 -1
  49. data/lib/arel_extensions/nodes/format.rb +8 -35
  50. data/lib/arel_extensions/nodes/formatted_number.rb +23 -22
  51. data/lib/arel_extensions/nodes/function.rb +37 -46
  52. data/lib/arel_extensions/nodes/is_null.rb +0 -0
  53. data/lib/arel_extensions/nodes/json.rb +39 -52
  54. data/lib/arel_extensions/nodes/length.rb +0 -5
  55. data/lib/arel_extensions/nodes/levenshtein_distance.rb +1 -1
  56. data/lib/arel_extensions/nodes/locate.rb +2 -1
  57. data/lib/arel_extensions/nodes/log10.rb +2 -1
  58. data/lib/arel_extensions/nodes/matches.rb +8 -6
  59. data/lib/arel_extensions/nodes/md5.rb +1 -0
  60. data/lib/arel_extensions/nodes/power.rb +5 -5
  61. data/lib/arel_extensions/nodes/rand.rb +1 -0
  62. data/lib/arel_extensions/nodes/repeat.rb +5 -3
  63. data/lib/arel_extensions/nodes/replace.rb +8 -16
  64. data/lib/arel_extensions/nodes/round.rb +6 -5
  65. data/lib/arel_extensions/nodes/soundex.rb +15 -15
  66. data/lib/arel_extensions/nodes/std.rb +21 -18
  67. data/lib/arel_extensions/nodes/substring.rb +16 -8
  68. data/lib/arel_extensions/nodes/then.rb +1 -1
  69. data/lib/arel_extensions/nodes/trim.rb +6 -4
  70. data/lib/arel_extensions/nodes/union.rb +8 -5
  71. data/lib/arel_extensions/nodes/union_all.rb +7 -4
  72. data/lib/arel_extensions/nodes/wday.rb +4 -0
  73. data/lib/arel_extensions/nodes.rb +1 -1
  74. data/lib/arel_extensions/null_functions.rb +5 -19
  75. data/lib/arel_extensions/predications.rb +44 -45
  76. data/lib/arel_extensions/railtie.rb +5 -5
  77. data/lib/arel_extensions/set_functions.rb +7 -5
  78. data/lib/arel_extensions/string_functions.rb +35 -91
  79. data/lib/arel_extensions/tasks.rb +6 -6
  80. data/lib/arel_extensions/version.rb +1 -1
  81. data/lib/arel_extensions/visitors/ibm_db.rb +31 -24
  82. data/lib/arel_extensions/visitors/mssql.rb +194 -440
  83. data/lib/arel_extensions/visitors/mysql.rb +212 -368
  84. data/lib/arel_extensions/visitors/oracle.rb +179 -236
  85. data/lib/arel_extensions/visitors/oracle12.rb +31 -18
  86. data/lib/arel_extensions/visitors/postgresql.rb +173 -271
  87. data/lib/arel_extensions/visitors/sqlite.rb +127 -157
  88. data/lib/arel_extensions/visitors/to_sql.rb +238 -300
  89. data/lib/arel_extensions/visitors.rb +62 -83
  90. data/lib/arel_extensions.rb +31 -235
  91. data/test/database.yml +10 -20
  92. data/test/helper.rb +18 -0
  93. data/test/real_db_test.rb +118 -121
  94. data/test/support/fake_record.rb +3 -11
  95. data/test/test_comparators.rb +17 -14
  96. data/test/visitors/test_bulk_insert_oracle.rb +12 -12
  97. data/test/visitors/test_bulk_insert_sqlite.rb +14 -13
  98. data/test/visitors/test_bulk_insert_to_sql.rb +13 -11
  99. data/test/visitors/test_oracle.rb +55 -55
  100. data/test/visitors/test_to_sql.rb +226 -419
  101. data/test/with_ar/all_agnostic_test.rb +370 -773
  102. data/test/with_ar/insert_agnostic_test.rb +22 -28
  103. data/test/with_ar/test_bulk_sqlite.rb +17 -18
  104. data/test/with_ar/test_math_sqlite.rb +27 -27
  105. data/test/with_ar/test_string_mysql.rb +34 -32
  106. data/test/with_ar/test_string_sqlite.rb +35 -31
  107. metadata +38 -52
  108. data/.github/workflows/publish.yml +0 -30
  109. data/.github/workflows/release.yml +0 -30
  110. data/.github/workflows/ruby.yml +0 -452
  111. data/CONTRIBUTING.md +0 -102
  112. data/Makefile +0 -18
  113. data/NEWS.md +0 -116
  114. data/bin/build +0 -15
  115. data/bin/publish +0 -8
  116. data/dev/arelx.dockerfile +0 -41
  117. data/dev/compose.yaml +0 -69
  118. data/dev/postgres.dockerfile +0 -5
  119. data/dev/rbenv +0 -189
  120. data/gemfiles/rails5.gemfile +0 -29
  121. data/gemfiles/rails6.gemfile +0 -34
  122. data/gemfiles/rails6_1.gemfile +0 -42
  123. data/gemfiles/rails7.gemfile +0 -42
  124. data/gemfiles/rails7_1.gemfile +0 -41
  125. data/gemfiles/rails7_2.gemfile +0 -41
  126. data/gemfiles/rails8.gemfile +0 -40
  127. data/gemfiles/rails8_1.gemfile +0 -41
  128. data/gemspecs/arel_extensions-v1.gemspec +0 -27
  129. data/gemspecs/arel_extensions-v2.gemspec +0 -27
  130. data/generate_gems.sh +0 -15
  131. data/lib/arel_extensions/aliases.rb +0 -14
  132. data/lib/arel_extensions/constants.rb +0 -13
  133. data/lib/arel_extensions/helpers.rb +0 -61
  134. data/lib/arel_extensions/nodes/aggregate_function.rb +0 -13
  135. data/lib/arel_extensions/nodes/byte_size.rb +0 -11
  136. data/lib/arel_extensions/nodes/char_length.rb +0 -11
  137. data/lib/arel_extensions/nodes/formatted_date.rb +0 -42
  138. data/lib/arel_extensions/nodes/rollup.rb +0 -36
  139. data/lib/arel_extensions/nodes/select.rb +0 -10
  140. data/lib/arel_extensions/nodes/sum.rb +0 -7
  141. data/lib/arel_extensions/visitors/convert_format.rb +0 -37
  142. data/lib/arel_extensions/warning.rb +0 -42
  143. data/test/arelx_test_helper.rb +0 -94
  144. data/test/config_loader.rb +0 -9
  145. data/version_v1.rb +0 -3
  146. data/version_v2.rb +0 -3
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
@@ -1,8 +0,0 @@
1
- #! /usr/bin/env sh
2
- set -e
3
-
4
- find . -name "arel_extensions*.gem" | while read packaged_gem ; do
5
- echo "Publishing $packaged_gem"
6
- gem push "$packaged_gem"
7
- done
8
-
data/dev/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:
@@ -1,5 +0,0 @@
1
- FROM postgres:16
2
-
3
- RUN locale-gen fr_FR.utf8 && update-locale
4
- RUN localedef -i fr_FR -c -f UTF-8 -A /usr/share/locale/locale.alias fr_FR.UTF-8
5
- # ENV LANG fr_FR.utf8
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..])
@@ -1,29 +0,0 @@
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
@@ -1,34 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rails', '~> 6.0.0'
4
-
5
- group :development, :test do
6
- gem 'ruby-lsp', platforms: %i[mri]
7
- gem 'debug', platforms: %i[mri]
8
- gem 'concurrent-ruby', '1.3.4' # Need to pin b/c of a known issue https://github.com/rails/rails/issues/54260
9
-
10
- gem 'activesupport', '~> 6.0.0'
11
- gem 'activemodel', '~> 6.0.0'
12
- gem 'activerecord', '~> 6.0.0'
13
-
14
- gem 'sqlite3', '~> 1.4', platforms: [:mri]
15
- gem 'mysql2', '0.5.2', platforms: [:mri]
16
- gem 'pg', '< 1.0.0', platforms: [:mri]
17
-
18
- gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
19
- gem 'activerecord-sqlserver-adapter', '~> 6.0', platforms: %i[mri mingw x64_mingw mswin]
20
- gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
21
-
22
- gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
23
- gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.has_key? 'ORACLE_HOME'
24
-
25
- # for JRuby
26
- gem 'activerecord-jdbc-alt-adapter', '~> 60.0', platform: :jruby, require: true
27
- gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
28
- gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
29
- gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
30
- gem 'jdbc-mssql', platforms: :jruby, require: true
31
- gem 'jdbc-sqlite3', platforms: :jruby
32
- end
33
-
34
- gemspec path: Dir.pwd
@@ -1,42 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rails', '~> 6.1.0'
4
-
5
- group :development, :test do
6
- gem 'ruby-lsp', platforms: %i[mri]
7
- gem 'debug', platforms: %i[mri]
8
- gem 'concurrent-ruby', '1.3.4' # Need to pin b/c of a known issue https://github.com/rails/rails/issues/54260
9
-
10
- gem 'activesupport', '~> 6.1.0'
11
- gem 'activemodel', '~> 6.1.0'
12
- gem 'activerecord', '~> 6.1.0'
13
-
14
- gem 'sqlite3', '~> 1.4', platforms: [:mri]
15
- gem 'mysql2', '~>0.5', platforms: [:mri]
16
- gem 'pg', '~> 1.1', platforms: [:mri]
17
-
18
- gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
19
- gem 'activerecord-sqlserver-adapter', '~> 6.1.0', platforms: %i[mri mingw x64_mingw mswin]
20
- gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
21
-
22
- gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
23
- gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.has_key? 'ORACLE_HOME'
24
-
25
- # for JRuby
26
- gem 'activerecord-jdbc-alt-adapter', '~> 61.0', platform: :jruby, require: true
27
- gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
28
- gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
29
- gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
30
- gem 'jdbc-mssql', platforms: :jruby, require: true
31
- gem 'jdbc-sqlite3', platforms: :jruby
32
-
33
- # Ruby 3.4+ removes the following gems from the standard distribution.
34
- # Warnings are emitted from 3.3 .
35
- if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('3.3.0')
36
- gem 'base64'
37
- gem 'bigdecimal'
38
- gem 'mutex_m'
39
- end
40
- end
41
-
42
- gemspec path: Dir.pwd
@@ -1,42 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rails', '~> 7.0.1'
4
-
5
- group :development, :test do
6
- gem 'ruby-lsp', platforms: %i[mri]
7
- gem 'debug', platforms: %i[mri]
8
- gem 'concurrent-ruby', '1.3.4' # Need to pin b/c of a known issue https://github.com/rails/rails/issues/54260
9
-
10
- gem 'activesupport', '~> 7.0.1'
11
- gem 'activemodel', '~> 7.0.1'
12
- gem 'activerecord', '~> 7.0.1'
13
-
14
- gem 'sqlite3', '~> 1.4', platforms: [:mri]
15
- gem 'mysql2', '~>0.5', platforms: [:mri]
16
- gem 'pg', '~> 1.1', platforms: [:mri]
17
-
18
- gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
19
- gem 'activerecord-sqlserver-adapter', '~> 7.0.7', platforms: %i[mri mingw x64_mingw mswin]
20
- gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw]
21
-
22
- gem 'ruby-oci8', platforms: %i[mri mswin mingw] if ENV.has_key? 'ORACLE_HOME'
23
- gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.has_key? 'ORACLE_HOME'
24
-
25
- # for JRuby
26
- gem 'jdbc-mssql', platforms: :jruby, require: true
27
- gem 'jdbc-sqlite3', platform: :jruby
28
- gem 'activerecord-jdbc-alt-adapter', '~> 70.0', platform: :jruby, require: true
29
- gem 'activerecord-jdbcmysql-adapter', platforms: :jruby
30
- gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
31
- gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
32
-
33
- # Ruby 3.4+ removes the following gems from the standard distribution.
34
- # Warnings are emitted from 3.3 .
35
- if Gem::Version.create(RUBY_VERSION) >= Gem::Version.create('3.3.0')
36
- gem 'base64'
37
- gem 'bigdecimal'
38
- gem 'mutex_m'
39
- end
40
- end
41
-
42
- gemspec path: Dir.pwd
@@ -1,41 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rails', '~> 7.1'
4
-
5
- group :development, :test do
6
- gem 'ruby-lsp', platforms: %i[mri]
7
- gem 'debug', platforms: %i[mri]
8
-
9
- gem 'activesupport', '~> 7.1'
10
- gem 'activemodel', '~> 7.1'
11
- gem 'activerecord', '~> 7.1'
12
-
13
- gem 'sqlite3', '~> 1.6', platforms: [:mri]
14
- gem 'mysql2', '~>0.5', platforms: [:mri]
15
- gem 'pg', '~> 1.5', platforms: [:mri]
16
-
17
- 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
- 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', '~> 7.0.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,41 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rails', '~> 7.2'
4
-
5
- group :development, :test do
6
- gem 'ruby-lsp', platforms: %i[mri]
7
- gem 'debug', platforms: %i[mri]
8
-
9
- gem 'activesupport', '~> 7.2'
10
- gem 'activemodel', '~> 7.2'
11
- gem 'activerecord', '~> 7.2'
12
-
13
- gem 'sqlite3', '~> 1.6', platforms: [:mri]
14
- gem 'mysql2', '~>0.5', platforms: [:mri]
15
- gem 'pg', '~> 1.5', platforms: [:mri]
16
-
17
- gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
18
- gem 'activerecord-sqlserver-adapter', '~> 7.2', 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', '~> 7.0.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,40 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rails', '~> 8.0'
4
-
5
- group :development, :test do
6
- gem 'ruby-lsp', platforms: %i[mri]
7
- gem 'debug', platforms: %i[mri]
8
-
9
- gem 'activesupport', '~> 8.0'
10
- gem 'activemodel', '~> 8.0'
11
- gem 'activerecord', '~> 8.0'
12
-
13
- gem 'sqlite3', '~> 2.1', platforms: [:mri]
14
- gem 'mysql2', '~>0.5', platforms: [:mri]
15
- gem 'pg', '~> 1.5', platforms: [:mri]
16
-
17
- gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
18
- gem 'activerecord-sqlserver-adapter', '~> 8.0', 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.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-jdbcmysql-adapter', platforms: :jruby
28
- gem 'activerecord-jdbcpostgresql-adapter', platforms: :jruby
29
- gem 'activerecord-jdbcsqlite3-adapter', platforms: :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
@@ -1,41 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'rails', '~> 8.1'
4
-
5
- group :development, :test do
6
- gem 'ruby-lsp', platforms: %i[mri]
7
- gem 'debug', platforms: %i[mri]
8
-
9
- gem 'activesupport', '~> 8.1'
10
- gem 'activemodel', '~> 8.1'
11
- gem 'activerecord', '~> 8.1'
12
-
13
- gem 'sqlite3', '~> 2.1', platforms: [:mri]
14
- gem 'mysql2', '~>0.5', platforms: [:mri]
15
- gem 'pg', '~> 1.5', platforms: [:mri]
16
-
17
- gem 'tiny_tds', platforms: %i[mri mingw x64_mingw mswin]
18
- gem 'activerecord-sqlserver-adapter', '~> 8.1', 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,27 +0,0 @@
1
- $:.push File.expand_path('../lib', __FILE__)
2
- require 'arel_extensions/version'
3
-
4
- Gem::Specification.new do |s|
5
- s.name = 'arel_extensions'
6
- s.version = ArelExtensions::VERSION
7
- s.platform = Gem::Platform::RUBY
8
- s.authors = ['Yann Azoury', 'Félix Bellanger', 'Julien Delporte']
9
- s.email = ['yann.azoury@faveod.com', 'felix.bellanger@faveod.com', 'julien.delporte@faveod.com']
10
- s.homepage = 'https://github.com/Faveod/arel-extensions'
11
- s.description = 'Adds new features to Arel'
12
- s.summary = 'Extending Arel'
13
- s.license = 'MIT'
14
-
15
- s.rdoc_options = ['--main', 'README.md']
16
- s.extra_rdoc_files = ['MIT-LICENSE.txt', 'README.md', 'functions.html']
17
-
18
- # Manifest
19
- s.files = `git ls-files`.split("\n")
20
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
- s.require_paths = ['lib']
22
-
23
- 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
- end