arel_extensions 0.8.2 → 0.8.3

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.
@@ -2,46 +2,6 @@ module ArelExtensions
2
2
  module Visitors
3
3
  Arel::Visitors::PostgreSQL.class_eval do
4
4
 
5
- def visit_ArelExtensions_Nodes_Concat o, collector
6
- arg = o.left.relation.engine.columns.find{|c| c.name == o.left.name.to_s}.type
7
- collector = visit o.left, collector
8
- if(o.right.is_a?(Arel::Attributes::Attribute))
9
- collector << '||'
10
- collector = visit o.right, collector
11
- elsif ( arg == :date || arg == :datetime)
12
- collector << " + INTERVAL '#{o.right} day'"
13
- collector
14
- else
15
- collector << " ||'"
16
- collector << "#{o.right}'"
17
- end
18
- collector
19
- end
20
-
21
-
22
- def visit_ArelExtensions_Nodes_Coalesce o, collector
23
- collector << "COALESCE("
24
- if(o.left.is_a?(Arel::Attributes::Attribute))
25
- collector = visit o.left, collector
26
- else
27
- collector << "#{o.left}"
28
- end
29
- o.other.each { |a|
30
- collector << ","
31
- if(a.is_a?(Arel::Attributes::Attribute))
32
- collector = visit a, collector
33
- else
34
- if(a.is_a?(Integer))
35
- collector << "#{a}"
36
- else
37
- collector << "'#{a}'"
38
- end
39
- end
40
- }
41
- collector << ")"
42
- collector
43
- end
44
-
45
5
  def visit_ArelExtensions_Nodes_DateDiff o, collector
46
6
 
47
7
  collector = visit o.left, collector
@@ -55,89 +15,65 @@ module ArelExtensions
55
15
  end
56
16
 
57
17
 
58
- def visit_ArelExtensions_Nodes_Duration o, collector
59
- #visit left for period
60
- if(o.left == "d")
61
- collector << "EXTRACT(DAY FROM"
62
- elsif(o.left == "m")
63
- collector << "EXTRACT(MONTH FROM "
64
- elsif (o.left == "w")
65
- collector << "EXTRACT(WEEK FROM"
66
- elsif (o.left == "y")
67
- collector << "EXTRACT(YEAR FROM"
68
- end
69
- #visit right
70
- if(o.right.is_a?(Arel::Attributes::Attribute))
71
- collector = visit o.right, collector
72
- else
73
- collector << "'#{o.right}'"
18
+ def visit_ArelExtensions_Nodes_Duration o, collector
19
+ #visit left for period
20
+ if o.left == "d"
21
+ collector << "EXTRACT(DAY FROM"
22
+ elsif o.left == "m"
23
+ collector << "EXTRACT(MONTH FROM "
24
+ elsif (o.left == "w")
25
+ collector << "EXTRACT(WEEK FROM"
26
+ elsif (o.left == "y")
27
+ collector << "EXTRACT(YEAR FROM"
28
+ end
29
+ #visit right
30
+ if(o.right.is_a?(Arel::Attributes::Attribute))
31
+ collector = visit o.right, collector
32
+ else
33
+ collector << o.right
34
+ end
35
+ collector << ")"
36
+ collector
74
37
  end
75
- collector << ")"
76
- collector
77
- end
78
-
79
-
80
- def visit_ArelExtensions_Nodes_Findis o, collector
81
-
82
- end
83
38
 
