arel_extensions 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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