arel_extensions 1.2.23 → 2.0.0.rc3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -7
- data/.travis.yml +91 -61
- data/Gemfile +20 -15
- data/README.md +12 -17
- data/Rakefile +29 -40
- data/appveyor.yml +1 -1
- data/arel_extensions.gemspec +3 -3
- data/functions.html +3 -3
- 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/init/mssql.sql +4 -4
- data/init/mysql.sql +38 -38
- data/init/postgresql.sql +21 -21
- data/lib/arel_extensions.rb +19 -69
- data/lib/arel_extensions/attributes.rb +1 -0
- data/lib/arel_extensions/boolean_functions.rb +14 -55
- data/lib/arel_extensions/common_sql_functions.rb +8 -7
- data/lib/arel_extensions/comparators.rb +15 -14
- data/lib/arel_extensions/date_duration.rb +5 -4
- data/lib/arel_extensions/insert_manager.rb +16 -17
- data/lib/arel_extensions/math.rb +12 -11
- data/lib/arel_extensions/math_functions.rb +22 -29
- data/lib/arel_extensions/nodes.rb +1 -1
- data/lib/arel_extensions/nodes/abs.rb +1 -0
- data/lib/arel_extensions/nodes/blank.rb +1 -0
- data/lib/arel_extensions/nodes/case.rb +8 -11
- data/lib/arel_extensions/nodes/cast.rb +2 -4
- 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 +3 -2
- data/lib/arel_extensions/nodes/collate.rb +2 -1
- data/lib/arel_extensions/nodes/concat.rb +16 -7
- data/lib/arel_extensions/nodes/date_diff.rb +13 -10
- data/lib/arel_extensions/nodes/duration.rb +3 -0
- data/lib/arel_extensions/nodes/find_in_set.rb +1 -0
- data/lib/arel_extensions/nodes/floor.rb +1 -1
- data/lib/arel_extensions/nodes/format.rb +8 -34
- data/lib/arel_extensions/nodes/formatted_number.rb +23 -22
- data/lib/arel_extensions/nodes/function.rb +16 -25
- data/lib/arel_extensions/nodes/json.rb +36 -43
- data/lib/arel_extensions/nodes/length.rb +1 -0
- data/lib/arel_extensions/nodes/levenshtein_distance.rb +0 -0
- data/lib/arel_extensions/nodes/locate.rb +1 -0
- data/lib/arel_extensions/nodes/log10.rb +2 -1
- data/lib/arel_extensions/nodes/matches.rb +6 -4
- data/lib/arel_extensions/nodes/md5.rb +1 -0
- data/lib/arel_extensions/nodes/power.rb +5 -5
- data/lib/arel_extensions/nodes/rand.rb +1 -0
- data/lib/arel_extensions/nodes/repeat.rb +4 -2
- data/lib/arel_extensions/nodes/replace.rb +6 -22
- data/lib/arel_extensions/nodes/round.rb +6 -5
- data/lib/arel_extensions/nodes/soundex.rb +15 -15
- data/lib/arel_extensions/nodes/std.rb +21 -18
- data/lib/arel_extensions/nodes/substring.rb +16 -8
- data/lib/arel_extensions/nodes/then.rb +0 -0
- data/lib/arel_extensions/nodes/trim.rb +5 -3
- data/lib/arel_extensions/nodes/union.rb +5 -2
- data/lib/arel_extensions/nodes/union_all.rb +3 -0
- data/lib/arel_extensions/nodes/wday.rb +4 -0
- data/lib/arel_extensions/null_functions.rb +7 -5
- data/lib/arel_extensions/predications.rb +34 -35
- data/lib/arel_extensions/railtie.rb +5 -5
- data/lib/arel_extensions/set_functions.rb +4 -2
- data/lib/arel_extensions/string_functions.rb +22 -43
- data/lib/arel_extensions/tasks.rb +5 -5
- data/lib/arel_extensions/version.rb +1 -1
- data/lib/arel_extensions/visitors.rb +60 -68
- data/lib/arel_extensions/visitors/ibm_db.rb +12 -5
- data/lib/arel_extensions/visitors/mssql.rb +57 -63
- data/lib/arel_extensions/visitors/mysql.rb +98 -149
- data/lib/arel_extensions/visitors/oracle.rb +68 -71
- data/lib/arel_extensions/visitors/oracle12.rb +15 -2
- data/lib/arel_extensions/visitors/postgresql.rb +63 -116
- data/lib/arel_extensions/visitors/sqlite.rb +70 -83
- data/lib/arel_extensions/visitors/to_sql.rb +109 -141
- data/test/database.yml +0 -2
- data/test/helper.rb +18 -0
- data/test/real_db_test.rb +43 -28
- data/test/support/fake_record.rb +2 -2
- data/test/test_comparators.rb +12 -9
- data/test/visitors/test_bulk_insert_oracle.rb +8 -8
- data/test/visitors/test_bulk_insert_sqlite.rb +10 -9
- data/test/visitors/test_bulk_insert_to_sql.rb +10 -8
- data/test/visitors/test_oracle.rb +42 -42
- data/test/visitors/test_to_sql.rb +196 -361
- data/test/with_ar/all_agnostic_test.rb +160 -195
- data/test/with_ar/insert_agnostic_test.rb +4 -3
- data/test/with_ar/test_bulk_sqlite.rb +9 -6
- data/test/with_ar/test_math_sqlite.rb +12 -8
- data/test/with_ar/test_string_mysql.rb +11 -5
- data/test/with_ar/test_string_sqlite.rb +12 -4
- metadata +11 -22
- data/.github/workflows/ruby.yml +0 -102
- data/gemfiles/rails6.gemfile +0 -30
- data/gemfiles/rails6_1.gemfile +0 -30
- data/gemspecs/arel_extensions-v1.gemspec +0 -28
- data/gemspecs/arel_extensions-v2.gemspec +0 -28
- data/generate_gems.sh +0 -15
- data/lib/arel_extensions/nodes/aggregate_function.rb +0 -13
- data/lib/arel_extensions/nodes/sum.rb +0 -7
- data/lib/arel_extensions/visitors/convert_format.rb +0 -37
- data/test/arelx_test_helper.rb +0 -26
- data/version_v1.rb +0 -3
- data/version_v2.rb +0 -3
@@ -1,8 +1,9 @@
|
|
1
|
-
require '
|
1
|
+
require 'helper'
|
2
2
|
require 'date'
|
3
3
|
|
4
4
|
module ArelExtensions
|
5
5
|
module WthAr
|
6
|
+
|
6
7
|
class InsertManagerTest < Minitest::Test
|
7
8
|
def setup_db
|
8
9
|
ActiveRecord::Base.configurations = YAML.load_file('test/database.yml')
|
@@ -22,7 +23,7 @@ module ArelExtensions
|
|
22
23
|
@cnx.execute(sql) rescue $stderr << "can't create functions\n"
|
23
24
|
end
|
24
25
|
end
|
25
|
-
@cnx.drop_table(:user_tests) rescue nil
|
26
|
+
@cnx.drop_table(:user_tests) rescue nil
|
26
27
|
@cnx.create_table :user_tests do |t|
|
27
28
|
t.column :age, :integer
|
28
29
|
t.column :name, :string
|
@@ -76,8 +77,8 @@ END;])
|
|
76
77
|
insert_manager.bulk_insert(@cols2, @data2)
|
77
78
|
@cnx.execute(insert_manager.to_sql)
|
78
79
|
assert_equal 4, User.count, "insertions failed"
|
79
|
-
|
80
80
|
end
|
81
|
+
|
81
82
|
end
|
82
83
|
end
|
83
84
|
end
|
@@ -1,8 +1,10 @@
|
|
1
|
-
require '
|
1
|
+
require 'helper'
|
2
2
|
|
3
3
|
module ArelExtensions
|
4
4
|
module WthAr
|
5
|
+
|
5
6
|
describe 'the sqlite visitor' do
|
7
|
+
|
6
8
|
before do
|
7
9
|
ActiveRecord::Base.configurations = YAML.load_file('test/database.yml')
|
8
10
|
ActiveRecord::Base.establish_connection(ENV['DB'] || (RUBY_PLATFORM == 'java' ? :"jdbc-sqlite" : :sqlite))
|
@@ -10,7 +12,7 @@ module ArelExtensions
|
|
10
12
|
@cnx = ActiveRecord::Base.connection
|
11
13
|
Arel::Table.engine = ActiveRecord::Base
|
12
14
|
@cnx.drop_table(:users) rescue nil
|
13
|
-
@cnx.drop_table(:products) rescue nil
|
15
|
+
@cnx.drop_table(:products) rescue nil
|
14
16
|
@cnx.create_table :users do |t|
|
15
17
|
t.column :age, :integer
|
16
18
|
t.column :name, :string
|
@@ -36,10 +38,11 @@ module ArelExtensions
|
|
36
38
|
it "should import large set of data" do
|
37
39
|
insert_manager = Arel::VERSION.to_i > 6 ? Arel::InsertManager.new().into(@table) : Arel::InsertManager.new(ActiveRecord::Base).into(@table)
|
38
40
|
insert_manager.bulk_insert(@cols, @data)
|
39
|
-
|
40
|
-
|
41
|
-
SELECT 23 AS 'id', 'nom1' AS 'name', 'sdfdsfdsfsdf' AS 'comments', '2016-01-01' AS 'created_at' UNION ALL SELECT 25, 'nom2', 'sdfdsfdsfsdf', '2016-01-01']
|
41
|
+
sql = insert_manager.to_sql
|
42
|
+
sql.must_be_like %Q[INSERT INTO "users" ("id", "name", "comments", "created_at") SELECT 23 AS 'id', 'nom1' AS 'name', 'sdfdsfdsfsdf' AS 'comments', '2016-01-01' AS 'created_at' UNION ALL SELECT 25, 'nom2', 'sdfdsfdsfsdf', '2016-01-01']
|
42
43
|
end
|
44
|
+
|
43
45
|
end
|
46
|
+
|
44
47
|
end
|
45
|
-
end
|
48
|
+
end
|
@@ -1,16 +1,18 @@
|
|
1
|
-
require '
|
1
|
+
require 'helper'
|
2
2
|
|
3
3
|
module ArelExtensions
|
4
4
|
module WthAr
|
5
|
+
|
5
6
|
describe 'the sqlite visitor can do maths' do
|
7
|
+
|
6
8
|
before do
|
7
9
|
ActiveRecord::Base.configurations = YAML.load_file('test/database.yml')
|
8
10
|
ActiveRecord::Base.establish_connection(ENV['DB'] || (RUBY_PLATFORM == 'java' ? :"jdbc-sqlite" : :sqlite))
|
9
11
|
ActiveRecord::Base.default_timezone = :utc
|
10
12
|
Arel::Table.engine = ActiveRecord::Base
|
11
13
|
@cnx = ActiveRecord::Base.connection
|
12
|
-
@cnx.drop_table(:users) rescue nil
|
13
|
-
@cnx.drop_table(:products) rescue nil
|
14
|
+
@cnx.drop_table(:users) rescue nil
|
15
|
+
@cnx.drop_table(:products) rescue nil
|
14
16
|
@cnx.create_table :users do |t|
|
15
17
|
t.column :age, :integer
|
16
18
|
t.column :name, :string
|
@@ -42,19 +44,21 @@ module ArelExtensions
|
|
42
44
|
end
|
43
45
|
|
44
46
|
it "should do maths" do
|
45
|
-
#
|
47
|
+
#ABS
|
46
48
|
assert_equal 20, User.where(:id => @neg.id).select(@age.abs.as("res")).first.res
|
47
49
|
assert_equal 14, User.where(:id => @laure.id).select((@age - 39).abs.as("res")).first.res
|
48
50
|
|
49
|
-
#
|
51
|
+
#CEIL # require extensions
|
50
52
|
|
51
53
|
# RAND
|
52
|
-
|
53
|
-
|
54
|
+
# puts User.where(@table[:score].eq(20.16)).order(Arel.rand).limit(50).to_sql if User.where(@table[:score].eq(20.16)).order(Arel.rand).limit(50).count == 0
|
55
|
+
# assert_equal 5, User.where(@table[:score].eq(20.16)).order(Arel.rand).limit(50).count
|
54
56
|
assert 42 != User.select(Arel.rand.as('res')).first.res
|
55
57
|
assert 0 <= User.select(Arel.rand.abs.as('res')).first.res
|
56
58
|
assert_equal 8, User.order(Arel.rand).limit(50).count
|
57
59
|
end
|
60
|
+
|
58
61
|
end
|
62
|
+
|
59
63
|
end
|
60
|
-
end
|
64
|
+
end
|
@@ -1,14 +1,16 @@
|
|
1
|
-
require '
|
1
|
+
require 'helper'
|
2
2
|
require 'date'
|
3
3
|
|
4
4
|
module ArelExtensions
|
5
5
|
module WthAr
|
6
|
+
|
6
7
|
describe 'the mysql visitor can do string operations' do
|
8
|
+
|
7
9
|
before do
|
8
10
|
ActiveRecord::Base.configurations = YAML.load_file('test/database.yml')
|
9
11
|
ActiveRecord::Base.establish_connection(ENV['DB'] || (RUBY_PLATFORM == 'java' ? :"jdbc-mysql" : :mysql))
|
10
12
|
ActiveRecord::Base.default_timezone = :utc
|
11
|
-
begin
|
13
|
+
begin
|
12
14
|
@cnx = ActiveRecord::Base.connection
|
13
15
|
rescue => e
|
14
16
|
puts "\n#{e.inspect}"
|
@@ -17,7 +19,7 @@ module ArelExtensions
|
|
17
19
|
end
|
18
20
|
Arel::Table.engine = ActiveRecord::Base
|
19
21
|
@cnx.drop_table(:users) rescue nil
|
20
|
-
@cnx.drop_table(:products) rescue nil
|
22
|
+
@cnx.drop_table(:products) rescue nil
|
21
23
|
@cnx.create_table :users do |t|
|
22
24
|
t.column :age, :integer
|
23
25
|
t.column :name, :string
|
@@ -57,7 +59,7 @@ module ArelExtensions
|
|
57
59
|
assert_equal "Sophie15", @sophie.select((User.arel_table[:name] + User.arel_table[:age]).as("res")).first.res
|
58
60
|
assert_equal "SophieSophie", @sophie.select((User.arel_table[:name] + User.arel_table[:name]).as("res")).first.res
|
59
61
|
assert_equal "Sophie2016-05-23", @sophie.select((User.arel_table[:name] + User.arel_table[:created_at]).as("res")).first.res
|
60
|
-
#
|
62
|
+
#concat Integer
|
61
63
|
assert_equal 1, User.where((User.arel_table[:age] + 10).eq(33)).count
|
62
64
|
assert_equal 1, User.where((User.arel_table[:age] + "1").eq(6)).count
|
63
65
|
assert_equal 1, User.where((User.arel_table[:age] + User.arel_table[:age]).eq(10)).count
|
@@ -65,7 +67,11 @@ module ArelExtensions
|
|
65
67
|
# Replace
|
66
68
|
assert_equal "LucaX", User.where(:id => @lucas).select(@name.replace("s","X").as("res")).first.res
|
67
69
|
assert_equal "replace", User.where(:id => @lucas).select(@name.replace(@name,"replace").as("res")).first.res
|
70
|
+
|
71
|
+
#
|
68
72
|
end
|
73
|
+
|
69
74
|
end
|
75
|
+
|
70
76
|
end
|
71
|
-
end
|
77
|
+
end
|
@@ -1,16 +1,18 @@
|
|
1
|
-
require '
|
1
|
+
require 'helper'
|
2
2
|
require 'date'
|
3
3
|
|
4
4
|
module ArelExtensions
|
5
5
|
module WthAr
|
6
|
+
|
6
7
|
describe 'the sqlite visitor can do string operations' do
|
8
|
+
|
7
9
|
before do
|
8
10
|
ActiveRecord::Base.configurations = YAML.load_file('test/database.yml')
|
9
11
|
ActiveRecord::Base.establish_connection(ENV['DB'] || (RUBY_PLATFORM == 'java' ? :"jdbc-sqlite" : :sqlite))
|
10
12
|
ActiveRecord::Base.default_timezone = :utc
|
11
13
|
@cnx = ActiveRecord::Base.connection
|
12
14
|
Arel::Table.engine = ActiveRecord::Base
|
13
|
-
@cnx.drop_table(:users) rescue nil
|
15
|
+
@cnx.drop_table(:users) rescue nil
|
14
16
|
@cnx.create_table :users do |t|
|
15
17
|
t.column :age, :integer
|
16
18
|
t.column :name, :string
|
@@ -50,15 +52,21 @@ module ArelExtensions
|
|
50
52
|
assert_equal "Sophie15", @sophie.select((User.arel_table[:name] + User.arel_table[:age]).as("res")).first.res
|
51
53
|
assert_equal "SophieSophie", @sophie.select((User.arel_table[:name] + User.arel_table[:name]).as("res")).first.res
|
52
54
|
assert_equal "Sophie2016-05-23", @sophie.select((User.arel_table[:name] + User.arel_table[:created_at]).as("res")).first.res
|
53
|
-
#
|
55
|
+
#concat Integer
|
54
56
|
assert_equal 1, User.where((User.arel_table[:age] + 10).eq(33)).count
|
55
57
|
assert_equal 1, User.where((User.arel_table[:age] + "1").eq(6)).count
|
56
58
|
assert_equal 1, User.where((User.arel_table[:age] + User.arel_table[:age]).eq(10)).count
|
57
59
|
|
60
|
+
|
61
|
+
|
58
62
|
# Replace
|
59
63
|
assert_equal "LucaX", User.where(:id => @lucas).select(@name.replace("s","X").as("res")).first.res
|
60
64
|
assert_equal "replace", User.where(:id => @lucas).select(@name.replace(@name,"replace").as("res")).first.res
|
65
|
+
|
66
|
+
#
|
61
67
|
end
|
68
|
+
|
62
69
|
end
|
70
|
+
|
63
71
|
end
|
64
|
-
end
|
72
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arel_extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0.rc3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yann Azoury
|
@@ -10,22 +10,22 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2019-08-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: activerecord
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 6.0.0.rc2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version:
|
28
|
+
version: 6.0.0.rc2
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: minitest
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -60,14 +60,14 @@ dependencies:
|
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
63
|
+
version: '11'
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
70
|
+
version: '11'
|
71
71
|
description: Adds new features to Arel
|
72
72
|
email:
|
73
73
|
- yann.azoury@faveod.com
|
@@ -81,7 +81,6 @@ extra_rdoc_files:
|
|
81
81
|
- functions.html
|
82
82
|
files:
|
83
83
|
- ".codeclimate.yml"
|
84
|
-
- ".github/workflows/ruby.yml"
|
85
84
|
- ".gitignore"
|
86
85
|
- ".rubocop.yml"
|
87
86
|
- ".travis.yml"
|
@@ -105,11 +104,6 @@ files:
|
|
105
104
|
- gemfiles/rails5_0.gemfile
|
106
105
|
- gemfiles/rails5_1_4.gemfile
|
107
106
|
- gemfiles/rails5_2.gemfile
|
108
|
-
- gemfiles/rails6.gemfile
|
109
|
-
- gemfiles/rails6_1.gemfile
|
110
|
-
- gemspecs/arel_extensions-v1.gemspec
|
111
|
-
- gemspecs/arel_extensions-v2.gemspec
|
112
|
-
- generate_gems.sh
|
113
107
|
- init/mssql.sql
|
114
108
|
- init/mysql.sql
|
115
109
|
- init/oracle.sql
|
@@ -126,7 +120,6 @@ files:
|
|
126
120
|
- lib/arel_extensions/math_functions.rb
|
127
121
|
- lib/arel_extensions/nodes.rb
|
128
122
|
- lib/arel_extensions/nodes/abs.rb
|
129
|
-
- lib/arel_extensions/nodes/aggregate_function.rb
|
130
123
|
- lib/arel_extensions/nodes/blank.rb
|
131
124
|
- lib/arel_extensions/nodes/case.rb
|
132
125
|
- lib/arel_extensions/nodes/cast.rb
|
@@ -158,7 +151,6 @@ files:
|
|
158
151
|
- lib/arel_extensions/nodes/soundex.rb
|
159
152
|
- lib/arel_extensions/nodes/std.rb
|
160
153
|
- lib/arel_extensions/nodes/substring.rb
|
161
|
-
- lib/arel_extensions/nodes/sum.rb
|
162
154
|
- lib/arel_extensions/nodes/then.rb
|
163
155
|
- lib/arel_extensions/nodes/trim.rb
|
164
156
|
- lib/arel_extensions/nodes/union.rb
|
@@ -172,7 +164,6 @@ files:
|
|
172
164
|
- lib/arel_extensions/tasks.rb
|
173
165
|
- lib/arel_extensions/version.rb
|
174
166
|
- lib/arel_extensions/visitors.rb
|
175
|
-
- lib/arel_extensions/visitors/convert_format.rb
|
176
167
|
- lib/arel_extensions/visitors/ibm_db.rb
|
177
168
|
- lib/arel_extensions/visitors/mssql.rb
|
178
169
|
- lib/arel_extensions/visitors/mysql.rb
|
@@ -181,8 +172,8 @@ files:
|
|
181
172
|
- lib/arel_extensions/visitors/postgresql.rb
|
182
173
|
- lib/arel_extensions/visitors/sqlite.rb
|
183
174
|
- lib/arel_extensions/visitors/to_sql.rb
|
184
|
-
- test/arelx_test_helper.rb
|
185
175
|
- test/database.yml
|
176
|
+
- test/helper.rb
|
186
177
|
- test/real_db_test.rb
|
187
178
|
- test/support/alter_system_user_password.sql
|
188
179
|
- test/support/create_oracle_enhanced_users.sql
|
@@ -199,8 +190,6 @@ files:
|
|
199
190
|
- test/with_ar/test_math_sqlite.rb
|
200
191
|
- test/with_ar/test_string_mysql.rb
|
201
192
|
- test/with_ar/test_string_sqlite.rb
|
202
|
-
- version_v1.rb
|
203
|
-
- version_v2.rb
|
204
193
|
homepage: https://github.com/Faveod/arel-extensions
|
205
194
|
licenses:
|
206
195
|
- MIT
|
@@ -218,11 +207,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
218
207
|
version: '0'
|
219
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
220
209
|
requirements:
|
221
|
-
- - "
|
210
|
+
- - ">"
|
222
211
|
- !ruby/object:Gem::Version
|
223
|
-
version:
|
212
|
+
version: 1.3.1
|
224
213
|
requirements: []
|
225
|
-
rubygems_version: 3.
|
214
|
+
rubygems_version: 3.0.2
|
226
215
|
signing_key:
|
227
216
|
specification_version: 4
|
228
217
|
summary: Extending Arel
|
data/.github/workflows/ruby.yml
DELETED
@@ -1,102 +0,0 @@
|
|
1
|
-
# This workflow uses actions that are not certified by GitHub.
|
2
|
-
# They are provided by a third-party and are governed by
|
3
|
-
# separate terms of service, privacy policy, and support
|
4
|
-
# documentation.
|
5
|
-
# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
|
6
|
-
# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
|
7
|
-
|
8
|
-
name: Ruby
|
9
|
-
|
10
|
-
on:
|
11
|
-
push:
|
12
|
-
branches: [ master ]
|
13
|
-
pull_request:
|
14
|
-
branches: [ master ]
|
15
|
-
|
16
|
-
jobs:
|
17
|
-
test:
|
18
|
-
|
19
|
-
runs-on: ubuntu-latest
|
20
|
-
|
21
|
-
services:
|
22
|
-
postgres:
|
23
|
-
image: postgres:11.6-alpine
|
24
|
-
env:
|
25
|
-
POSTGRES_DB: arext_test
|
26
|
-
ports:
|
27
|
-
- 5432:5432
|
28
|
-
# needed because the postgres container does not provide a healthcheck
|
29
|
-
options: >-
|
30
|
-
--health-cmd "pg_isready -d arext_test -U postgres -p 5432"
|
31
|
-
--health-interval 10s
|
32
|
-
--health-timeout 5s
|
33
|
-
--health-retries 5
|
34
|
-
mysql:
|
35
|
-
image: mysql:5.7
|
36
|
-
env:
|
37
|
-
MYSQL_ALLOW_EMPTY_PASSWORD: true
|
38
|
-
MYSQL_USERNAME: travis
|
39
|
-
MYSQL_DATABASE: arext_test
|
40
|
-
ports:
|
41
|
-
- 3306:3306
|
42
|
-
options: >-
|
43
|
-
--health-cmd="mysqladmin ping"
|
44
|
-
--health-interval=10s
|
45
|
-
--health-timeout=5s
|
46
|
-
--health-retries=3
|
47
|
-
|
48
|
-
strategy:
|
49
|
-
matrix:
|
50
|
-
ruby-version:
|
51
|
-
- 3.0.0-preview1
|
52
|
-
- 2.7
|
53
|
-
- 2.5
|
54
|
-
- 2.3
|
55
|
-
rails-version:
|
56
|
-
- 6_1
|
57
|
-
- 6
|
58
|
-
- 5_2
|
59
|
-
exclude:
|
60
|
-
- ruby-version: 2.3
|
61
|
-
rails-version: 6_1
|
62
|
-
- ruby-version: 2.3
|
63
|
-
rails-version: 6
|
64
|
-
- ruby-version: 3.0.0-preview1
|
65
|
-
rails-version: 5.2
|
66
|
-
continue-on-error: ${{ true }}
|
67
|
-
|
68
|
-
steps:
|
69
|
-
- uses: actions/checkout@v2
|
70
|
-
- name: Set up Ruby
|
71
|
-
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
72
|
-
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
73
|
-
# uses: ruby/setup-ruby@v1
|
74
|
-
uses: ruby/setup-ruby@21351ecc0a7c196081abca5dc55b08f085efe09a
|
75
|
-
with:
|
76
|
-
ruby-version: ${{ matrix.ruby-version }}
|
77
|
-
- name: Setup gemspec
|
78
|
-
if: ${{ matrix.rails-version == '6_1' || matrix.rails-version == '6' }}
|
79
|
-
run: cp ./gemspecs/arel_extensions-v2.gemspec ./arel_extensions.gemspec
|
80
|
-
- name: Install dependencies
|
81
|
-
run: |
|
82
|
-
export BUNDLE_GEMFILE=gemfiles/rails${{ matrix.rails-version }}.gemfile
|
83
|
-
bundle install
|
84
|
-
- name: Run test to_sql
|
85
|
-
run: rake test:to_sql
|
86
|
-
- name: Run test Postgres
|
87
|
-
env:
|
88
|
-
PGHOST: localhost
|
89
|
-
PGUSER: postgres
|
90
|
-
run: rake test:postgresql
|
91
|
-
- name: Run test MySql
|
92
|
-
env:
|
93
|
-
DB_CONNECTION: mysql
|
94
|
-
DB_HOST: 127.0.0.1
|
95
|
-
DB_PORT: 3306
|
96
|
-
DB_DATABASE: arext_test
|
97
|
-
DB_USERNAME: travis
|
98
|
-
run: |
|
99
|
-
sudo apt-get install -y mysql-client
|
100
|
-
mysql --host 127.0.0.1 --port 3306 -uroot -e 'create user travis;'
|
101
|
-
mysql --host 127.0.0.1 --port 3306 -uroot -e 'GRANT ALL PRIVILEGES ON arext_test.* TO travis;'
|
102
|
-
rake test:mysql
|
data/gemfiles/rails6.gemfile
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
source "https://rubygems.org"
|
2
|
-
|
3
|
-
gem 'rails', '~> 6.0.0'
|
4
|
-
|
5
|
-
|
6
|
-
group :development, :test do
|
7
|
-
gem 'activesupport', '~> 6.0.0'
|
8
|
-
gem 'activemodel', '~> 6.0.0'
|
9
|
-
gem 'activerecord', '~> 6.0.0'
|
10
|
-
|
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
|
-
|
15
|
-
#gem "tiny_tds", platforms: [:mri, :mingw] if RUBY_PLATFORM =~ /windows/
|
16
|
-
#gem "activerecord-sqlserver-adapter", platforms: [:mri, :mingw]
|
17
|
-
|
18
|
-
gem 'ruby-oci8', platforms: [:mri, :mswin, :mingw] if ENV.has_key? 'ORACLE_HOME'
|
19
|
-
gem 'activerecord-oracle_enhanced-adapter', '~> 6.0.0' if ENV.has_key? 'ORACLE_HOME'
|
20
|
-
|
21
|
-
# for JRuby
|
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
|
-
end
|
29
|
-
|
30
|
-
gemspec path: "../"
|