<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,7 @@
 require 'stringio'
 require 'uri'
 require 'active_support/test_case'
+require 'active_support/core_ext/object/metaclass'
 
 require 'rack/mock_session'
 require 'rack/test/cookie_jar'
@@ -191,7 +192,7 @@ module ActionController
 
         unless defined? @named_routes_configured
           # install the named routes in this session instance.
-          klass = class &lt;&lt; self; self; end
+          klass = metaclass
           Routing::Routes.install_helpers(klass)
 
           # the helpers are made protected by default--we make them public for</diff>
      <filename>actionpack/lib/action_controller/testing/integration.rb</filename>
    </modified>
    <modified>
      <diff>@@ -11,6 +11,7 @@ require 'active_support/core_ext/hash/indifferent_access'
 require 'active_support/core_ext/hash/slice'
 require 'active_support/core_ext/string/behavior'
 require 'active_support/core_ext/symbol'
+require 'active_support/core_ext/object/metaclass'
 
 module ActiveRecord #:nodoc:
   # Generic Active Record exception class.
@@ -2040,7 +2041,7 @@ module ActiveRecord #:nodoc:
         #     end
         #   end
         def define_attr_method(name, value=nil, &amp;block)
-          sing = class &lt;&lt; self; self; end
+          sing = metaclass
           sing.send :alias_method, &quot;original_#{name}&quot;, name
           if block_given?
             sing.send :define_method, name, &amp;block</diff>
      <filename>activerecord/lib/active_record/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'active_support/core_ext/object/metaclass'
+
 module ActiveRecord
   class IrreversibleMigration &lt; ActiveRecordError#:nodoc:
   end
@@ -300,8 +302,7 @@ module ActiveRecord
 
           case sym
             when :up, :down
-              klass = (class &lt;&lt; self; self; end)
-              klass.send(:alias_method_chain, sym, &quot;benchmarks&quot;)
+              metaclass.send(:alias_method_chain, sym, &quot;benchmarks&quot;)
           end
         ensure
           @ignore_new_methods = false</diff>
      <filename>activerecord/lib/active_record/migration.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,6 @@
 require 'active_support/core_ext/array'
 require 'active_support/core_ext/hash/except'
+require 'active_support/core_ext/object/metaclass'
 
 module ActiveRecord
   module NamedScope
@@ -99,7 +100,7 @@ module ActiveRecord
               end
           end, &amp;block)
         end
-        (class &lt;&lt; self; self end).instance_eval do
+        metaclass.instance_eval do
           define_method name do |*args|
             scopes[name].call(self, *args)
           end</diff>
      <filename>activerecord/lib/active_record/named_scope.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
 class Proc #:nodoc:
   def bind(object)
     block, time = self, Time.now
-    (class &lt;&lt; object; self end).class_eval do
+    object.class_eval do
       method_name = &quot;__bind_#{time.to_i}_#{time.usec}&quot;
       define_method(method_name, &amp;block)     # define_method(&quot;__bind_1230458026_720454&quot;, &amp;block)
       method = instance_method(method_name)  # method = instance_method(&quot;__bind_1230458026_720454&quot;)</diff>
      <filename>activesupport/lib/active_support/core_ext/proc.rb</filename>
    </modified>
    <modified>
      <diff>@@ -307,7 +307,7 @@ module ActiveSupport
 
       def _normalize_legacy_filter(kind, filter)
         if !filter.respond_to?(kind) &amp;&amp; filter.respond_to?(:filter)
-          filter.metaclass.class_eval(
+          filter.class_eval(
             &quot;def #{kind}(context, &amp;block) filter(context, &amp;block) end&quot;,
             __FILE__, __LINE__ - 1)
         elsif filter.respond_to?(:before) &amp;&amp; filter.respond_to?(:after) &amp;&amp; kind == :around</diff>
      <filename>activesupport/lib/active_support/new_callbacks.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>54a5446641e4386285231385700b95a223931bff</id>
    </parent>
  </parents>
  <author>
    <name>Xavier Noria</name>
    <email>fxn@hashref.com</email>
  </author>
  <url>http://github.com/rails/rails/commit/d32965399ccfa2052a4d52b70db1bae0ca16830b</url>
  <id>d32965399ccfa2052a4d52b70db1bae0ca16830b</id>
  <committed-date>2009-06-12T16:14:06-07:00</committed-date>
  <authored-date>2009-06-12T16:01:42-07:00</authored-date>
  <message>uses Object#metaclass and Object#class_eval in a few spots

[#2797 state:committed]

Signed-off-by: Jeremy Kemper &lt;jeremy@bitsweat.net&gt;</message>
  <tree>7f41b1846efd2d11d7ebff15a115cba02ad75f11</tree>
  <committer>
    <name>Jeremy Kemper</name>
    <email>jeremy@bitsweat.net</email>
  </committer>
</commit>