84
- def visit_ArelExtensions_Nodes_Floor o, collector
85
- collector << "FLOOR("
86
- if((o.expr).is_a?(Arel::Attributes::Attribute))
87
- collector = visit o.expr, collector
88
- end
89
- collector << ")"
90
- collector
91
- end
92
-
93
-
94
- def visit_ArelExtensions_Nodes_Length o, collector
95
- collector << "LENGTH("
96
- collector = visit o.expr, collector
97
- collector << ")"
98
- collector
99
- end
100
-
101
-
102
- def visit_ArelExtensions_Nodes_Locate o, collector
103
- collector << "position("
104
- if(o.val.is_a?(Arel::Attributes::Attribute))
105
- collector = visit o.val, collector
106
- else
107
- collector << "'#{o.val}'"
39
+ def visit_ArelExtensions_Nodes_Locate o, collector
40
+ collector << "position("
41
+ if(o.val.is_a?(Arel::Attributes::Attribute))
42
+ collector = visit o.val, collector
43
+ else
44
+ collector << "'#{o.val}'"
45
+ end
46
+ collector << " IN "
47
+ collector = visit o.expr, collector
48
+ collector << ")"
49
+ collector
108
50
  end
109
- collector << " IN "
110
- collector = visit o.expr, collector
111
- collector << ")"
112
- collector
113
- end
114
51
 
115
- def visit_ArelExtensions_Nodes_Isnull o, collector
116
- collector << "coalesce("
117
- collector = visit o.left, collector
118
- collector << ","
119
- if(o.right.is_a?(Arel::Attributes::Attribute))
120
- collector = visit o.right, collector
121
- else
122
- collector << "'#{o.right}'"
52
+ def visit_ArelExtensions_Nodes_Isnull o, collector
53
+ collector << "coalesce("
54
+ collector = visit o.left, collector
55
+ collector << ","
56
+ if(o.right.is_a?(Arel::Attributes::Attribute))
57
+ collector = visit o.right, collector
58
+ else
59
+ collector << "'#{o.right}'"
60
+ end
61
+ collector << ")"
62
+ collector
123
63
  end
124
- collector << ")"
125
- collector
126
- end
127
-
128
64
 
129
- def visit_ArelExtensions_Nodes_Rand o, collector
130
- collector << "random("
131
- if(o.left != nil && o.right != nil)
132
- collector << "'#{o.left}'"
133
- collector << ","
134
- collector << "'#{o.right}'"
135
- end
136
- collector << ")"
137
- collector
138
- end
65
+ def visit_ArelExtensions_Nodes_Rand o, collector
66
+ collector << "random("
67
+ if(o.left != nil && o.right != nil)
68
+ collector << "'#{o.left}'"
69
+ collector << ","
70
+ collector << "'#{o.right}'"
71
+ end
72
+ collector << ")"
73
+ collector
74
+ end
139
75
 
140
- def visit_ArelExtensions_Nodes_Replace o, collector
76
+ def visit_ArelExtensions_Nodes_Replace o, collector
141
77
  collector << "REPLACE("
142
78
  collector = visit o.expr,collector
143
79
  collector << ","
@@ -154,49 +90,35 @@ module ArelExtensions
154
90
  end
155
91
  collector << ")"
156
92
  collector
157
- end
158
-
159
-
160
- remove_method :visit_Arel_Nodes_Regexp
161
- def visit_Arel_Nodes_Regexp o, collector
162
- collector = visit o.left, collector
163
- collector << " ~ "
164
- collector << "'#{o.right}'"
165
- collector
166
- end
167
-
168
- remove_method :visit_Arel_Nodes_NotRegexp
169
- def visit_Arel_Nodes_NotRegexp o, collector
170
- collector = visit o.left, collector
171
- collector << " !~ "
172
- collector << "'#{o.right}'"
173
- collector
174
- end
175
-
93
+ end
176
94
 
177
- def visit_ArelExtensions_Nodes_Soundex o, collector
178
- collector << "soundex("
179
- if((o.expr).is_a?(Arel::Attributes::Attribute))
180
- collector = visit o.expr, collector
181
- else
182
- collector << "'#{o.expr}'"
183
- end
184
- collector << ")"
185
- collector
186
- end
187
95
 
