From 9f2cb32c2fede9a6344fd4ddbc0738e5530ac517 Mon Sep 17 00:00:00 2001 From: David Chelimsky Date: Sat, 10 Aug 2013 09:42:46 +0200 Subject: [PATCH] minor optimization * Array(list) covers all necessary cases $ irb 2.0.0p0 :001 > Array(nil) => [] 2.0.0p0 :002 > Array(:foo) => [:foo] 2.0.0p0 :003 > Array([:foo,:bar]) => [:foo, :bar] * Array(list) is considerably faster than list.flatten.compact $ time ruby -e "100000.times { [nil].flatten.compact; [:foo].flatten.compact; [[:foo, :bar]].flatten.compact }" real 0m0.465s user 0m0.461s sys 0m0.003s $ time ruby -e "100000.times { Array(nil); Array(:foo); Array([:foo, :bar]) }" real 0m0.117s user 0m0.113s sys 0m0.003s --- lib/rspec/core/configuration.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rspec/core/configuration.rb b/lib/rspec/core/configuration.rb index 81399f923f..899c989a4c 100644 --- a/lib/rspec/core/configuration.rb +++ b/lib/rspec/core/configuration.rb @@ -72,7 +72,7 @@ def self.add_setting(name, opts={}) define_reader name define_predicate_for name end - [opts[:alias_with]].flatten.compact.each do |alias_name| + Array(opts[:alias_with]).each do |alias_name| define_aliases(name, alias_name) end end