arel_extensions 2.0.13 → 2.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +10 -10
- data/Rakefile +4 -4
- data/gemfiles/rails3.gemfile +9 -9
- data/gemfiles/rails4.gemfile +13 -13
- data/gemfiles/rails5_0.gemfile +13 -13
- data/gemfiles/rails5_1_4.gemfile +13 -13
- data/gemfiles/rails5_2.gemfile +13 -13
- data/gemfiles/rails6.gemfile +13 -13
- data/lib/arel_extensions.rb +2 -2
- data/lib/arel_extensions/attributes.rb +0 -0
- data/lib/arel_extensions/boolean_functions.rb +3 -7
- data/lib/arel_extensions/common_sql_functions.rb +0 -2
- data/lib/arel_extensions/comparators.rb +11 -14
- data/lib/arel_extensions/date_duration.rb +4 -5
- data/lib/arel_extensions/insert_manager.rb +16 -17
- data/lib/arel_extensions/math.rb +8 -9
- data/lib/arel_extensions/math_functions.rb +15 -17
- data/lib/arel_extensions/nodes/abs.rb +0 -1
- data/lib/arel_extensions/nodes/aggregate_function.rb +0 -1
- data/lib/arel_extensions/nodes/blank.rb +0 -1
- data/lib/arel_extensions/nodes/case.rb +3 -4
- data/lib/arel_extensions/nodes/cast.rb +0 -1
- data/lib/arel_extensions/nodes/ceil.rb +1 -1
- data/lib/arel_extensions/nodes/change_case.rb +0 -0
- data/lib/arel_extensions/nodes/coalesce.rb +0 -1
- data/lib/arel_extensions/nodes/collate.rb +0 -1
- data/lib/arel_extensions/nodes/concat.rb +1 -3
- data/lib/arel_extensions/nodes/date_diff.rb +4 -5
- data/lib/arel_extensions/nodes/duration.rb +0 -1
- data/lib/arel_extensions/nodes/find_in_set.rb +0 -1
- data/lib/arel_extensions/nodes/floor.rb +1 -1
- data/lib/arel_extensions/nodes/format.rb +1 -0
- data/lib/arel_extensions/nodes/formatted_number.rb +0 -1
- data/lib/arel_extensions/nodes/function.rb +2 -3
- data/lib/arel_extensions/nodes/is_null.rb +0 -0
- data/lib/arel_extensions/nodes/json.rb +0 -6
- data/lib/arel_extensions/nodes/length.rb +0 -1
- data/lib/arel_extensions/nodes/levenshtein_distance.rb +0 -0
- data/lib/arel_extensions/nodes/locate.rb +0 -1
- data/lib/arel_extensions/nodes/log10.rb +1 -2
- data/lib/arel_extensions/nodes/matches.rb +0 -2
- data/lib/arel_extensions/nodes/md5.rb +0 -1
- data/lib/arel_extensions/nodes/power.rb +0 -1
- data/lib/arel_extensions/nodes/rand.rb +0 -1
- data/lib/arel_extensions/nodes/repeat.rb +0 -2
- data/lib/arel_extensions/nodes/replace.rb +0 -2
- data/lib/arel_extensions/nodes/round.rb +0 -1
- data/lib/arel_extensions/nodes/soundex.rb +0 -1
- data/lib/arel_extensions/nodes/std.rb +0 -1
- data/lib/arel_extensions/nodes/substring.rb +0 -1
- data/lib/arel_extensions/nodes/sum.rb +0 -0
- data/lib/arel_extensions/nodes/then.rb +0 -0
- data/lib/arel_extensions/nodes/trim.rb +0 -2
- data/lib/arel_extensions/nodes/union.rb +0 -2
- data/lib/arel_extensions/nodes/union_all.rb +0 -2
- data/lib/arel_extensions/nodes/wday.rb +0 -4
- data/lib/arel_extensions/null_functions.rb +3 -5
- data/lib/arel_extensions/predications.rb +2 -3
- data/lib/arel_extensions/railtie.rb +5 -5
- data/lib/arel_extensions/set_functions.rb +0 -2
- data/lib/arel_extensions/string_functions.rb +21 -22
- data/lib/arel_extensions/tasks.rb +1 -1
- data/lib/arel_extensions/version.rb +1 -1
- data/lib/arel_extensions/visitors.rb +9 -7
- data/lib/arel_extensions/visitors/convert_format.rb +37 -0
- data/lib/arel_extensions/visitors/ibm_db.rb +4 -11
- data/lib/arel_extensions/visitors/mssql.rb +48 -44
- data/lib/arel_extensions/visitors/mysql.rb +63 -65
- data/lib/arel_extensions/visitors/oracle.rb +48 -55
- data/lib/arel_extensions/visitors/oracle12.rb +2 -3
- data/lib/arel_extensions/visitors/postgresql.rb +39 -34
- data/lib/arel_extensions/visitors/sqlite.rb +23 -18
- data/lib/arel_extensions/visitors/to_sql.rb +42 -44
- data/test/arelx_test_helper.rb +0 -2
- data/test/real_db_test.rb +26 -41
- data/test/support/fake_record.rb +1 -1
- data/test/test_comparators.rb +0 -4
- data/test/visitors/test_bulk_insert_oracle.rb +0 -1
- data/test/visitors/test_bulk_insert_sqlite.rb +0 -2
- data/test/visitors/test_oracle.rb +1 -2
- data/test/visitors/test_to_sql.rb +16 -25
- data/test/with_ar/all_agnostic_test.rb +134 -139
- data/test/with_ar/insert_agnostic_test.rb +0 -2
- data/test/with_ar/test_bulk_sqlite.rb +0 -4
- data/test/with_ar/test_math_sqlite.rb +4 -8
- data/test/with_ar/test_string_mysql.rb +1 -5
- data/test/with_ar/test_string_sqlite.rb +1 -5
- data/version_v1.rb +1 -1
- data/version_v2.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4f118abcbd3bf5aaaf8d51512eb48f83075366787cebb65df599b92adbd2b0a
|
4
|
+
data.tar.gz: 2293e1e93c270882e52381a80c77075a5bc64e69a8bfc2ef83e18ece41c21415
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f138a33feefd3fca0172b101ef494053735b0d19496a04cb071de00cd986f3456c04b2389bc072b7ee4e66f9021fac3e377633760dbac1eae93f293663b053f
|
7
|
+
data.tar.gz: e9d608c7740de19dcaafb611db14596d096cc5cb6b0d294fa8166e0729aaf0b1ce723f33841bda14fdd54544fb6b099e381a0a8c8b2cfe85d22dbccdcd6f0e46
|
data/Gemfile
CHANGED
@@ -3,19 +3,19 @@ source "https://rubygems.org"
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
group :development, :test do
|
6
|
-
gem "sqlite3", '<= 1.3.13', :
|
7
|
-
gem "mysql2", '0.4.10', :
|
8
|
-
gem "pg", '< 1', :
|
6
|
+
gem "sqlite3", '<= 1.3.13', platforms: [:mri, :mswin, :x64_mingw, :mingw]
|
7
|
+
gem "mysql2", '0.4.10', platforms: [:mri, :mswin, :x64_mingw, :mingw]
|
8
|
+
gem "pg", '< 1', platforms: [:mri, :mingw, :x64_mingw, :mswin]
|
9
9
|
|
10
|
-
gem "jdbc-sqlite3", :
|
11
|
-
gem "activerecord-jdbcsqlite3-adapter", :
|
12
|
-
gem "activerecord-jdbcmysql-adapter", :
|
13
|
-
gem "activerecord-jdbcpostgresql-adapter", :
|
10
|
+
gem "jdbc-sqlite3", platforms: :jruby
|
11
|
+
gem "activerecord-jdbcsqlite3-adapter", platforms: :jruby
|
12
|
+
gem "activerecord-jdbcmysql-adapter", platforms: :jruby
|
13
|
+
gem "activerecord-jdbcpostgresql-adapter", platforms: :jruby
|
14
14
|
|
15
|
-
gem "tiny_tds", '~> 1.3.0'
|
16
|
-
gem "activerecord-sqlserver-adapter", '~> 4.2.0', :
|
15
|
+
gem "tiny_tds", '~> 1.3.0',require: false, platforms: [:mri,:mingw, :x64_mingw, :mswin]
|
16
|
+
gem "activerecord-sqlserver-adapter", '~> 4.2.0', platforms: [:mri, :mingw, :x64_mingw, :mswin]
|
17
17
|
|
18
|
-
gem 'ruby-oci8', :
|
18
|
+
gem 'ruby-oci8', platforms: [:mri, :mswin, :x64_mingw, :mingw]
|
19
19
|
gem 'activerecord-oracle_enhanced-adapter', '~> 1.6.0'
|
20
20
|
|
21
21
|
gem 'activesupport', '~> 4.0'
|
data/Rakefile
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'bundler'
|
2
|
-
Bundler::GemHelper.install_tasks :
|
2
|
+
Bundler::GemHelper.install_tasks name: "arel_extensions"
|
3
3
|
|
4
4
|
require 'rake/testtask'
|
5
5
|
|
6
6
|
desc "Default Task"
|
7
|
-
task default: [
|
7
|
+
task default: [:test]
|
8
8
|
|
9
9
|
Rake::TestTask.new(:test) do |t|
|
10
10
|
t.libs << 'lib'
|
@@ -38,8 +38,8 @@ end
|
|
38
38
|
end
|
39
39
|
|
40
40
|
namespace adapter do
|
41
|
-
task :
|
42
|
-
task :
|
41
|
+
task test: "test_#{adapter}"
|
42
|
+
task isolated_test: "isolated_test_#{adapter}"
|
43
43
|
|
44
44
|
# Set the connection environment for the adapter
|
45
45
|
task(:env) { ENV['DB'] = adapter }
|
data/gemfiles/rails3.gemfile
CHANGED
@@ -3,18 +3,18 @@ source "https://rubygems.org"
|
|
3
3
|
gem 'arel', '~> 3.0' # too old...
|
4
4
|
|
5
5
|
group :development, :test do
|
6
|
-
gem "sqlite3", '<= 1.3.13', :
|
7
|
-
gem "mysql2", '0.4.10', :
|
8
|
-
gem "activerecord-mysql2-adapter", :
|
9
|
-
gem "pg", :
|
6
|
+
gem "sqlite3", '<= 1.3.13', platform: [:ruby, :mswin, :mingw]
|
7
|
+
gem "mysql2", '0.4.10', platform: [:ruby, :mswin, :mingw]
|
8
|
+
gem "activerecord-mysql2-adapter", platform: [:ruby, :mswin, :mingw]
|
9
|
+
gem "pg", platform: [:ruby, :mswin, :mingw]
|
10
10
|
# for JRuby
|
11
|
-
gem "jdbc-sqlite3", :
|
12
|
-
gem "activerecord-jdbcsqlite3-adapter", :
|
13
|
-
gem "activerecord-jdbcmysql-adapter", :
|
14
|
-
gem "activerecord-jdbcpostgresql-adapter", :
|
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 :
|
20
|
+
gemspec path: "../"
|
data/gemfiles/rails4.gemfile
CHANGED
@@ -7,23 +7,23 @@ group :development, :test do
|
|
7
7
|
gem 'activemodel', '~> 4.0'
|
8
8
|
gem 'activerecord', '~> 4.0'
|
9
9
|
|
10
|
-
gem "sqlite3", '<= 1.3.13', :
|
11
|
-
gem "mysql2", '0.4.10', :
|
12
|
-
gem "pg",'< 1.0.0', :
|
10
|
+
gem "sqlite3", '<= 1.3.13', platforms: [:mri, :mswin, :mingw]
|
11
|
+
gem "mysql2", '0.4.10', platforms: [:mri, :mswin, :mingw]
|
12
|
+
gem "pg",'< 1.0.0', platforms: [:mri, :mingw]
|
13
13
|
|
14
|
-
gem "tiny_tds", :
|
15
|
-
gem "activerecord-sqlserver-adapter", '~> 4.2.0', :
|
14
|
+
gem "tiny_tds", platforms: [:mri, :mingw, :mswin] if RUBY_PLATFORM =~ /windows/
|
15
|
+
gem "activerecord-sqlserver-adapter", '~> 4.2.0', platforms: [:mri, :mingw, :mswin] if RUBY_PLATFORM =~ /windows/
|
16
16
|
|
17
|
-
gem 'ruby-oci8', :
|
17
|
+
gem 'ruby-oci8', platforms: [:mri, :mswin, :mingw] if ENV.has_key? 'ORACLE_HOME'
|
18
18
|
gem 'activerecord-oracle_enhanced-adapter', '~> 1.6.0' if ENV.has_key? 'ORACLE_HOME'
|
19
19
|
|
20
20
|
# for JRuby
|
21
|
-
gem 'activerecord-jdbc-adapter', '~> 1.3'
|
22
|
-
gem "jdbc-sqlite3", :
|
23
|
-
gem "activerecord-jdbcsqlite3-adapter", :
|
24
|
-
gem "activerecord-jdbcmysql-adapter", :
|
25
|
-
gem "activerecord-jdbcpostgresql-adapter", :
|
26
|
-
gem "activerecord-jdbcmssql-adapter", :
|
21
|
+
gem 'activerecord-jdbc-adapter', '~> 1.3',platforms: :jruby
|
22
|
+
gem "jdbc-sqlite3", platforms: :jruby
|
23
|
+
gem "activerecord-jdbcsqlite3-adapter", platforms: :jruby
|
24
|
+
gem "activerecord-jdbcmysql-adapter", platforms: :jruby
|
25
|
+
gem "activerecord-jdbcpostgresql-adapter", platforms: :jruby
|
26
|
+
gem "activerecord-jdbcmssql-adapter", platforms: :jruby
|
27
27
|
end
|
28
28
|
|
29
|
-
gemspec :
|
29
|
+
gemspec path: "../"
|
data/gemfiles/rails5_0.gemfile
CHANGED
@@ -7,23 +7,23 @@ group :development, :test do
|
|
7
7
|
gem 'activemodel', '~> 5.0'
|
8
8
|
gem 'activerecord', '5.0.6'
|
9
9
|
|
10
|
-
gem "sqlite3", '<= 1.3.13', :
|
11
|
-
gem "mysql2", '0.4.10', :
|
12
|
-
gem "pg",'< 1.0.0', :
|
10
|
+
gem "sqlite3", '<= 1.3.13', platforms: [:mri, :mswin, :mingw]
|
11
|
+
gem "mysql2", '0.4.10', platforms: [:mri, :mswin, :mingw]
|
12
|
+
gem "pg",'< 1.0.0', platforms: [:mri, :mingw]
|
13
13
|
|
14
|
-
gem "tiny_tds", :
|
15
|
-
#gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw]
|
14
|
+
gem "tiny_tds", platforms: [:mri, :mingw] if RUBY_PLATFORM =~ /windows/
|
15
|
+
# gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw]
|
16
16
|
|
17
|
-
gem 'ruby-oci8', :
|
17
|
+
gem 'ruby-oci8', platforms: [:mri, :mswin, :mingw] if ENV.has_key? 'ORACLE_HOME'
|
18
18
|
gem 'activerecord-oracle_enhanced-adapter', '~> 1.7' if ENV.has_key? 'ORACLE_HOME'
|
19
19
|
|
20
20
|
# for JRuby
|
21
|
-
gem 'activerecord-jdbc-adapter', :
|
22
|
-
gem "jdbc-sqlite3", :
|
23
|
-
gem "activerecord-jdbcsqlite3-adapter", :
|
24
|
-
gem "activerecord-jdbcmysql-adapter", :
|
25
|
-
gem "activerecord-jdbcpostgresql-adapter", :
|
26
|
-
gem "activerecord-jdbcmssql-adapter", :
|
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
27
|
end
|
28
28
|
|
29
|
-
gemspec :
|
29
|
+
gemspec path: "../"
|
data/gemfiles/rails5_1_4.gemfile
CHANGED
@@ -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 "sqlite3", '<= 1.3.13', :
|
12
|
-
gem "mysql2", '0.4.10', :
|
13
|
-
gem "pg",'< 1.0.0', :
|
11
|
+
gem "sqlite3", '<= 1.3.13', platforms: [:mri, :mswin, :mingw]
|
12
|
+
gem "mysql2", '0.4.10', platforms: [:mri, :mswin, :mingw]
|
13
|
+
gem "pg",'< 1.0.0', platforms: [:mri, :mingw]
|
14
14
|
|
15
|
-
gem "tiny_tds", :
|
16
|
-
#gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw]
|
15
|
+
gem "tiny_tds", platforms: [:mri, :mingw] if RUBY_PLATFORM =~ /windows/
|
16
|
+
# gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw]
|
17
17
|
|
18
|
-
gem 'ruby-oci8', :
|
18
|
+
gem 'ruby-oci8', platforms: [: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
|
-
gem 'activerecord-jdbc-adapter', :
|
23
|
-
gem "jdbc-sqlite3", :
|
24
|
-
gem "activerecord-jdbcsqlite3-adapter", :
|
25
|
-
gem "activerecord-jdbcmysql-adapter", :
|
26
|
-
gem "activerecord-jdbcpostgresql-adapter", :
|
27
|
-
gem "activerecord-jdbcmssql-adapter", :
|
22
|
+
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v51.0', platforms: :jruby
|
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 :
|
30
|
+
gemspec path: "../"
|
data/gemfiles/rails5_2.gemfile
CHANGED
@@ -8,23 +8,23 @@ group :development, :test do
|
|
8
8
|
gem 'activemodel', '~> 5.2.0'
|
9
9
|
gem 'activerecord', '~> 5.2.0'
|
10
10
|
|
11
|
-
gem "sqlite3", '<= 1.3.13', :
|
12
|
-
gem "mysql2", '0.4.10', :
|
13
|
-
gem "pg",'< 1.0.0', :
|
11
|
+
gem "sqlite3", '<= 1.3.13', platforms: [:mri, :mswin, :mingw]
|
12
|
+
gem "mysql2", '0.4.10', platforms: [:mri, :mswin, :mingw]
|
13
|
+
gem "pg",'< 1.0.0', platforms: [:mri, :mingw]
|
14
14
|
|
15
|
-
gem "tiny_tds", :
|
16
|
-
#gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw]
|
15
|
+
gem "tiny_tds", platforms: [:mri, :mingw] if RUBY_PLATFORM =~ /windows/
|
16
|
+
# gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw]
|
17
17
|
|
18
|
-
gem 'ruby-oci8', :
|
18
|
+
gem 'ruby-oci8', platforms: [:mri, :mswin, :mingw] if ENV.has_key? 'ORACLE_HOME'
|
19
19
|
gem 'activerecord-oracle_enhanced-adapter', '~> 5.2.0' if ENV.has_key? 'ORACLE_HOME'
|
20
20
|
|
21
21
|
# for JRuby
|
22
|
-
gem 'activerecord-jdbc-adapter', :
|
23
|
-
gem "jdbc-sqlite3", :
|
24
|
-
gem "activerecord-jdbcsqlite3-adapter", :
|
25
|
-
gem "activerecord-jdbcmysql-adapter", :
|
26
|
-
gem "activerecord-jdbcpostgresql-adapter", :
|
27
|
-
gem "activerecord-jdbcmssql-adapter", :
|
22
|
+
gem 'activerecord-jdbc-adapter', github: 'jruby/activerecord-jdbc-adapter', tag: 'v52.0', platforms: :jruby
|
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 :
|
30
|
+
gemspec path: "../"
|
data/gemfiles/rails6.gemfile
CHANGED
@@ -8,23 +8,23 @@ group :development, :test do
|
|
8
8
|
gem 'activemodel', '~> 6.0.0'
|
9
9
|
gem 'activerecord', '~> 6.0.0'
|
10
10
|
|
11
|
-
gem "sqlite3", '~> 1.4', :
|
12
|
-
gem "mysql2", '0.5.2', :
|
13
|
-
gem "pg",'< 1.0.0', :
|
11
|
+
gem "sqlite3", '~> 1.4', platforms: [:mri, :mswin, :mingw]
|
12
|
+
gem "mysql2", '0.5.2', platforms: [:mri, :mswin, :mingw]
|
13
|
+
gem "pg",'< 1.0.0', platforms: [:mri, :mingw]
|
14
14
|
|
15
|
-
gem "tiny_tds", :
|
16
|
-
gem "activerecord-sqlserver-adapter", :
|
15
|
+
gem "tiny_tds", platforms: [:mri, :mingw] if RUBY_PLATFORM =~ /windows/
|
16
|
+
gem "activerecord-sqlserver-adapter", platforms: [:mri, :mingw]
|
17
17
|
|
18
|
-
gem 'ruby-oci8', :
|
18
|
+
gem 'ruby-oci8', platforms: [:mri, :mswin, :mingw] if ENV.has_key? 'ORACLE_HOME'
|
19
19
|
gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.has_key? 'ORACLE_HOME'
|
20
20
|
|
21
21
|
# for JRuby
|
22
|
-
gem 'activerecord-jdbc-adapter', :
|
23
|
-
gem "jdbc-sqlite3", :
|
24
|
-
gem "activerecord-jdbcsqlite3-adapter", :
|
25
|
-
gem "activerecord-jdbcmysql-adapter", :
|
26
|
-
gem "activerecord-jdbcpostgresql-adapter", :
|
27
|
-
gem "activerecord-jdbcmssql-adapter", :
|
22
|
+
gem 'activerecord-jdbc-adapter', platforms: :jruby
|
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 :
|
30
|
+
gemspec path: "../gemspec_v2/"
|
data/lib/arel_extensions.rb
CHANGED
@@ -124,7 +124,7 @@ class Arel::Nodes::Function
|
|
124
124
|
include ArelExtensions::NullFunctions
|
125
125
|
include ArelExtensions::Predications
|
126
126
|
|
127
|
-
alias_method
|
127
|
+
alias_method(:old_as, :as) rescue nil
|
128
128
|
def as other
|
129
129
|
Arel::Nodes::As.new(self, Arel.sql(other))
|
130
130
|
end
|
@@ -178,7 +178,7 @@ class Arel::Nodes::As
|
|
178
178
|
end
|
179
179
|
|
180
180
|
class Arel::Table
|
181
|
-
alias_method
|
181
|
+
alias_method(:old_alias, :alias) rescue nil
|
182
182
|
def alias(name = "#{self.name}_2")
|
183
183
|
name.blank? ? self : Arel::Nodes::TableAlias.new(self,name)
|
184
184
|
end
|
File without changes
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
|
2
3
|
require 'arel_extensions/nodes/then'
|
3
4
|
|
4
5
|
module ArelExtensions
|
5
6
|
module BooleanFunctions
|
6
|
-
|
7
7
|
def ⋀(other)
|
8
8
|
self.and(other)
|
9
9
|
end
|
@@ -23,7 +23,6 @@ module ArelExtensions
|
|
23
23
|
def then(t, f = nil)
|
24
24
|
ArelExtensions::Nodes::Then.new [self, t, f]
|
25
25
|
end
|
26
|
-
|
27
26
|
end
|
28
27
|
end
|
29
28
|
|
@@ -34,10 +33,9 @@ class Arel::Nodes::And
|
|
34
33
|
children =
|
35
34
|
children.flatten.map { |c|
|
36
35
|
c.is_a?(self) ? c.children : c
|
37
|
-
|
36
|
+
}.flatten
|
38
37
|
super(children)
|
39
38
|
end
|
40
|
-
|
41
39
|
end
|
42
40
|
|
43
41
|
# For some reason, Arel's And is properly defined as variadic (it
|
@@ -55,7 +53,7 @@ class Arel::Nodes::Or
|
|
55
53
|
children =
|
56
54
|
children.flatten.map { |c|
|
57
55
|
c.is_a?(self) ? c.children : c
|
58
|
-
|
56
|
+
}.flatten
|
59
57
|
super(*children)
|
60
58
|
end
|
61
59
|
|
@@ -68,7 +66,6 @@ class Arel::Nodes::Or
|
|
68
66
|
@children = other.children.copy if other.children
|
69
67
|
end
|
70
68
|
|
71
|
-
|
72
69
|
def left
|
73
70
|
children.first
|
74
71
|
end
|
@@ -86,5 +83,4 @@ class Arel::Nodes::Or
|
|
86
83
|
children == other.children
|
87
84
|
end
|
88
85
|
alias :== :eql?
|
89
|
-
|
90
86
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
module ArelExtensions
|
2
2
|
module Comparators
|
3
|
-
|
4
|
-
|
5
3
|
def >(other)
|
6
4
|
Arel::Nodes::GreaterThan.new self, Arel::Nodes.build_quoted(other, self)
|
7
5
|
end
|
@@ -18,26 +16,26 @@ module ArelExtensions
|
|
18
16
|
Arel::Nodes::LessThanOrEqual.new self, Arel::Nodes.build_quoted(other, self)
|
19
17
|
end
|
20
18
|
|
21
|
-
|
22
|
-
#
|
23
|
-
#Pattern matching using regular expressions
|
19
|
+
# REGEXP function
|
20
|
+
# Pattern matching using regular expressions
|
24
21
|
def =~(other)
|
25
|
-
# arg = self.relation.engine.connection.schema_cache.columns_hash(self.relation.table_name)[self.name.to_s].type
|
26
|
-
# if arg == :string || arg == :text
|
22
|
+
# arg = self.relation.engine.connection.schema_cache.columns_hash(self.relation.table_name)[self.name.to_s].type
|
23
|
+
# if arg == :string || arg == :text
|
27
24
|
Arel::Nodes::Regexp.new self, convert_regexp(other)
|
28
|
-
# end
|
25
|
+
# end
|
29
26
|
end
|
30
27
|
|
31
|
-
#NOT_REGEXP function
|
32
|
-
#Negation of Regexp
|
28
|
+
# NOT_REGEXP function
|
29
|
+
# Negation of Regexp
|
33
30
|
def !~(other)
|
34
|
-
# arg = self.relation.engine.connection.schema_cache.columns_hash(self.relation.table_name)[self.name.to_s].type
|
35
|
-
# if arg == :string || arg == :text
|
31
|
+
# arg = self.relation.engine.connection.schema_cache.columns_hash(self.relation.table_name)[self.name.to_s].type
|
32
|
+
# if arg == :string || arg == :text
|
36
33
|
Arel::Nodes::NotRegexp.new self, convert_regexp(other)
|
37
|
-
# end
|
34
|
+
# end
|
38
35
|
end
|
39
36
|
|
40
37
|
private
|
38
|
+
|
41
39
|
# Function used for not_regexp.
|
42
40
|
def convert_regexp(other)
|
43
41
|
case other
|
@@ -56,6 +54,5 @@ module ArelExtensions
|
|
56
54
|
end
|
57
55
|
Arel::Nodes.build_quoted(other, self)
|
58
56
|
end
|
59
|
-
|
60
57
|
end
|
61
58
|
end
|
@@ -4,22 +4,22 @@ require 'arel_extensions/nodes/wday'
|
|
4
4
|
|
5
5
|
module ArelExtensions
|
6
6
|
module DateDuration
|
7
|
-
#function returns the year (as a number) given a date value.
|
7
|
+
# function returns the year (as a number) given a date value.
|
8
8
|
def year
|
9
9
|
ArelExtensions::Nodes::Duration.new "y", self
|
10
10
|
end
|
11
11
|
|
12
|
-
|
12
|
+
# function returns the month (as a number) given a date value.
|
13
13
|
def month
|
14
14
|
ArelExtensions::Nodes::Duration.new "m", self
|
15
15
|
end
|
16
16
|
|
17
|
-
#function returns the week (as a number) given a date value.
|
17
|
+
# function returns the week (as a number) given a date value.
|
18
18
|
def week
|
19
19
|
ArelExtensions::Nodes::Duration.new "w", self
|
20
20
|
end
|
21
21
|
|
22
|
-
#function returns the month (as a number) given a date value.
|
22
|
+
# function returns the month (as a number) given a date value.
|
23
23
|
def day
|
24
24
|
ArelExtensions::Nodes::Duration.new "d", self
|
25
25
|
end
|
@@ -43,6 +43,5 @@ module ArelExtensions
|
|
43
43
|
def format(tpl)
|
44
44
|
ArelExtensions::Nodes::Format.new [self, tpl]
|
45
45
|
end
|
46
|
-
|
47
46
|
end
|
48
47
|
end
|