From 50bbc87f85e817a2926c56ccd81d3dc498a05e21 Mon Sep 17 00:00:00 2001
From: Jeremy Kemper <jeremy@bitsweat.net>
Date: Sun, 27 Jul 2008 21:44:53 -0700
Subject: MacRuby: BasicObject unavailable

---
 activesupport/lib/active_support/basic_object.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'activesupport')

diff --git a/activesupport/lib/active_support/basic_object.rb b/activesupport/lib/active_support/basic_object.rb
index e06da79d26..1f77209e7f 100644
--- a/activesupport/lib/active_support/basic_object.rb
+++ b/activesupport/lib/active_support/basic_object.rb
@@ -7,7 +7,7 @@
 # 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'
+  if defined? ::BasicObject
     class BasicObject < ::BasicObject
       undef_method :==
       undef_method :equal?
-- 
cgit v1.2.3


From ae6105ef01b2a767afa2bf5b64c90d288c752995 Mon Sep 17 00:00:00 2001
From: Jeremy Kemper <jeremy@bitsweat.net>
Date: Sun, 27 Jul 2008 21:45:55 -0700
Subject: Don't rememoize if already frozen

---
 activesupport/lib/active_support/memoizable.rb | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

(limited to 'activesupport')

diff --git a/activesupport/lib/active_support/memoizable.rb b/activesupport/lib/active_support/memoizable.rb
index 21636b8af4..23dd96e4df 100644
--- a/activesupport/lib/active_support/memoizable.rb
+++ b/activesupport/lib/active_support/memoizable.rb
@@ -11,10 +11,9 @@ module ActiveSupport
 
       def freeze_with_memoizable
         methods.each do |method|
-          if m = method.to_s.match(/^_unmemoized_(.*)/)
-            send(m[1])
-          end
-        end
+          __send__($1) if method.to_s =~ /^_unmemoized_(.*)/
+        end unless frozen?
+
         freeze_without_memoizable
       end
     end
-- 
cgit v1.2.3


From 2cf161a384cc361d856aa76639bcb30570d67286 Mon Sep 17 00:00:00 2001
From: Jeremy Kemper <jeremy@bitsweat.net>
Date: Sun, 27 Jul 2008 21:46:12 -0700
Subject: Once is enough, mmk

---
 activesupport/lib/active_support/testing/performance.rb | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'activesupport')

diff --git a/activesupport/lib/active_support/testing/performance.rb b/activesupport/lib/active_support/testing/performance.rb
index 71d6f4d9c6..70a7f84023 100644
--- a/activesupport/lib/active_support/testing/performance.rb
+++ b/activesupport/lib/active_support/testing/performance.rb
@@ -72,13 +72,13 @@ module ActiveSupport
 
       protected
         def run_warmup
-          5.times { GC.start }
+          GC.start
 
           time = Metrics::Time.new
           run_test(time, :benchmark)
           puts "%s (%s warmup)" % [full_test_name, time.format(time.total)]
 
-          5.times { GC.start }
+          GC.start
         end
 
         def run_profile(metric)
-- 
cgit v1.2.3


From a24398b64757df8c5939b07238c740bddfdab03e Mon Sep 17 00:00:00 2001
From: Michael Koziarski <michael@koziarski.com>
Date: Tue, 29 Jul 2008 19:49:38 +0200
Subject: Guard the logger's internal buffer to prevent major breakage on
 genuinely threaded environments

---
 activesupport/lib/active_support/buffered_logger.rb | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

(limited to 'activesupport')

diff --git a/activesupport/lib/active_support/buffered_logger.rb b/activesupport/lib/active_support/buffered_logger.rb
index 67b0a580ea..aec416a6d6 100644
--- a/activesupport/lib/active_support/buffered_logger.rb
+++ b/activesupport/lib/active_support/buffered_logger.rb
@@ -40,6 +40,7 @@ module ActiveSupport
       @buffer        = []
       @auto_flushing = 1
       @no_block = false
+      @guard = Mutex.new
 
       if log.respond_to?(:write)
         @log = log
@@ -66,7 +67,9 @@ module ActiveSupport
       # If a newline is necessary then create a new message ending with a newline.
       # Ensures that the original message is not mutated.
       message = "#{message}\n" unless message[-1] == ?\n
-      buffer << message
+      @guard.synchronize do
+        buffer << message
+      end
       auto_flush
       message
     end
@@ -98,11 +101,16 @@ module ActiveSupport
     end
 
     def flush
-      unless buffer.empty?
-        if @no_block
-          @log.write_nonblock(buffer.slice!(0..-1).join)
-        else
-          @log.write(buffer.slice!(0..-1).join)
+      @guard.synchronize do
+        unless buffer.empty?
+          old_buffer    = @buffer
+          @buffer       = []
+          text_to_write = old_buffer.join
+          if @no_block
+            @log.write_nonblock(text_to_write)
+          else
+            @log.write(text_to_write)
+          end
         end
       end
     end
