aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/arel.rb2
-rw-r--r--lib/arel/crud.rb21
-rw-r--r--lib/arel/select_manager.rb18
-rw-r--r--lib/arel/table.rb2
4 files changed, 27 insertions, 16 deletions
diff --git a/lib/arel.rb b/lib/arel.rb
index 5ffc46c934..a861a01a1c 100644
--- a/lib/arel.rb
+++ b/lib/arel.rb
@@ -1,3 +1,5 @@
+require 'arel/crud'
+
require 'arel/version'
require 'arel/table'
require 'arel/attributes'
diff --git a/lib/arel/crud.rb b/lib/arel/crud.rb
new file mode 100644
index 0000000000..5b432cb2b6
--- /dev/null
+++ b/lib/arel/crud.rb
@@ -0,0 +1,21 @@
+module Arel
+ ###
+ # FIXME hopefully we can remove this
+ module Crud
+ # FIXME: this method should go away
+ def update values
+ um = UpdateManager.new @engine
+ um.table values.first.first.relation
+ um.set values
+ um.wheres = @ctx.wheres
+ @engine.connection.execute um.to_sql
+ end
+
+ # FIXME: this method should go away
+ def insert values
+ im = InsertManager.new @engine
+ im.insert values
+ @engine.connection.execute im.to_sql
+ end
+ end
+end
diff --git a/lib/arel/select_manager.rb b/lib/arel/select_manager.rb
index 7379596aba..23d85e3386 100644
--- a/lib/arel/select_manager.rb
+++ b/lib/arel/select_manager.rb
@@ -1,5 +1,7 @@
module Arel
class SelectManager < Arel::TreeManager
+ include Arel::Crud
+
def initialize engine
super
@head = Nodes::SelectStatement.new
@@ -25,21 +27,5 @@ module Arel
@head.limit = limit
self
end
-
- # FIXME: this method should go away
- def update values
- um = UpdateManager.new @engine
- um.table values.first.first.relation
- um.set values
- um.wheres = @ctx.wheres
- @engine.connection.execute um.to_sql
- end
-
- # FIXME: this method should go away
- def insert values
- im = InsertManager.new @engine
- im.insert values
- @engine.connection.execute im.to_sql
- end
end
end
diff --git a/lib/arel/table.rb b/lib/arel/table.rb
index 4269dfc62f..b629e0755b 100644
--- a/lib/arel/table.rb
+++ b/lib/arel/table.rb
@@ -1,5 +1,7 @@
module Arel
class Table
+ include Arel::Crud
+
@engine = nil
class << self; attr_accessor :engine; end