96
+ remove_method(:visit_Arel_Nodes_Regexp) rescue nil
97
+ def visit_Arel_Nodes_Regexp o, collector
98
+ collector = visit o.left, collector
99
+ collector << " ~ "
100
+ collector << "'#{o.right}'"
101
+ collector
102
+ end
188
103
 
189
- def visit_ArelExtensions_Nodes_Sum o, collector
190
- collector << "sum("
191
- if((o.expr).is_a?(Arel::Attributes::Attribute))
192
- collector = visit o.expr, collector
193
- else
194
- collector << "'#{o.expr}'"
195
- end
196
- collector << ")"
197
- collector
198
- end
104
+ remove_method(:visit_Arel_Nodes_NotRegexp) rescue nil
105
+ def visit_Arel_Nodes_NotRegexp o, collector
106
+ collector = visit o.left, collector
107
+ collector << " !~ "
108
+ collector << o.right
109
+ collector
110
+ end
199
111
 
112
+ def visit_ArelExtensions_Nodes_Sum o, collector
113
+ collector << "sum("
114
+ if((o.expr).is_a?(Arel::Attributes::Attribute))
115
+ collector = visit o.expr, collector
116
+ else
117
+ collector << "'#{o.expr}'"
118
+ end
119
+ collector << ")"
120
+ collector
121
+ end
200
122
 
201
123
  def visit_ArelExtensions_Nodes_Trim o , collector
202
124
  collector << 'TRIM(BOTH '
@@ -2,26 +2,6 @@ module ArelExtensions
2
2
  module Visitors
3
3
  Arel::Visitors::SQLite.class_eval do
4
4
 
5
-
6
- def visit_ArelExtensions_Nodes_Coalesce o, collector
7
- collector << "COALESCE("
8
- if(o.left.is_a?(Arel::Attributes::Attribute))
9
- collector = visit o.left, collector
10
- else
11
- collector << "#{o.left}"
12
- end
13
- o.other.each { |a|
14
- collector << ","
15
- if(a.is_a?(Arel::Attributes::Attribute))
16
- collector = visit a, collector
17
- else
18
- collector << "#{a}"
19
- end
20
- }
21
- collector << ")"
22
- collector
23
- end
24
-
25
5
  # Date operations
26
6
  def visit_ArelExtensions_Nodes_DateAdd o, collector
27
7
  collector << "date("
@@ -138,70 +118,6 @@ module ArelExtensions
138
118
  collector
139
119
  end
140
120
 
141
- def visit_ArelExtensions_Nodes_Round o, collector
142
- collector << "ROUND("
143
- collector = visit o.left, collector
144
- collector << ","
145
- if(o.right.is_a?(Arel::Attributes::Attribute))
146
- collector = visit o.right, collector
147
- else
148
- collector << "'#{o.right}'"
149
- end
150
- collector << ")"
151
- collector
152
- end
153
-
154
- def visit_ArelExtensions_Nodes_Soundex o, collector
155
- collector << "SOUNDEX("
156
- if((o.expr).is_a?(Arel::Attributes::Attribute ))
157
- collector = visit o.expr, collector
158
- else
159
- collector << "'#{o.expr}'"
160
- end
161
- collector << ")"
162
- collector
163
- end
164
-
165
- def visit_ArelExtensions_Nodes_Trim o , collector
166
- collector << "TRIM("
167
- collector = visit o.left, collector
168
- collector << ","
169
- if(o.right.is_a?(Arel::Attributes::Attribute))
170
- collector = visit o.right, collector
171
- else
172
- collector << "'#{o.right}'"
173
- end
174
- collector << ")"
175
- collector
176
- end
177
-
178
- def visit_ArelExtensions_Nodes_Ltrim o , collector
179
- collector << "LTRIM("
180
- collector = visit o.left, collector
181
- collector << ","
182
- if(o.right.is_a?(Arel::Attributes::Attribute))
183
- collector = visit o.right, collector
184
- else
185
- collector << "'#{o.right}'"
186
- end
187
- collector << ")"
188
- collector
189
- end
190
-
191
-
192
- def visit_ArelExtensions_Nodes_Rtrim o , collector
193
- collector << "RTRIM("
194
- collector = visit o.left, collector
195
- collector << ","
196
- if(o.right.is_a?(Arel::Attributes::Attribute))
197
- collector = visit o.right, collector
198
- else
199
- collector << "'#{o.right}'"
200
- end
201
- collector << ")"
202
- collector
203
- end
204
-
205
121
  def visit_ArelExtensions_Nodes_Wday o, collector