-- 
cgit v1.2.3


From d9452d3ab3063c5e96dfd80cf6056c49192081b3 Mon Sep 17 00:00:00 2001
From: Michael Koziarski <michael@koziarski.com>
Date: Tue, 29 Jul 2008 20:01:25 +0200
Subject: Remove incomplete non-blocking logger functionality

---
 activesupport/lib/active_support/buffered_logger.rb | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

(limited to 'activesupport')

diff --git a/activesupport/lib/active_support/buffered_logger.rb b/activesupport/lib/active_support/buffered_logger.rb
index aec416a6d6..cedc1afe7f 100644
--- a/activesupport/lib/active_support/buffered_logger.rb
+++ b/activesupport/lib/active_support/buffered_logger.rb
@@ -39,7 +39,6 @@ module ActiveSupport
       @level         = level
       @buffer        = []
       @auto_flushing = 1
-      @no_block = false
       @guard = Mutex.new
 
       if log.respond_to?(:write)
@@ -55,12 +54,6 @@ module ActiveSupport
       end
     end
 
-    def set_non_blocking_io
-      if !RUBY_PLATFORM.match(/java|mswin/) && !(@log == STDOUT) && @log.respond_to?(:write_nonblock)
-        @no_block = true
-      end
-    end
-
     def add(severity, message = nil, progname = nil, &block)
       return if @level > severity
       message = (message || (block && block.call) || progname).to_s
@@ -105,12 +98,7 @@ module ActiveSupport
         unless buffer.empty?
           old_buffer    = @buffer
           @buffer       = []
-          text_to_write = old_buffer.join
-          if @no_block
-            @log.write_nonblock(text_to_write)
-          else
-            @log.write(text_to_write)
-          end
+          @log.write(old_buffer.join)
         end
       end
     end
-- 
cgit v1.2.3


From 2617d0dc5ced4b354bff9633bddafdf80ad5a711 Mon Sep 17 00:00:00 2001
From: miloops <miloops@gmail.com>
Date: Tue, 29 Jul 2008 23:14:56 -0300
Subject: Performance: grouping helpers should use yield instead of block as
 argument.  [#723 state:resolved]

---
 activesupport/lib/active_support/core_ext/array/grouping.rb | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

(limited to 'activesupport')

diff --git a/activesupport/lib/active_support/core_ext/array/grouping.rb b/activesupport/lib/active_support/core_ext/array/grouping.rb
index df37afb053..dd1484f8fa 100644
--- a/activesupport/lib/active_support/core_ext/array/grouping.rb
+++ b/activesupport/lib/active_support/core_ext/array/grouping.rb
@@ -19,7 +19,7 @@ module ActiveSupport #:nodoc:
         #   %w(1 2 3).in_groups_of(2, false) {|g| p g}
         #   ["1", "2"]
         #   ["3"]
-        def in_groups_of(number, fill_with = nil, &block)
+        def in_groups_of(number, fill_with = nil)
           if fill_with == false
             collection = self
           else
@@ -31,7 +31,7 @@ module ActiveSupport #:nodoc:
           end
 
           if block_given?
-            collection.each_slice(number, &block)
+            collection.each_slice(number) { |slice| yield(slice) }
           else
             returning [] do |groups|
               collection.each_slice(number) { |group| groups << group }
@@ -87,11 +87,11 @@ module ActiveSupport #:nodoc:
         #
         #   [1, 2, 3, 4, 5].split(3)                # => [[1, 2], [4, 5]]
         #   (1..10).to_a.split { |i| i % 3 == 0 }   # => [[1, 2], [4, 5], [7, 8], [10]]
-        def split(value = nil, &block)
-          block ||= Proc.new { |e| e == value }
+        def split(value = nil)
+          using_block = block_given?
 
           inject([[]]) do |results, element|
-            if block.call(element)
+            if (using_block && yield(element)) || (value == element)
               results << []
             else
               results.last << element
-- 
cgit v1.2.3


From 656f0e7c6c9a305abaf9f9b7fb80479b6f94efce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tarmo=20T=C3=A4nav?= <tarmo@itech.ee>
Date: Thu, 31 Jul 2008 16:36:23 -0500
Subject: Fix file permissions

Signed-off-by: Joshua Peek <josh@joshpeek.com>
---
 activesupport/lib/active_support/multibyte/generators/generate_tables.rb | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 activesupport/lib/active_support/multibyte/generators/generate_tables.rb

(limited to 'activesupport')

diff --git a/activesupport/lib/active_support/multibyte/generators/generate_tables.rb b/activesupport/lib/active_support/multibyte/generators/generate_tables.rb
old mode 100644
new mode 100755
-- 
cgit v1.2.3