Title: [1089] trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_oracle.rb:
Rework oracle lob saving callback to be Rails 2.1 friendly (
assist from court3nay)
- Revision
- 1089
- Author
- nicksieger
- Date
- 2008-07-30 23:42:28 -0400 (Wed, 30 Jul 2008)
Log Message
Rework oracle lob saving callback to be Rails 2.1 friendly (assist from court3nay)
Modified Paths
Diff
Modified: trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_oracle.rb (1088 => 1089)
--- trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_oracle.rb 2008-07-30 07:41:49 UTC (rev 1088)
+++ trunk/activerecord-jdbc/lib/jdbc_adapter/jdbc_oracle.rb 2008-07-31 03:42:28 UTC (rev 1089)
@@ -1,8 +1,5 @@
module ::ActiveRecord
class Base
- # After setting large objects to empty, write data back with a helper method
- alias after_save_without_oracle_lob after_save
-
def after_save_with_oracle_lob() #:nodoc:
if connection.is_a?(JdbcSpec::Oracle)
self.class.columns.select { |c| c.sql_type =~ /LOB\(|LOB$/i }.each { |c|
@@ -13,10 +10,7 @@
connection.write_large_object(c.type == :binary, c.name, self.class.table_name, self.class.primary_key, quote_value(id), value)
}
end
- after_save_without_oracle_lob
end
-
- alias after_save after_save_with_oracle_lob
end
end
@@ -29,8 +23,13 @@
jdbc_connection(config)
end
end
-
+
module Oracle
+ def self.extended(mod)
+ ActiveRecord::Base.after_save :after_save_with_oracle_lob unless @lob_callback_added
+ @lob_callback_added = true
+ end
+
def self.column_selector
[/oracle/i, lambda {|cfg,col| col.extend(::JdbcSpec::Oracle::Column)}]
end
_______________________________________________
Jruby-extras-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/jruby-extras-devel