206
122
  collector << "strftime('%w',"
207
123
  if((o.date).is_a?(Arel::Attributes::Attribute))
@@ -90,8 +90,59 @@ module ArelExtensions
90
90
  collector
91
91
  end
92
92
 
93
+ def visit_ArelExtensions_Nodes_Soundex o, collector
94
+ collector << "SOUNDEX("
95
+ o.expressions.each_with_index { |arg, i|
96
+ collector << Arel::Visitors::ToSql::COMMA unless i == 0
97
+ collector = visit arg, collector
98
+ }
99
+ collector << ")"
100
+ collector
101
+ end
102
+
103
+ def visit_ArelExtensions_Nodes_Trim o, collector
104
+ collector << "TRIM("
105
+ o.expressions.each_with_index { |arg, i|
106
+ collector << Arel::Visitors::ToSql::COMMA unless i == 0
107
+ collector = visit arg, collector
108
+ }
109
+ collector << ")"
110
+ collector
111
+ end
112
+
113
+ def visit_ArelExtensions_Nodes_Ltrim o, collector
114
+ collector << "LTRIM("
115
+ o.expressions.each_with_index { |arg, i|
116
+ collector << Arel::Visitors::ToSql::COMMA unless i == 0
117
+ collector = visit arg, collector
118
+ }
119
+ collector << ")"
120
+ collector
121
+ end
122
+
123
+
124
+ def visit_ArelExtensions_Nodes_Rtrim o, collector
125
+ collector << "RTRIM("
126
+ o.expressions.each_with_index { |arg, i|
127
+ collector << Arel::Visitors::ToSql::COMMA unless i == 0
128
+ collector = visit arg, collector
129
+ }
130
+ collector << ")"
131
+ collector
132
+ end
93
133
 
94
134
  #comparators
135
+
136
+ def visit_ArelExtensions_Nodes_Coalesce o, collector
137
+ collector << "COALESCE("
138
+ o.expressions.each_with_index { |arg, i|
139
+ collector << Arel::Visitors::ToSql::COMMA unless i == 0
140
+ collector = visit arg, collector
141
+ }
142
+ collector << ")"
143
+ collector
144
+ end
145
+
95
146
  def visit_ArelExtensions_Nodes_DateDiff o, collector
96
147
  collector << "DATEDIFF("
97
148
  collector = visit o.left, collector
data/test/database.yml CHANGED
@@ -9,14 +9,18 @@ jdbc-sqlite:
9
9
  mysql:
10
10
  adapter: mysql2
11
11
  database: arext_test
12
- username:
12
+ username: travis
13
13
  encoding: utf8
14
14
  jdbc-mysql:
15
15
  adapter: jdbcmysql
16
16
  database: arext_test
17
- username:
17
+ username: travis
18
18
  encoding: utf8
19
19
  postgres:
20
20
  adapter: postgresql
21
21
  database: arext_test
22
+ username: postgres
23
+ jdbc-postgres:
24
+ adapter: jdbcpostgresql
25
+ database: arext_test
22
26
  username: postgres
data/test/real_db_test.rb CHANGED
@@ -1,17 +1,14 @@
1
- require 'test/unit'
2
1
  require 'rubygems'
2
+ require 'minitest/autorun'
3
3
  require 'active_record'
4
4
 
