aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2017-01-17 23:53:27 -0500
committerGitHub <noreply@github.com>2017-01-17 23:53:27 -0500
commitf5f81be73df89011fe9bc89915b99d81e0c9a67f (patch)
treebd238ddda782d8918d9b798761cc7696e3ec6d94 /lib
parentab109d3bf1c773da5e78ddc93bb6b55aebbb1c2a (diff)
parent33d0d962b777a98f3bdda0be41ee03acc0410676 (diff)
downloadrails-f5f81be73df89011fe9bc89915b99d81e0c9a67f.tar.gz
rails-f5f81be73df89011fe9bc89915b99d81e0c9a67f.tar.bz2
rails-f5f81be73df89011fe9bc89915b99d81e0c9a67f.zip
Merge pull request #467 from composerinteralia/custom-errors
Raise custom error on empty join
Diffstat (limited to 'lib')
-rw-r--r--lib/arel.rb2
-rw-r--r--lib/arel/errors.rb7
-rw-r--r--lib/arel/select_manager.rb2
-rw-r--r--lib/arel/table.rb2
4 files changed, 11 insertions, 2 deletions
diff --git a/lib/arel.rb b/lib/arel.rb
index e04999ed92..710914a2e3 100644
--- a/lib/arel.rb
+++ b/lib/arel.rb
@@ -1,3 +1,5 @@
+require 'arel/errors'
+
require 'arel/crud'
require 'arel/factory_methods'
diff --git a/lib/arel/errors.rb b/lib/arel/errors.rb
new file mode 100644
index 0000000000..c8a6af9f77
--- /dev/null
+++ b/lib/arel/errors.rb
@@ -0,0 +1,7 @@
+module Arel
+ class ArelError < StandardError
+ end
+
+ class EmptyJoinError < ArelError
+ end
+end
diff --git a/lib/arel/select_manager.rb b/lib/arel/select_manager.rb
index eae3bc8cbc..6af9b6fbe6 100644
--- a/lib/arel/select_manager.rb
+++ b/lib/arel/select_manager.rb
@@ -106,7 +106,7 @@ module Arel
case relation
when String, Nodes::SqlLiteral
- raise if relation.empty?
+ raise EmptyJoinError if relation.empty?
klass = Nodes::StringJoin
end
diff --git a/lib/arel/table.rb b/lib/arel/table.rb
index 3e06f94272..130b7ea028 100644
--- a/lib/arel/table.rb
+++ b/lib/arel/table.rb
@@ -37,7 +37,7 @@ module Arel
case relation
when String, Nodes::SqlLiteral
- raise if relation.empty?
+ raise EmptyJoinError if relation.empty?
klass = Nodes::StringJoin
end