aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_view/helpers/prototype_helper.rb12
2 files changed, 9 insertions, 5 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index 11ab78938b..843f8f0614 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Use Set instead of Array to speed up prototype helper include? calls. #2880 [Stefan Kaes]
+
* MemCache store may be given multiple addresses. #2869 [Ryan Carver <ryan@fivesevensix.com>]
* Handle cookie parsing irregularity for certain Nokia phones. #2530 [zaitzow@gmail.com]
diff --git a/actionpack/lib/action_view/helpers/prototype_helper.rb b/actionpack/lib/action_view/helpers/prototype_helper.rb
index ce1d3a3750..74c32c7441 100644
--- a/actionpack/lib/action_view/helpers/prototype_helper.rb
+++ b/actionpack/lib/action_view/helpers/prototype_helper.rb
@@ -1,4 +1,5 @@
require File.dirname(__FILE__) + '/javascript_helper'
+require 'set'
module ActionView
module Helpers
@@ -25,11 +26,12 @@ module ActionView
# on the page in an Ajax response.
module PrototypeHelper
unless const_defined? :CALLBACKS
- CALLBACKS = [ :uninitialized, :loading, :loaded, :interactive,
- :complete, :failure, :success ] + (100..599).to_a
- AJAX_OPTIONS = [ :before, :after, :condition, :url, :asynchronous,
- :method, :insertion, :position, :form, :with, :update,
- :script ] + CALLBACKS
+ CALLBACKS = Set.new([ :uninitialized, :loading, :loaded,
+ :interactive, :complete, :failure, :success ] +
+ (100..599).to_a)
+ AJAX_OPTIONS = Set.new([ :before, :after, :condition, :url,
+ :asynchronous, :method, :insertion, :position,
+ :form, :with, :update, :script ]).merge(CALLBACKS)
end
# Returns a link to a remote action defined by <tt>options[:url]</tt>