5
5
  $:.unshift "#{File.dirname(__FILE__)}../../lib"
6
6
  require 'arel_extensions'
7
7
 
8
- # change here your target
9
- ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:") # requires compilation with extensions enabled
10
- #ActiveRecord::Base.establish_connection(:adapter=> "mysql2",:host=> "localhost",:username=> 'tester', :password => "testp", :database=> "tests")
11
- #ActiveRecord::Base.establish_connection(:adapter=>'postgresql',:host=> "localhost",:username=> 'tester',:password => "testp", :database=> "tests")
12
-
13
-
14
8
  def setup_db
9
+ ActiveRecord::Base.configurations = YAML.load_file('test/database.yml')
10
+ ActiveRecord::Base.establish_connection(ENV['DB'].try(:to_sym) || (RUBY_PLATFORM == 'java' ? :"jdbc-sqlite" : :sqlite))
11
+ ActiveRecord::Base.default_timezone = :utc
15
12
  @cnx = ActiveRecord::Base.connection
16
13
  if ActiveRecord::Base.connection.adapter_name =~ /sqlite/i
17
14
  $sqlite = true
@@ -38,7 +35,7 @@ def setup_db
38
35
  t.column :name, :string
39
36
  t.column :created_at, :date
40
37
  t.column :updated_at, :date
41
- t.column :score, :floor
38
+ t.column :score, :decimal
42
39
  end
43
40
  end
44
41
 
@@ -51,20 +48,20 @@ class User < ActiveRecord::Base
51
48
  end
52
49
 
53
50
 
54
- class ListTest < Test::Unit::TestCase
51
+ class ListTest < Minitest::Test
55
52
 
56
53
  def setup
57
54
  d = Date.new(2016,05,23)
58
55
  setup_db
59
- User.create! :age => 5, :name => "Lucas", :created_at => d , :score => 20.16
60
- User.create! :age => 15, :name => "Sophie", :created_at => d, :score => 20.16
61
- User.create! :age => 20, :name => "Camille", :created_at => d, :score => 20.16
62
- User.create! :age => 21, :name => "Arthur", :created_at => d, :score => 65.62
56
+ User.create :age => 5, :name => "Lucas", :created_at => d , :score => 20.16
57
+ User.create :age => 15, :name => "Sophie", :created_at => d, :score => 20.16
58
+ User.create :age => 20, :name => "Camille", :created_at => d, :score => 20.16
59
+ User.create :age => 21, :name => "Arthur", :created_at => d, :score => 65.62
63
60
  u = User.create :age => 23, :name => "Myung", :created_at => d, :score => 20.16
64
61
  @myung = User.where(:id => u.id)
65
- User.create! :age => 25, :name => "Laure", :created_at => d, :score =>20.16
66
- User.create! :age =>nil, :name => "Test", :created_at => d, :score => 1.62
67
- User.create! :age =>-0, :name => "Negatif", :created_at => d, :score => 0.17
62
+ User.create :age => 25, :name => "Laure", :created_at => d, :score =>20.16
63
+ User.create :age =>nil, :name => "Test", :created_at => d, :score => 1.62
64
+ User.create :age =>-0, :name => "Negatif", :created_at => d, :score => 0.17
68
65
  end
69
66
 
70
67
  def teardown
@@ -89,7 +86,7 @@ class ListTest < Test::Unit::TestCase
89
86
  assert_equal "Camille",User.where(User.arel_table[:name].eq("Camille")).select((User.arel_table[:name].coalesce("Null","default")).as("res")).first.res
90
87
  else
91
88
  assert_equal "Camille",User.where(User.arel_table[:name].eq("Camille")).select((User.arel_table[:name].coalesce("Null",20)).as("res")).first.res
