arel_extensions 1.2.5 → 1.2.15
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 +7 -4
- data/.travis.yml +54 -86
- data/README.md +7 -2
- data/Rakefile +38 -27
- data/arel_extensions.gemspec +1 -1
- data/functions.html +2 -2
- data/gemfiles/rails4.gemfile +1 -1
- data/gemfiles/rails6.gemfile +30 -0
- data/gemspec_v2/arel_extensions-v2.gemspec +28 -0
- data/generate_gems.sh +14 -0
- data/lib/arel_extensions.rb +49 -21
- data/lib/arel_extensions/attributes.rb +0 -1
- data/lib/arel_extensions/boolean_functions.rb +38 -13
- data/lib/arel_extensions/common_sql_functions.rb +5 -4
- data/lib/arel_extensions/insert_manager.rb +26 -24
- data/lib/arel_extensions/math.rb +3 -3
- data/lib/arel_extensions/math_functions.rb +4 -4
- data/lib/arel_extensions/nodes/abs.rb +0 -0
- data/lib/arel_extensions/nodes/case.rb +8 -4
- data/lib/arel_extensions/nodes/ceil.rb +0 -0
- data/lib/arel_extensions/nodes/coalesce.rb +0 -0
- data/lib/arel_extensions/nodes/collate.rb +1 -1
- data/lib/arel_extensions/nodes/concat.rb +0 -0
- data/lib/arel_extensions/nodes/date_diff.rb +1 -3
- data/lib/arel_extensions/nodes/duration.rb +0 -2
- 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/formatted_number.rb +20 -20
- data/lib/arel_extensions/nodes/function.rb +0 -0
- data/lib/arel_extensions/nodes/is_null.rb +0 -0
- data/lib/arel_extensions/nodes/json.rb +43 -30
- data/lib/arel_extensions/nodes/length.rb +0 -0
- data/lib/arel_extensions/nodes/locate.rb +0 -0
- data/lib/arel_extensions/nodes/power.rb +5 -4
- data/lib/arel_extensions/nodes/rand.rb +0 -0
- data/lib/arel_extensions/nodes/replace.rb +23 -5
- data/lib/arel_extensions/nodes/round.rb +5 -5
- data/lib/arel_extensions/nodes/soundex.rb +14 -13
- data/lib/arel_extensions/nodes/substring.rb +8 -15
- data/lib/arel_extensions/nodes/trim.rb +1 -1
- data/lib/arel_extensions/nodes/union.rb +0 -1
- data/lib/arel_extensions/nodes/union_all.rb +0 -1
- data/lib/arel_extensions/nodes/wday.rb +0 -0
- data/lib/arel_extensions/predications.rb +35 -33
- data/lib/arel_extensions/set_functions.rb +2 -2
- data/lib/arel_extensions/string_functions.rb +25 -6
- data/lib/arel_extensions/tasks.rb +5 -5
- data/lib/arel_extensions/version.rb +1 -1
- data/lib/arel_extensions/visitors.rb +1 -1
- data/lib/arel_extensions/visitors/ibm_db.rb +1 -1
- data/lib/arel_extensions/visitors/mssql.rb +13 -12
- data/lib/arel_extensions/visitors/mysql.rb +67 -37
- data/lib/arel_extensions/visitors/oracle.rb +14 -14
- data/lib/arel_extensions/visitors/oracle12.rb +1 -1
- data/lib/arel_extensions/visitors/postgresql.rb +46 -28
- data/lib/arel_extensions/visitors/sqlite.rb +52 -44
- data/lib/arel_extensions/visitors/to_sql.rb +73 -59
- data/test/arelx_test_helper.rb +28 -0
- data/test/support/fake_record.rb +4 -0
- data/test/test_comparators.rb +8 -7
- data/test/visitors/test_bulk_insert_oracle.rb +8 -7
- data/test/visitors/test_bulk_insert_sqlite.rb +8 -7
- data/test/visitors/test_bulk_insert_to_sql.rb +3 -3
- data/test/visitors/test_oracle.rb +41 -41
- data/test/visitors/test_to_sql.rb +367 -199
- data/test/with_ar/all_agnostic_test.rb +63 -41
- data/test/with_ar/insert_agnostic_test.rb +1 -1
- data/test/with_ar/test_bulk_sqlite.rb +5 -4
- data/test/with_ar/test_math_sqlite.rb +2 -2
- data/test/with_ar/test_string_mysql.rb +2 -4
- data/test/with_ar/test_string_sqlite.rb +2 -6
- data/version_v1.rb +3 -0
- data/version_v2.rb +3 -0
- metadata +10 -5
- data/test/helper.rb +0 -18
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'arelx_test_helper'
|
2
2
|
require 'date'
|
3
3
|
|
4
4
|
module ArelExtensions
|
@@ -68,7 +68,8 @@ module ArelExtensions
|
|
68
68
|
@test = User.where(:id => u.id)
|
69
69
|
u = User.create :age => -42, :name => "Negatif", :comments => '1,22,3,42,2', :created_at => d, :updated_at => d.to_time, :score => 0.17
|
70
70
|
@neg = User.where(:id => u.id)
|
71
|
-
|
71
|
+
u = User.create :age => 15, :name => "Justin", :created_at => d, :score => 11.0
|
72
|
+
@justin = User.where(:id => u.id)
|
72
73
|
|
73
74
|
@age = User.arel_table[:age]
|
74
75
|
@name = User.arel_table[:name]
|
@@ -121,6 +122,7 @@ module ArelExtensions
|
|
121
122
|
assert_equal(-20, t(@camille, @score.ceil)) # -20.16
|
122
123
|
assert_equal(-20, t(@camille, (@score - 0.5).ceil)) # -20.16
|
123
124
|
assert_equal 63, t(@arthur, @age.ceil + 42)
|
125
|
+
assert_equal 11, t(@justin, @score.ceil) # 11.0
|
124
126
|
end
|
125
127
|
|
126
128
|
def test_floor
|
@@ -129,12 +131,14 @@ module ArelExtensions
|
|
129
131
|
assert_equal 1, t(@test, @score.floor) # 1.62
|
130
132
|
assert_equal(-9, t(@test, (@score - 10).floor)) # 1.62
|
131
133
|
assert_equal 42, t(@arthur, @score.floor - 23)
|
134
|
+
assert_equal 11, t(@justin, @score.floor) # 11.0
|
135
|
+
assert_equal(-21, t(@camille, @score.floor)) # # -20.16
|
132
136
|
end
|
133
137
|
|
134
138
|
def test_rand
|
135
139
|
assert 42 != User.select(Arel.rand.as('res')).first.res
|
136
140
|
assert 0 <= User.select(Arel.rand.abs.as('res')).first.res
|
137
|
-
assert_equal
|
141
|
+
assert_equal 9, User.order(Arel.rand).limit(50).count
|
138
142
|
end
|
139
143
|
|
140
144
|
def test_round
|
@@ -147,15 +151,15 @@ module ArelExtensions
|
|
147
151
|
def test_sum
|
148
152
|
if @env_db == 'mssql'
|
149
153
|
skip "SQL Server forces order?" # TODO
|
150
|
-
assert_equal
|
151
|
-
assert_equal
|
152
|
-
assert_equal
|
153
|
-
assert_equal
|
154
|
+
assert_equal 83, User.select((@age.sum + 1).as("res"), User.arel_table[:id].sum).take(50).reorder(@age).first.res
|
155
|
+
assert_equal 164, User.reorder(nil).select((@age.sum + @age.sum).as("res"), User.arel_table[:id].sum).take(50).first.res
|
156
|
+
assert_equal 246, User.reorder(nil).select(((@age * 3).sum).as("res"), User.arel_table[:id].sum).take(50).first.res
|
157
|
+
assert_equal 4234, User.reorder(nil).select(((@age * @age).sum).as("res"), User.arel_table[:id].sum).take(50).first.res
|
154
158
|
else
|
155
|
-
assert_equal
|
156
|
-
assert_equal
|
157
|
-
assert_equal
|
158
|
-
assert_equal
|
159
|
+
assert_equal 83, User.select((@age.sum + 1).as("res")).take(50).first.res
|
160
|
+
assert_equal 164, User.select((@age.sum + @age.sum).as("res")).take(50).first.res
|
161
|
+
assert_equal 246, User.select((@age * 3).sum.as("res")).take(50).first.res
|
162
|
+
assert_equal 4234, User.select(((@age * @age).sum).as("res")).take(50).first.res
|
159
163
|
end
|
160
164
|
end
|
161
165
|
|
@@ -268,21 +272,28 @@ module ArelExtensions
|
|
268
272
|
skip "Sqlite version can't load extension for regexp" if $sqlite && $load_extension_disabled
|
269
273
|
skip "SQL Server does not know about REGEXP without extensions" if @env_db == 'mssql'
|
270
274
|
assert_equal 1, User.where(@name =~ '^M').count
|
271
|
-
assert_equal
|
275
|
+
assert_equal 7, User.where(@name !~ '^L').count
|
272
276
|
assert_equal 1, User.where(@name =~ /^M/).count
|
273
|
-
assert_equal
|
277
|
+
assert_equal 7, User.where(@name !~ /^L/).count
|
274
278
|
end
|
275
279
|
|
276
280
|
def test_imatches
|
277
281
|
#puts User.where(@name.imatches('m%')).to_sql
|
278
282
|
assert_equal 1, User.where(@name.imatches('m%')).count
|
279
283
|
assert_equal 4, User.where(@name.imatches_any(['L%', '%e'])).count
|
280
|
-
assert_equal
|
284
|
+
assert_equal 7, User.where(@name.idoes_not_match('L%')).count
|
281
285
|
end
|
282
286
|
|
283
287
|
def test_replace
|
284
288
|
assert_equal "LucaX", t(@lucas, @name.replace("s", "X"))
|
285
289
|
assert_equal "replace", t(@lucas, @name.replace(@name, "replace"))
|
290
|
+
|
291
|
+
skip "Sqlite does not seem to support regexp_replace" if $sqlite
|
292
|
+
skip "SQL Server does not know about REGEXP without extensions" if @env_db == 'mssql'
|
293
|
+
skip "Travis mysql version does not support REGEXP_REPLACE" if @env_db == 'mysql'
|
294
|
+
assert_equal "LXcXs", t(@lucas, @name.replace(/[ua]/, "X"))
|
295
|
+
assert_equal "LXcXs", t(@lucas, @name.regexp_replace(/[ua]/, "X"))
|
296
|
+
assert_equal "LXcXs", t(@lucas, @name.regexp_replace('[ua]', "X"))
|
286
297
|
end
|
287
298
|
|
288
299
|
def test_replace_once
|
@@ -295,8 +306,8 @@ module ArelExtensions
|
|
295
306
|
skip "Sqlite version can't load extension for soundex" if $sqlite && $load_extension_disabled
|
296
307
|
skip "PostgreSql version can't load extension for soundex" if @env_db == 'postgresql'
|
297
308
|
assert_equal "C540", t(@camille, @name.soundex)
|
298
|
-
assert_equal
|
299
|
-
assert_equal
|
309
|
+
assert_equal 9, User.where(@name.soundex.eq(@name.soundex)).count
|
310
|
+
assert_equal 9 , User.where(@name.soundex == @name.soundex).count
|
300
311
|
end
|
301
312
|
|
302
313
|
def test_change_case
|
@@ -375,13 +386,13 @@ module ArelExtensions
|
|
375
386
|
assert_equal 2, User.where(@age <= 10).count
|
376
387
|
assert_equal 3, User.where(@age > 20).count
|
377
388
|
assert_equal 4, User.where(@age >= 20).count
|
378
|
-
assert_equal
|
389
|
+
assert_equal 2, User.where(@age > 5).where(@age < 20).count
|
379
390
|
end
|
380
391
|
|
381
392
|
def test_date_comparator
|
382
393
|
d = Date.new(2016, 5, 23)
|
383
394
|
assert_equal 0, User.where(@created_at < d).count
|
384
|
-
assert_equal
|
395
|
+
assert_equal 9, User.where(@created_at >= d).count
|
385
396
|
end
|
386
397
|
|
387
398
|
def test_date_duration
|
@@ -390,10 +401,10 @@ module ArelExtensions
|
|
390
401
|
assert_equal 0, User.where(@created_at.year.eq("2012")).count
|
391
402
|
#Month
|
392
403
|
assert_equal 5, t(@camille, @created_at.month).to_i
|
393
|
-
assert_equal
|
404
|
+
assert_equal 9, User.where(@created_at.month.eq("05")).count
|
394
405
|
#Week
|
395
406
|
assert_equal(@env_db == 'mssql' ? 22 : 21, t(@arthur, @created_at.week).to_i)
|
396
|
-
assert_equal
|
407
|
+
assert_equal 9, User.where(@created_at.month.eq("05")).count
|
397
408
|
#Day
|
398
409
|
assert_equal 23, t(@laure, @created_at.day).to_i
|
399
410
|
assert_equal 0, User.where(@created_at.day.eq("05")).count
|
@@ -425,6 +436,7 @@ module ArelExtensions
|
|
425
436
|
end
|
426
437
|
end
|
427
438
|
|
439
|
+
|
428
440
|
skip "not yet implemented" if $sqlite
|
429
441
|
|
430
442
|
date1 = Date.new(2016, 5, 23)
|
@@ -468,15 +480,17 @@ module ArelExtensions
|
|
468
480
|
# TODO; cast types
|
469
481
|
def test_cast_types
|
470
482
|
assert_equal "5", t(@lucas, @age.cast(:string))
|
483
|
+
skip "jdbc adapters does not work properly here (v52 works fine)" if RUBY_PLATFORM =~ /java/i
|
471
484
|
if @env_db == 'mysql' || @env_db == 'postgresql' || @env_db == 'oracle' || @env_db == 'mssql'
|
472
|
-
assert_equal 1, t(@laure,
|
473
|
-
assert_equal 1, t(@laure,
|
485
|
+
assert_equal 1, t(@laure,Arel.when(@duration.cast(:time).cast(:string).eq("12:42:21")).then(1).else(0)) unless @env_db == 'oracle' || @env_db == 'mssql'
|
486
|
+
assert_equal 1, t(@laure,Arel.when(@duration.cast(:time).eq("12:42:21")).then(1).else(0)) unless @env_db == 'oracle'
|
474
487
|
assert_equal "20.16", t(@laure,@score.cast(:string)).gsub(/[0]*\z/,'')
|
475
488
|
assert_equal "20.161", t(@laure,@score.cast(:string)+1).gsub(/[0]*1\z/,'1')
|
476
489
|
assert_equal 21.16, t(@laure,@score.cast(:string).cast(:decimal)+1)
|
477
490
|
assert_equal 21, t(@laure,@score.cast(:string).cast(:int)+1)
|
478
491
|
|
479
492
|
assert_equal String, t(@lucas,@updated_at.cast(:string)).class
|
493
|
+
|
480
494
|
assert_equal Date, t(@lucas,@updated_at.cast(:date)).class unless @env_db == 'oracle' # DateTime
|
481
495
|
assert_equal Time, t(@lucas,@updated_at.cast(:string).cast(:datetime)).class
|
482
496
|
assert_equal Time, t(@lucas,@updated_at.cast(:time)).class
|
@@ -526,7 +540,7 @@ module ArelExtensions
|
|
526
540
|
def test_math_minus
|
527
541
|
d = Date.new(2016, 5, 20)
|
528
542
|
#Datediff
|
529
|
-
assert_equal
|
543
|
+
assert_equal 9, User.where((@created_at - @created_at).eq(0)).count
|
530
544
|
assert_equal 3, @laure.select((@created_at - d).as("res")).first.res.abs.to_i
|
531
545
|
#Substraction
|
532
546
|
assert_equal 0, User.where((@age - 10).eq(50)).count
|
@@ -567,6 +581,7 @@ module ArelExtensions
|
|
567
581
|
# Case clause
|
568
582
|
def test_case
|
569
583
|
assert_equal 4, User.find_by_sql(@ut.project(@score.when(20.16).then(1).else(0).as('score_bin')).to_sql).sum(&:score_bin)
|
584
|
+
assert_equal 4, User.where(@score.when(20.16).then(1).else(0).eq(1)).count
|
570
585
|
assert_equal 2, t(@arthur, @score.when(65.62,1).else(0)+1)
|
571
586
|
assert_equal 0, t(@arthur, @score.when(65.62,1).else(0)-1)
|
572
587
|
assert_equal "11", t(@arthur, @score.when(65.62).then("1").else("0")+"1")
|
@@ -644,8 +659,8 @@ module ArelExtensions
|
|
644
659
|
end
|
645
660
|
|
646
661
|
def test_subquery_with_order
|
647
|
-
assert_equal
|
648
|
-
assert_equal
|
662
|
+
assert_equal 9, User.where(:name => User.select(:name).order(:name)).count
|
663
|
+
assert_equal 9, User.where(@ut[:name].in(@ut.project(@ut[:name]).order(@ut[:name]))).count
|
649
664
|
if !['mysql'].include?(@env_db) # MySql can't have limit in IN subquery
|
650
665
|
assert_equal 2, User.where(:name => User.select(:name).order(:name).limit(2)).count
|
651
666
|
#assert_equal 6, User.where(:name => User.select(:name).order(:name).offset(2)).count
|
@@ -713,6 +728,13 @@ module ArelExtensions
|
|
713
728
|
#assert_equal true , @test.where(@age.not_in([nil,1,2])).blank?
|
714
729
|
end
|
715
730
|
|
731
|
+
def test_in_on_grouping
|
732
|
+
skip "We should modify the visitor of IN to make it work" if $sqlite || @env_db == 'mssql'
|
733
|
+
assert_equal 2 , User.where(Arel.tuple(@name,@age).in(Arel.tuple('Myung',23),Arel.tuple('Arthur',21))).count
|
734
|
+
assert_equal 1 , User.where(Arel.tuple(@name,@age).in(Arel.tuple('Myung',23))).count
|
735
|
+
assert_equal 0 , User.where(Arel.tuple(@name,@age).in([])).count
|
736
|
+
end
|
737
|
+
|
716
738
|
def test_alias_shortened
|
717
739
|
if ['postgresql','oracle'].include?(@env_db)
|
718
740
|
new_alias = Arel.shorten('azerty' * 15)
|
@@ -727,21 +749,21 @@ module ArelExtensions
|
|
727
749
|
def test_stat_functions
|
728
750
|
skip "SQLite doesn't work for most on this functions" if $sqlite
|
729
751
|
#puts t(User.where(nil), @score.average)
|
730
|
-
#puts t(User.where(nil), @score.variance(true))
|
731
|
-
#puts t(User.where(nil), @score.variance(false))
|
732
|
-
#puts t(User.where(nil), @score.std(true))
|
733
|
-
#puts t(User.where(nil), @score.std(false))
|
734
|
-
|
735
|
-
assert ( 15.
|
736
|
-
assert (
|
737
|
-
assert (
|
738
|
-
assert (
|
739
|
-
assert (
|
740
|
-
skip "Not Yet Implemented" if !['postgresql'].include?(@env_db)
|
741
|
-
assert_equal 2, User.select(@score.std(group: Arel.when(@name > "M").then(0).else(1)).as('res')).map
|
742
|
-
assert_equal 2, User.select(@score.variance(group: Arel.when(@name > "M").then(0).else(1)).as('res')).map
|
743
|
-
assert_equal 2, User.select(@score.sum(group: Arel.when(@name > "M").then(0).else(1)).as('res')).map
|
744
|
-
assert_equal 2, User.select(@comments.group_concat(group: Arel.when(@name > "M").then(0).else(1)).as('res')).map
|
752
|
+
#puts t(User.where(nil), @score.variance(unbiased: true))
|
753
|
+
#puts t(User.where(nil), @score.variance(unbiased: false))
|
754
|
+
#puts t(User.where(nil), @score.std(unbiased: true))
|
755
|
+
#puts t(User.where(nil), @score.std(unbiased: false))
|
756
|
+
|
757
|
+
assert ( 15.43222 - t(User.where(nil), @score.average)).abs < 0.01
|
758
|
+
assert (539.79804 - t(User.where(nil), @score.variance)).abs < 0.01
|
759
|
+
assert (479.82048 - t(User.where(nil), @score.variance(unbiased: false))).abs < 0.01
|
760
|
+
assert ( 23.23355 - t(User.where(nil), @score.std)).abs < 0.01
|
761
|
+
assert ( 21.90480 - t(User.where(nil), @score.std(unbiased: false))).abs < 0.01
|
762
|
+
skip "Not Yet Implemented" #if !['postgresql'].include?(@env_db)
|
763
|
+
assert_equal 2, User.select(@score.std(group: Arel.when(@name > "M").then(0).else(1)).as('res')).map{|e| e['res']}.uniq.length
|
764
|
+
assert_equal 2, User.select(@score.variance(group: Arel.when(@name > "M").then(0).else(1)).as('res')).map{|e|e['res']}.uniq.length
|
765
|
+
assert_equal 2, User.select(@score.sum(group: Arel.when(@name > "M").then(0).else(1)).as('res')).map{|e|e['res']}.uniq.length
|
766
|
+
assert_equal 2, User.select(@comments.group_concat(group: Arel.when(@name > "M").then(0).else(1)).as('res')).map{|e|e['res']}.uniq.length
|
745
767
|
end
|
746
768
|
|
747
769
|
def test_levenshtein_distance
|
@@ -798,7 +820,7 @@ module ArelExtensions
|
|
798
820
|
end
|
799
821
|
|
800
822
|
def test_exists_in_subquery
|
801
|
-
assert User.where(User.where(nil).exists).first
|
823
|
+
assert User.where(User.where(nil).arel.exists).first
|
802
824
|
end
|
803
825
|
|
804
826
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'arelx_test_helper'
|
2
2
|
|
3
3
|
module ArelExtensions
|
4
4
|
module WthAr
|
@@ -38,11 +38,12 @@ module ArelExtensions
|
|
38
38
|
it "should import large set of data" do
|
39
39
|
insert_manager = Arel::VERSION.to_i > 6 ? Arel::InsertManager.new().into(@table) : Arel::InsertManager.new(ActiveRecord::Base).into(@table)
|
40
40
|
insert_manager.bulk_insert(@cols, @data)
|
41
|
-
|
42
|
-
|
41
|
+
_(insert_manager.to_sql)
|
42
|
+
.must_be_like %Q[INSERT INTO "users" ("id", "name", "comments", "created_at")
|
43
|
+
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']
|
43
44
|
end
|
44
45
|
|
45
46
|
end
|
46
47
|
|
47
48
|
end
|
48
|
-
end
|
49
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'arelx_test_helper'
|
2
2
|
require 'date'
|
3
3
|
|
4
4
|
module ArelExtensions
|
@@ -67,11 +67,9 @@ module ArelExtensions
|
|
67
67
|
# Replace
|
68
68
|
assert_equal "LucaX", User.where(:id => @lucas).select(@name.replace("s","X").as("res")).first.res
|
69
69
|
assert_equal "replace", User.where(:id => @lucas).select(@name.replace(@name,"replace").as("res")).first.res
|
70
|
-
|
71
|
-
#
|
72
70
|
end
|
73
71
|
|
74
72
|
end
|
75
73
|
|
76
74
|
end
|
77
|
-
end
|
75
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'arelx_test_helper'
|
2
2
|
require 'date'
|
3
3
|
|
4
4
|
module ArelExtensions
|
@@ -57,16 +57,12 @@ module ArelExtensions
|
|
57
57
|
assert_equal 1, User.where((User.arel_table[:age] + "1").eq(6)).count
|
58
58
|
assert_equal 1, User.where((User.arel_table[:age] + User.arel_table[:age]).eq(10)).count
|
59
59
|
|
60
|
-
|
61
|
-
|
62
60
|
# Replace
|
63
61
|
assert_equal "LucaX", User.where(:id => @lucas).select(@name.replace("s","X").as("res")).first.res
|
64
62
|
assert_equal "replace", User.where(:id => @lucas).select(@name.replace(@name,"replace").as("res")).first.res
|
65
|
-
|
66
|
-
#
|
67
63
|
end
|
68
64
|
|
69
65
|
end
|
70
66
|
|
71
67
|
end
|
72
|
-
end
|
68
|
+
end
|
data/version_v1.rb
ADDED
data/version_v2.rb
ADDED
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: 1.2.
|
4
|
+
version: 1.2.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yann Azoury
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2020-09-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: arel
|
@@ -60,14 +60,14 @@ dependencies:
|
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
63
|
+
version: 12.3.3
|
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: 12.3.3
|
71
71
|
description: Adds new features to Arel
|
72
72
|
email:
|
73
73
|
- yann.azoury@faveod.com
|
@@ -104,6 +104,9 @@ files:
|
|
104
104
|
- gemfiles/rails5_0.gemfile
|
105
105
|
- gemfiles/rails5_1_4.gemfile
|
106
106
|
- gemfiles/rails5_2.gemfile
|
107
|
+
- gemfiles/rails6.gemfile
|
108
|
+
- gemspec_v2/arel_extensions-v2.gemspec
|
109
|
+
- generate_gems.sh
|
107
110
|
- init/mssql.sql
|
108
111
|
- init/mysql.sql
|
109
112
|
- init/oracle.sql
|
@@ -174,8 +177,8 @@ files:
|
|
174
177
|
- lib/arel_extensions/visitors/postgresql.rb
|
175
178
|
- lib/arel_extensions/visitors/sqlite.rb
|
176
179
|
- lib/arel_extensions/visitors/to_sql.rb
|
180
|
+
- test/arelx_test_helper.rb
|
177
181
|
- test/database.yml
|
178
|
-
- test/helper.rb
|
179
182
|
- test/real_db_test.rb
|
180
183
|
- test/support/alter_system_user_password.sql
|
181
184
|
- test/support/create_oracle_enhanced_users.sql
|
@@ -192,6 +195,8 @@ files:
|
|
192
195
|
- test/with_ar/test_math_sqlite.rb
|
193
196
|
- test/with_ar/test_string_mysql.rb
|
194
197
|
- test/with_ar/test_string_sqlite.rb
|
198
|
+
- version_v1.rb
|
199
|
+
- version_v2.rb
|
195
200
|
homepage: https://github.com/Faveod/arel-extensions
|
196
201
|
licenses:
|
197
202
|
- MIT
|
data/test/helper.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'minitest/autorun'
|
3
|
-
require 'fileutils'
|
4
|
-
require 'arel'
|
5
|
-
require 'active_record'
|
6
|
-
|
7
|
-
require 'arel_extensions'
|
8
|
-
|
9
|
-
require 'support/fake_record'
|
10
|
-
Arel::Table.engine = FakeRecord::Base.new
|
11
|
-
|
12
|
-
$arel_silence_type_casting_deprecation = true
|
13
|
-
|
14
|
-
class Object
|
15
|
-
def must_be_like other
|
16
|
-
gsub(/\s+/, ' ').strip.must_equal other.gsub(/\s+/, ' ').strip
|
17
|
-
end
|
18
|
-
end
|