vendor/rails/activesupport/lib/active_support/basic_object.rb in radiant-0.6.9 vs vendor/rails/activesupport/lib/active_support/basic_object.rb in radiant-0.7.0
- old
+ new
@@ -1,5 +1,24 @@
-# Ruby 1.9 introduces BasicObject. Use Builder's BlankSlate until then.
-unless defined? BasicObject
- require 'blankslate'
- BasicObject = BlankSlate
+# A base class with no predefined methods that tries to behave like Builder's
+# BlankSlate in Ruby 1.9. In Ruby pre-1.9, this is actually the
+# Builder::BlankSlate class.
+#
+# Ruby 1.9 introduces BasicObject which differs slightly from Builder's
+# BlankSlate that has been used so far. ActiveSupport::BasicObject provides a
+# barebones base class that emulates Builder::BlankSlate while still relying on
+# Ruby 1.9's BasicObject in Ruby 1.9.
+module ActiveSupport
+ if RUBY_VERSION >= '1.9'
+ class BasicObject < ::BasicObject
+ undef_method :==
+ undef_method :equal?
+
+ # Let ActiveSupport::BasicObject at least raise exceptions.
+ def raise(*args)
+ ::Object.send(:raise, *args)
+ end
+ end
+ else
+ require 'blankslate'
+ BasicObject = BlankSlate
+ end
end