92
- assert_equal 20,User.where(User.arel_table[:name].eq("Test")).select((User.arel_table[:age].coalesce("Null",20)).as("res")).first.res
89
+ assert_equal 20,User.where(User.arel_table[:name].eq("Test")).select((User.arel_table[:age].coalesce(nil,20)).as("res")).first.res
93
90
  end
94
91
  end
95
92
 
@@ -15,7 +15,11 @@ module ArelExtensions
15
15
  end
16
16
 
17
17
  def compile node
18
- @visitor.accept(node, Arel::Collectors::SQLString.new).value
18
+ if Arel::VERSION.to_i > 5
19
+ @visitor.accept(node, Arel::Collectors::SQLString.new).value
20
+ else
21
+ @visitor.accept(node)
22
+ end
19
23
  end
20
24
 
21
25
  it "should import large set of data in Oracle" do
@@ -16,7 +16,11 @@ module ArelExtensions
16
16
  end
17
17
 
18
18
  def compile node
19
- @visitor.accept(node, Arel::Collectors::SQLString.new).value
19
+ if Arel::VERSION.to_i > 5
20
+ @visitor.accept(node, Arel::Collectors::SQLString.new).value
21
+ else
22
+ @visitor.accept(node)
23
+ end
20
24
  end
21
25
 
22
26
  it "should import large set of data" do
@@ -16,7 +16,11 @@ module ArelExtensions
16
16
  end
17
17
 
18
18
  def compile node
19
- @visitor.accept(node, Arel::Collectors::SQLString.new).value
19
+ if Arel::VERSION.to_i > 5
20
+ @visitor.accept(node, Arel::Collectors::SQLString.new).value
21
+ else
22
+ @visitor.accept(node)
23
+ end
20
24
  end
21
25
 
22
26
 
@@ -13,7 +13,11 @@ module ArelExtensions
13
13
  end
14
14
 
15
15
  def compile node
16
- @visitor.accept(node, Arel::Collectors::SQLString.new).value
16
+ if Arel::VERSION.to_i > 5
17
+ @visitor.accept(node, Arel::Collectors::SQLString.new).value
18
+ else
19
+ @visitor.accept(node)
20
+ end
17
21
  end
18
22
 
19
23
  # Comparators
@@ -15,7 +15,11 @@ module ArelExtensions
15
15
  end
16
16
 
17
17
  def compile node
18
- @visitor.accept(node, Arel::Collectors::SQLString.new).value
18
+ if Arel::VERSION.to_i > 5
19
+ @visitor.accept(node, Arel::Collectors::SQLString.new).value
20
+ else
21
+ @visitor.accept(node)
22
+ end
19
23
  end
20
24
 
21
25
  # Math Functions
@@ -27,13 +27,13 @@ module ArelExtensions
27
27
  class User < ActiveRecord::Base
28
28
  end
29
29
  d = Date.new(2016, 5,23)
30
- User.create! :age => 5, :name => "Lucas", :created_at => d, :score => 20.16
31
- User.create! :age => 15, :name => "Sophie", :created_at => d, :score => 20.16
32
- User.create! :age => 20, :name => "Camille", :created_at => d, :score => 20.16
33
- User.create! :age => 21, :name => "Arthur", :created_at => d, :score => 65.62
34
- User.create! :age => 23, :name => "Myung", :created_at => d, :score => 20.16
30
+ User.create :age => 5, :name => "Lucas", :created_at => d, :score => 20.16
31
+ User.create :age => 15, :name => "Sophie", :created_at => d, :score => 20.16
32
+ User.create :age => 20, :name => "Camille", :created_at => d, :score => 20.16
33
+ User.create :age => 21, :name => "Arthur", :created_at => d, :score => 65.62
34
+ User.create :age => 23, :name => "Myung", :created_at => d, :score => 20.16
35
35
  @laure = User.create :age => 25, :name => "Laure", :created_at => d, :score =>20.16
36
- User.create! :age => nil, :name => "Test", :created_at => d, :score => 1.62
36
+ User.create :age => nil, :name => "Test", :created_at => d, :score => 1.62
37
37
  @neg = User.create :age => -20, :name => "Negatif", :created_at => d, :score => 0.17
38
38
  @table = Arel::Table.new(:users)
39
39
  @age = @table[:age]
@@ -51,7 +51,10 @@ module ArelExtensions
51
51
  #CEIL # require extensions
52
52
 
53
53
  # RAND
54
- assert_equal 5, User.where(@table[:score].eq(20.16)).order(Arel.rand).limit(50).count
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
56
+ assert 42 != User.select(Arel.rand.as('res')).first.res
57
+ assert 0 <= User.select(Arel.rand.abs.as('res')).first.res
55
58
  assert_equal 8, User.order(Arel.rand).limit(50).count
56
59
  end
57
60
 
@@ -12,13 +12,14 @@ module ArelExtensions
12
12
  ActiveRecord::Base.default_timezone = :utc
13
13
  begin
14
14
  @cnx = ActiveRecord::Base.connection
15
- Arel::Table.engine = ActiveRecord::Base
16
15
  rescue => e
17
- puts e.inspect
16
+ puts "\n#{e.inspect}"
18
17
  ActiveRecord::Base.establish_connection(ENV['DB'] || :sqlite)
19
18
  @cnx = ActiveRecord::Base.connection
20
19
  end
21
- @cnx.drop_table(:users) rescue nil
20
+ Arel::Table.engine = ActiveRecord::Base
21
+ @cnx.drop_table(:users) rescue nil
22
+ @cnx.drop_table(:products) rescue nil
22
23
  @cnx.create_table :users do |t|
23
24
  t.column :age, :integer
24
25
  t.column :name, :string
@@ -33,14 +34,14 @@ module ArelExtensions
33
34
  class User < ActiveRecord::Base
34
35
  end
35
36
  d = Date.new(2016, 5,23)
36
- @lucas = User.create! :age => 5, :name => "Lucas", :created_at => d, :score => 20.16
37
+ @lucas = User.create :age => 5, :name => "Lucas", :created_at => d, :score => 20.16
37
38
  sophie = User.create :age => 15, :name => "Sophie", :created_at => d, :score => 20.16
38
39
  @sophie = User.where(:id => sophie.id)
39
- User.create! :age => 20, :name => "Camille", :created_at => d, :score => 20.16
40
- User.create! :age => 21, :name => "Arthur", :created_at => d, :score => 65.62
41
- User.create! :age => 23, :name => "Myung", :created_at => d, :score => 20.16
40
+ User.create :age => 20, :name => "Camille", :created_at => d, :score => 20.16
41
+ User.create :age => 21, :name => "Arthur", :created_at => d, :score => 65.62
42
+ User.create :age => 23, :name => "Myung", :created_at => d, :score => 20.16
42
43
  @laure = User.create :age => 25, :name => "Laure", :created_at => d, :score =>20.16
43
- User.create! :age => nil, :name => "Test", :created_at => d, :score => 1.62
44
+ User.create :age => nil, :name => "Test", :created_at => d, :score => 1.62
44
45
  @neg = User.create :age => -20, :name => "Negatif", :created_at => d, :score => 0.17
45
46
  @table = Arel::Table.new(:users)
46
47
  @name = @table[:name]
@@ -63,8 +64,6 @@ module ArelExtensions
63
64
  assert_equal 1, User.where((User.arel_table[:age] + "1").eq(6)).count
64
65
  assert_equal 1, User.where((User.arel_table[:age] + User.arel_table[:age]).eq(10)).count
65
66
 
66
-
67
-
68
67
  # Replace
69
68
  assert_equal "LucaX", User.where(:id => @lucas).select(@name.replace("s","X").as("res")).first.res
70
69
  assert_equal "replace", User.where(:id => @lucas).select(@name.replace(@name,"replace").as("res")).first.res