Changeset 7719
- Timestamp:
- 10/02/07 05:32:14 (1 year ago)
- Files:
-
- trunk/actionmailer/lib/action_mailer/helpers.rb (modified) (3 diffs)
- trunk/actionpack/lib/action_controller/assertions.rb (modified) (1 diff)
- trunk/actionpack/lib/action_controller/base.rb (modified) (6 diffs)
- trunk/actionpack/lib/action_controller/caching.rb (modified) (4 diffs)
- trunk/actionpack/lib/action_controller/cgi_process.rb (modified) (3 diffs)
- trunk/actionpack/lib/action_controller/components.rb (modified) (1 diff)
- trunk/actionpack/lib/action_controller/dispatcher.rb (modified) (3 diffs)
- trunk/actionpack/lib/action_controller/filters.rb (modified) (4 diffs)
- trunk/actionpack/lib/action_controller/flash.rb (modified) (1 diff)
- trunk/actionpack/lib/action_controller/helpers.rb (modified) (3 diffs)
- trunk/actionpack/lib/action_controller/http_authentication.rb (modified) (1 diff)
- trunk/actionpack/lib/action_controller/integration.rb (modified) (6 diffs)
- trunk/actionpack/lib/action_controller/layout.rb (modified) (3 diffs)
- trunk/actionpack/lib/action_controller/mime_responds.rb (modified) (1 diff)
- trunk/actionpack/lib/action_controller/mime_type.rb (modified) (1 diff)
- trunk/actionpack/lib/action_controller/polymorphic_routes.rb (modified) (4 diffs)
- trunk/actionpack/lib/action_controller/request.rb (modified) (3 diffs)
- trunk/actionpack/lib/action_controller/rescue.rb (modified) (1 diff)
- trunk/actionpack/lib/action_controller/resources.rb (modified) (2 diffs)
- trunk/actionpack/lib/action_controller/routing.rb (modified) (8 diffs)
- trunk/actionpack/lib/action_controller/session_management.rb (modified) (1 diff)
- trunk/actionpack/lib/action_controller/test_process.rb (modified) (6 diffs)
- trunk/actionpack/lib/action_controller/verification.rb (modified) (2 diffs)
- trunk/actionpack/lib/action_view/helpers/number_helper.rb (modified) (1 diff)
- trunk/actionpack/lib/action_view/helpers/text_helper.rb (modified) (1 diff)
- trunk/actionpack/test/controller/base_test.rb (modified) (3 diffs)
- trunk/actionpack/test/controller/dispatcher_test.rb (modified) (4 diffs)
- trunk/actionpack/test/controller/filters_test.rb (modified) (1 diff)
- trunk/actionpack/test/controller/integration_test.rb (modified) (1 diff)
- trunk/actionpack/test/controller/layout_test.rb (modified) (4 diffs)
- trunk/actionpack/test/controller/mime_responds_test.rb (modified) (6 diffs)
- trunk/actionpack/test/controller/mime_type_test.rb (modified) (1 diff)
- trunk/actionpack/test/controller/render_test.rb (modified) (1 diff)
- trunk/activerecord/test/abstract_unit.rb (modified) (1 diff)
- trunk/activeresource/lib/active_resource/base.rb (modified) (2 diffs)
- trunk/activeresource/lib/active_resource/custom_methods.rb (modified) (3 diffs)
- trunk/activeresource/lib/active_resource/http_mock.rb (modified) (1 diff)
- trunk/activeresource/test/authorization_test.rb (modified) (4 diffs)
- trunk/activeresource/test/base_errors_test.rb (modified) (2 diffs)
- trunk/activeresource/test/base_test.rb (modified) (4 diffs)
- trunk/activeresource/test/base/load_test.rb (modified) (2 diffs)
- trunk/activeresource/test/connection_test.rb (modified) (2 diffs)
- trunk/activesupport/lib/active_support/clean_logger.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/array.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/bigdecimal.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb (moved) (moved from trunk/activesupport/lib/active_support/core_ext/bigdecimal/formatting.rb) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/cgi.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/class.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/date_time.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/date.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/float.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/hash.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/integer.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/kernel.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/module.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/numeric.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/object.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/pathname.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/range.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/string.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/test.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/core_ext/test/unit (added)
- trunk/activesupport/lib/active_support/core_ext/test/unit/assertions.rb (moved) (moved from trunk/activesupport/lib/active_support/core_ext/test/difference.rb)
- trunk/activesupport/lib/active_support/core_ext/time.rb (modified) (1 diff)
- trunk/activesupport/lib/active_support/dependencies.rb (modified) (1 diff)
- trunk/activesupport/test/core_ext/hash_ext_test.rb (modified) (2 diffs)
- trunk/activesupport/test/inflector_test.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/actionmailer/lib/action_mailer/helpers.rb
r4312 r7719 50 50 require_dependency(file_name) 51 51 rescue LoadError => load_error 52 requiree = / -- (.*?)(\.rb)?$/.match(load_error ).to_a[1]52 requiree = / -- (.*?)(\.rb)?$/.match(load_error.message).to_a[1] 53 53 msg = (requiree == file_name) ? "Missing helper file helpers/#{file_name}.rb" : "Can't load file: #{requiree}" 54 54 raise LoadError.new(msg).copy_blame!(load_error) … … 73 73 master_helper_module.module_eval <<-end_eval 74 74 def #{method}(*args, &block) 75 controller.send (%(#{method}), *args, &block)75 controller.send!(%(#{method}), *args, &block) 76 76 end 77 77 end_eval … … 93 93 begin 94 94 child.master_helper_module = Module.new 95 child.master_helper_module.send :include, master_helper_module95 child.master_helper_module.send! :include, master_helper_module 96 96 child.helper child.name.underscore 97 97 rescue MissingSourceFile => e trunk/actionpack/lib/action_controller/assertions.rb
r7602 r7719 47 47 %w(response selector tag dom routing model).each do |kind| 48 48 require "action_controller/assertions/#{kind}_assertions" 49 klass. send :include, const_get("#{kind.camelize}Assertions")49 klass.module_eval { include const_get("#{kind.camelize}Assertions") } 50 50 end 51 51 end trunk/actionpack/lib/action_controller/base.rb
r7668 r7719 393 393 def hidden_actions 394 394 unless read_inheritable_attribute(:hidden_actions) 395 write_inheritable_attribute(:hidden_actions, ActionController::Base.public_instance_methods )395 write_inheritable_attribute(:hidden_actions, ActionController::Base.public_instance_methods.map(&:to_s)) 396 396 end 397 397 … … 401 401 # Hide each of the given methods from being callable as actions. 402 402 def hide_action(*names) 403 write_inheritable_attribute(:hidden_actions, hidden_actions | names. collect { |n| n.to_s })404 end 405 403 write_inheritable_attribute(:hidden_actions, hidden_actions | names.map(&:to_s)) 404 end 405 406 406 407 407 @@view_paths = {} 408 408 409 409 # View load paths determine the bases from which template references can be made. So a call to 410 410 # render("test/template") will be looked up in the view load paths array and the closest match will be … … 845 845 if collection = options[:collection] 846 846 render_for_text( 847 @template.send (:render_partial_collection, partial, collection,847 @template.send!(:render_partial_collection, partial, collection, 848 848 options[:spacer_template], options[:locals]), options[:status] 849 849 ) 850 850 else 851 851 render_for_text( 852 @template.send (:render_partial, partial,852 @template.send!(:render_partial, partial, 853 853 ActionView::Base::ObjectWrapper.new(options[:object]), options[:locals]), options[:status] 854 854 ) … … 857 857 elsif options[:update] 858 858 add_variables_to_assigns 859 @template.send :evaluate_assigns859 @template.send! :evaluate_assigns 860 860 861 861 generator = ActionView::Helpers::PrototypeHelper::JavaScriptGenerator.new(@template, &block) … … 1105 1105 render unless performed? 1106 1106 elsif respond_to? :method_missing 1107 send(:method_missing, action_name)1107 method_missing action_name 1108 1108 render unless performed? 1109 1109 elsif template_exists? && template_public? … … 1136 1136 1137 1137 def self.action_methods 1138 @action_methods ||= Set.new(public_instance_methods - hidden_actions)1138 @action_methods ||= Set.new(public_instance_methods.map(&:to_s)) - hidden_actions 1139 1139 end 1140 1140 trunk/actionpack/lib/action_controller/caching.rb
r7666 r7719 239 239 controller.rendered_action_cache = true 240 240 set_content_type!(controller, cache_path.extension) 241 controller.send (:render_for_text, cache)241 controller.send!(:render_for_text, cache) 242 242 false 243 243 else … … 471 471 if ActionController::Base.allow_concurrency 472 472 @mutex = Mutex.new 473 MemoryStore. send(:include, ThreadSafety)473 MemoryStore.module_eval { include ThreadSafety } 474 474 end 475 475 end … … 561 561 if ActionController::Base.allow_concurrency 562 562 @mutex = Mutex.new 563 FileStore. send(:include, ThreadSafety)563 FileStore.module_eval { include ThreadSafety } 564 564 end 565 565 end … … 643 643 action_callback_method_name = "#{controller_callback_method_name}_#{controller.action_name}" 644 644 645 send (controller_callback_method_name) if respond_to?(controller_callback_method_name)646 send (action_callback_method_name) if respond_to?(action_callback_method_name)645 send!(controller_callback_method_name) if respond_to?(controller_callback_method_name, true) 646 send!(action_callback_method_name) if respond_to?(action_callback_method_name, true) 647 647 end 648 648 649 649 def method_missing(method, *arguments) 650 650 return if @controller.nil? 651 @controller.send (method, *arguments)651 @controller.send!(method, *arguments) 652 652 end 653 653 end trunk/actionpack/lib/action_controller/cgi_process.rb
r7382 r7719 43 43 @cgi = cgi 44 44 @session_options = session_options 45 @env = @cgi.send (:env_table)45 @env = @cgi.send!(:env_table) 46 46 super() 47 47 end … … 139 139 140 140 def method_missing(method_id, *arguments) 141 @cgi.send (method_id, *arguments) rescue super141 @cgi.send!(method_id, *arguments) rescue super 142 142 end 143 143 … … 192 192 output.write(@cgi.header(@headers)) 193 193 194 if @cgi.send (:env_table)['REQUEST_METHOD'] == 'HEAD'194 if @cgi.send!(:env_table)['REQUEST_METHOD'] == 'HEAD' 195 195 return 196 196 elsif @body.respond_to?(:call) trunk/actionpack/lib/action_controller/components.rb
r7438 r7719 37 37 module Components 38 38 def self.included(base) #:nodoc: 39 base.send :include, InstanceMethods 40 base.extend(ClassMethods) 39 base.class_eval do 40 include InstanceMethods 41 extend ClassMethods 41 42 42 base.helper do 43 def render_component(options) 44 @controller.send(:render_component_as_string, options) 43 helper do 44 def render_component(options) 45 @controller.send!(:render_component_as_string, options) 46 end 45 47 end 46 end47 48 48 # If this controller was instantiated to process a component request,49 # +parent_controller+ points to the instantiator of this controller.50 base.send :attr_accessor,:parent_controller49 # If this controller was instantiated to process a component request, 50 # +parent_controller+ points to the instantiator of this controller. 51 attr_accessor :parent_controller 51 52 52 base.class_eval do53 53 alias_method_chain :process_cleanup, :components 54 54 alias_method_chain :set_session_options, :components trunk/actionpack/lib/action_controller/dispatcher.rb
r7641 r7719 72 72 73 73 def log_failsafe_exception(status, exception) 74 message = "/!\ FAILSAFE /!\ #{Time.now}\n Status: #{status}\n"74 message = "/!\\ FAILSAFE /!\\ #{Time.now}\n Status: #{status}\n" 75 75 message << " #{exception}\n #{exception.backtrace.join("\n ")}" if exception 76 76 failsafe_logger.fatal message … … 137 137 138 138 def prepare_application(force = false) 139 require_dependency 'application' unless defined?(::ApplicationController) 139 begin 140 require_dependency 'application' unless defined?(::ApplicationController) 141 rescue LoadError => error 142 raise unless error.message =~ /application\.rb/ 143 end 144 140 145 ActiveRecord::Base.verify_active_connections! if defined?(ActiveRecord) 141 146 … … 167 172 168 173 def run_callbacks(kind, enumerator = :each) 169 callbacks[kind].send (enumerator) do |callback|174 callbacks[kind].send!(enumerator) do |callback| 170 175 case callback 171 176 when Proc; callback.call(self) 172 when String, Symbol; send (callback)177 when String, Symbol; send!(callback) 173 178 when Array; callback[1].call(self) 174 179 else raise ArgumentError, "Unrecognized callback #{callback.inspect}" trunk/actionpack/lib/action_controller/filters.rb
r7438 r7719 2 2 module Filters #:nodoc: 3 3 def self.included(base) 4 base.extend(ClassMethods) 5 base.send(:include, ActionController::Filters::InstanceMethods) 4 base.class_eval do 5 extend ClassMethods 6 include ActionController::Filters::InstanceMethods 7 end 6 8 end 7 9 … … 441 443 # only filters returning false are halted. 442 444 if false == @filter.call(controller) 443 controller.send :halt_filter_chain, @filter, :returned_false445 controller.send! :halt_filter_chain, @filter, :returned_false 444 446 end 445 447 end … … 467 469 class SymbolFilter < Filter #:nodoc: 468 470 def call(controller, &block) 469 controller.send (@filter, &block)471 controller.send!(@filter, &block) 470 472 end 471 473 end … … 657 659 Proc.new do |controller, action| 658 660 if filter.before(controller) == false 659 controller.send :halt_filter_chain, filter, :returned_false661 controller.send! :halt_filter_chain, filter, :returned_false 660 662 else 661 663 begin trunk/actionpack/lib/action_controller/flash.rb
r7428 r7719 26 26 module Flash 27 27 def self.included(base) 28 base.send :include, InstanceMethods29 30 28 base.class_eval do 29 include InstanceMethods 31 30 alias_method_chain :assign_shortcuts, :flash 32 31 alias_method_chain :process_cleanup, :flash trunk/actionpack/lib/action_controller/helpers.rb
r7666 r7719 69 69 # available to the templates. 70 70 def add_template_helper(helper_module) #:nodoc: 71 master_helper_module. send(:include, helper_module)71 master_helper_module.module_eval { include helper_module } 72 72 end 73 73 … … 170 170 private 171 171 def default_helper_module! 172 module_name = name.sub(/Controller$|$/, 'Helper') 173 module_path = module_name.split('::').map { |m| m.underscore }.join('/') 174 require_dependency module_path 175 helper module_name.constantize 172 unless name.blank? 173 module_name = name.sub(/Controller$|$/, 'Helper') 174 module_path = module_name.split('::').map { |m| m.underscore }.join('/') 175 require_dependency module_path 176 helper module_name.constantize 177 end 176 178 rescue MissingSourceFile => e 177 179 raise unless e.is_missing? module_path … … 187 189 begin 188 190 child.master_helper_module = Module.new 189 child.master_helper_module.send :include, master_helper_module190 child.send :default_helper_module!191 child.master_helper_module.send! :include, master_helper_module 192 child.send! :default_helper_module! 191 193 rescue MissingSourceFile => e 192 194 raise unless e.is_missing?("helpers/#{child.controller_path}_helper") trunk/actionpack/lib/action_controller/http_authentication.rb
r7438 r7719 122 122 def authentication_request(controller, realm) 123 123 controller.headers["WWW-Authenticate"] = %(Basic realm="#{realm.gsub(/"/, "")}") 124 controller.send :render, :text => "HTTP Basic: Access denied.\n", :status => :unauthorized125 return false 124 controller.send! :render, :text => "HTTP Basic: Access denied.\n", :status => :unauthorized 125 return false 126 126 end 127 127 end trunk/actionpack/lib/action_controller/integration.rb
r7666 r7719 84 84 # the helpers are made protected by default--we make them public for 85 85 # easier access during testing and troubleshooting. 86 klass. send(:public, *Routing::Routes.named_routes.helpers)86 klass.module_eval { public *Routing::Routes.named_routes.helpers } 87 87 @named_routes_configured = true 88 88 end … … 253 253 254 254 unless ActionController::Base.respond_to?(:clear_last_instantiation!) 255 ActionController::Base. send(:include, ControllerCapture)255 ActionController::Base.module_eval { include ControllerCapture } 256 256 end 257 257 … … 499 499 # reset the html_document variable, but only for new get/post calls 500 500 @html_document = nil unless %w(cookies assigns).include?(method) 501 returning @integration_session.send (method, *args) do501 returning @integration_session.send!(method, *args) do 502 502 copy_session_variables! 503 503 end … … 523 523 name = table_name.tr(".", "_") 524 524 next unless respond_to?(name) 525 extras.send (:define_method, name) { |*args| delegate.send(name, *args) }525 extras.send!(:define_method, name) { |*args| delegate.send(name, *args) } 526 526 end 527 527 528 528 # delegate add_assertion to the test case 529 extras.send (:define_method, :add_assertion) { test_result.add_assertion }529 extras.send!(:define_method, :add_assertion) { test_result.add_assertion } 530 530 session.extend(extras) 531 531 session.delegate = self … … 541 541 return unless @integration_session 542 542 %w(controller response request).each do |var| 543 instance_variable_set("@#{var}", @integration_session.send (var))543 instance_variable_set("@#{var}", @integration_session.send!(var)) 544 544 end 545 545 end … … 548 548 def method_missing(sym, *args, &block) 549 549 reset! unless @integration_session 550 returning @integration_session.send (sym, *args, &block) do550 returning @integration_session.send!(sym, *args, &block) do 551 551 copy_session_variables! 552 552 end trunk/actionpack/lib/action_controller/layout.rb
r7701 r7719 195 195 def inherited_with_layout(child) 196 196 inherited_without_layout(child) 197 layout_match = child.name.underscore.sub(/_controller$/, '').sub(/^controllers\//, '') 198 child.layout(layout_match, {}, true) unless child.layout_list.grep(%r{layouts/#{layout_match}(\.[a-z][0-9a-z]*)+$}).empty? 197 unless child.name.blank? 198 layout_match = child.name.underscore.sub(/_controller$/, '').sub(/^controllers\//, '') 199 child.layout(layout_match, {}, true) unless child.layout_list.grep(%r{layouts/#{layout_match}(\.[a-z][0-9a-z]*)+$}).empty? 200 end 199 201 end 200 202 … … 231 233 active_layout = case layout 232 234 when String then layout 233 when Symbol then send (layout)235 when Symbol then send!(layout) 234 236 when Proc then layout.call(self) 235 237 end … … 317 319 view_paths.find do |path| 318 320 next unless template_path = Dir[File.join(path, 'layouts', layout_name) + ".*"].first 319 self.class.send (:layout_directory_exists_cache)[File.dirname(template_path)]321 self.class.send!(:layout_directory_exists_cache)[File.dirname(template_path)] 320 322 end 321 323 end trunk/actionpack/lib/action_controller/mime_responds.rb
r7681 r7719 2 2 module MimeResponds #:nodoc: 3 3 def self.included(base) 4 base.send(:include, ActionController::MimeResponds::InstanceMethods) 4 base.module_eval do 5 include ActionController::MimeResponds::InstanceMethods 6 end 5 7 end 6 8 trunk/actionpack/lib/action_controller/mime_type.rb
r7520 r7719 60 60 61 61 def register(string, symbol, mime_type_synonyms = [], extension_synonyms = [], skip_lookup = false) 62 Mime. send :const_set, symbol.to_s.upcase, Type.new(string, symbol, mime_type_synonyms)62 Mime.instance_eval { const_set symbol.to_s.upcase, Type.new(string, symbol, mime_type_synonyms) } 63 63 64 SET << Mime. send(:const_get,symbol.to_s.upcase)64 SET << Mime.const_get(symbol.to_s.upcase) 65 65 66 66 ([string] + mime_type_synonyms).each { |string| LOOKUP[string] = SET.last } unless skip_lookup trunk/actionpack/lib/action_controller/polymorphic_routes.rb
r7438 r7719 7 7 8 8 args = case record_or_hash_or_array 9 when Hash :[ record_or_hash_or_array ]10 when Array :record_or_hash_or_array.dup9 when Hash; [ record_or_hash_or_array ] 10 when Array; record_or_hash_or_array.dup 11 11 else [ record_or_hash_or_array ] 12 12 end … … 25 25 26 26 named_route = build_named_route_call(record_or_hash_or_array, namespace, inflection, options) 27 send (named_route, *args)27 send!(named_route, *args) 28 28 end 29 29 … … 56 56 def build_named_route_call(records, namespace, inflection, options = {}) 57 57 records = Array.new([extract_record(records)]) unless records.is_a?(Array) 58 base_segment = "#{RecordIdentifier.send ("#{inflection}_class_name", records.pop)}_"58 base_segment = "#{RecordIdentifier.send!("#{inflection}_class_name", records.pop)}_" 59 59 60 60 method_root = records.reverse.inject(base_segment) do |string, name| 61 segment = "#{RecordIdentifier.send ("singular_class_name", name)}_"61 segment = "#{RecordIdentifier.send!("singular_class_name", name)}_" 62 62 segment << string 63 63 end … … 68 68 def extract_record(record_or_hash_or_array) 69 69 case record_or_hash_or_array 70 when Array :record_or_hash_or_array.last71 when Hash :record_or_hash_or_array[:id]70 when Array; record_or_hash_or_array.last 71 when Hash; record_or_hash_or_array[:id] 72 72 else record_or_hash_or_array 73 73 end trunk/actionpack/lib/action_controller/request.rb
r7502 r7719 110 110 # every Ajax request.) 111 111 def xml_http_request? 112 not /XMLHttpRequest/i.match(@env['HTTP_X_REQUESTED_WITH']).nil?112 !(@env['HTTP_X_REQUESTED_WITH'] !~ /XMLHttpRequest/i) 113 113 end 114 114 alias xhr? :xml_http_request? … … 121 121 # the originating IP. 122 122 # 123 # Security note: Be aware that since remote_ip will check regular HTTP headers, 124 # it can be tricked by anyone setting those manually. In other words, people can 125 # pose as whatever IP address they like to this method. That doesn't matter if 126 # all your doing is using IP addresses for statistical or geographical information, 127 # but if you want to, for example, limit access to an administrative area by IP, 128 # you should instead use Request#remote_addr, which can't be spoofed (but also won't 129 # survive proxy forwards). 123 # Security note: do not use if IP spoofing is a concern for your 124 # application. Since remote_ip checks HTTP headers for addresses forwarded 125 # by proxies, the client may send any IP. remote_addr can't be spoofed but 126 # also doesn't work behind a proxy, since it's always the proxy's IP. 130 127 def remote_ip 131 128 return @env['HTTP_CLIENT_IP'] if @env.include? 'HTTP_CLIENT_IP' … … 223 220 uri << '?' << env_qs 224 221 end 225 @env['REQUEST_URI'] = uri 222 223 if uri.nil? 224 @env.delete('REQUEST_URI') 225 uri 226 else 227 @env['REQUEST_URI'] = uri 228 end 226 229 end 227 230 end trunk/actionpack/lib/action_controller/rescue.rb
r7623 r7719 151 151 @template.instance_variable_set("@exception", exception) 152 152 @template.instance_variable_set("@rescues_path", File.dirname(rescues_path("stub"))) 153 @template.send (:assign_variables_from_controller)153 @template.send!(:assign_variables_from_controller) 154 154 155 155 @template.instance_variable_set("@contents", @template.render_file(template_path_for_local_rescue(exception), false)) trunk/actionpack/lib/action_controller/resources.rb
r7559 r7719 514 514 require_id = !resource.kind_of?(SingletonResource) 515 515 case default_options[:action] 516 when "index", "new" :default_options.merge(add_conditions_for(resource.conditions, method || :get)).merge(resource.requirements)517 when "create" :default_options.merge(add_conditions_for(resource.conditions, method || :post)).merge(resource.requirements)518 when "show", "edit" :default_options.merge(add_conditions_for(resource.conditions, method || :get)).merge(resource.requirements(require_id))519 when "update" :default_options.merge(add_conditions_for(resource.conditions, method || :put)).merge(resource.requirements(require_id))520 when "destroy" :default_options.merge(add_conditions_for(resource.conditions, method || :delete)).merge(resource.requirements(require_id))516 when "index", "new"; default_options.merge(add_conditions_for(resource.conditions, method || :get)).merge(resource.requirements) 517 when "create"; default_options.merge(add_conditions_for(resource.conditions, method || :post)).merge(resource.requirements) 518 when "show", "edit"; default_options.merge(add_conditions_for(resource.conditions, method || :get)).merge(resource.requirements(require_id)) 519 when "update"; default_options.merge(add_conditions_for(resource.conditions, method || :put)).merge(resource.requirements(require_id)) 520 when "destroy"; default_options.merge(add_conditions_for(resource.conditions, method || :delete)).merge(resource.requirements(require_id)) 521 521 else default_options.merge(add_conditions_for(resource.conditions, method)).merge(resource.requirements) 522 522 end … … 525 525 end 526 526 527 ActionController::Routing::RouteSet::Mapper.send :include, ActionController::Resources 527 class ActionController::Routing::RouteSet::Mapper 528 include ActionController::Resources 529 end trunk/actionpack/lib/action_controller/routing.rb
r7599 r7719 1093 1093 @module ||= Module.new 1094 1094 @module.instance_methods.each do |selector| 1095 @module. send :remove_method, selector1095 @module.class_eval { remove_method selector } 1096 1096 end 1097 1097 end … … 1133 1133 def install(destinations = [ActionController::Base, ActionView::Base], regenerate = false) 1134 1134 reset! if regenerate 1135 Array(destinations).each { |dest| dest.send :include, @module } 1135 Array(destinations).each do |dest| 1136 dest.send! :include, @module 1137 end 1136 1138 end 1137 1139 … … 1155 1157 def define_hash_access(route, name, kind, options) 1156 1158 selector = hash_access_name(name, kind) 1157 @module. send :module_eval,<<-end_eval # We use module_eval to avoid leaks1159 @module.module_eval <<-end_eval # We use module_eval to avoid leaks 1158 1160 def #{selector}(options = nil) 1159 1161 options ? #{options.inspect}.merge(options) : #{options.inspect} 1160 1162 end 1163 protected :#{selector} 1161 1164 end_eval 1162 @module.send(:protected, selector)1163 1165 helpers << selector 1164 1166 end … … 1183 1185 # foo_url(bar, baz, bang, :sort_by => 'baz') 1184 1186 # 1185 @module. send :module_eval,<<-end_eval # We use module_eval to avoid leaks1187 @module.module_eval <<-end_eval # We use module_eval to avoid leaks 1186 1188 def #{selector}(*args) 1187 1189 #{generate_optimisation_block(route, kind)} … … 1200 1202 url_for(#{hash_access_method}(opts)) 1201 1203 end 1204 protected :#{selector} 1202 1205 end_eval 1203 @module.send(:protected, selector)1204 1206 helpers << selector 1205 1207 end … … 1233 1235 1234 1236 def install_helpers(destinations = [ActionController::Base, ActionView::Base], regenerate_code = false) 1235 Array(destinations).each { |d| d. send :include, Helpers}1237 Array(destinations).each { |d| d.module_eval { include Helpers } } 1236 1238 named_routes.install(destinations, regenerate_code) 1237 1239 end … … 1363 1365 # Used by caching to expire all paths for a resource 1364 1366 return routes.collect do |route| 1365 route.send (method, options, merged, expire_on)1367 route.send!(method, options, merged, expire_on) 1366 1368 end.compact 1367 1369 end … … 1371 1373 1372 1374 routes.each do |route| 1373 results = route.send (method, options, merged, expire_on)1375 results = route.send!(method, options, merged, expire_on) 1374 1376 return results if results && (!results.is_a?(Array) || results.first) 1375 1377 end trunk/actionpack/lib/action_controller/session_management.rb
r7364 r7719 9 9 module SessionManagement #:nodoc: 10 10 def self.included(base) 11 base.extend(ClassMethods) 12 13 base.send :alias_method_chain, :process, :session_management_support 14 base.send :alias_method_chain, :process_cleanup, :session_management_support 11 base.class_eval do 12 extend ClassMethods 13 alias_method_chain :process, :session_management_support 14 alias_method_chain :process_cleanup, :session_management_support 15 end 15 16 end 16 17 trunk/actionpack/lib/action_controller/test_process.rb
r7478 r7719 358 358 359 359 def method_missing(method_name, *args, &block) #:nodoc: 360 @tempfile.send (method_name, *args, &block)360 @tempfile.send!(method_name, *args, &block) 361 361 end 362 362 end … … 380 380 # understandable error message. 381 381 %w(@controller @request @response).each do |iv_name| 382 if ! instance_variables.include?(iv_name) || instance_variable_get(iv_name).nil?382 if !(instance_variables.include?(iv_name) || instance_variables.include?(iv_name.to_sym)) || instance_variable_get(iv_name).nil? 383 383 raise "#{iv_name} is nil: make sure you set it in your test's setup method." 384 384 end … … 403 403 @request.env['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest' 404 404 @request.env['HTTP_ACCEPT'] = 'text/javascript, text/html, application/xml, text/xml, */*' 405 returning se lf.send(request_method, action, parameters, session, flash) do405 returning send!(request_method, action, parameters, session, flash) do 406 406 @request.env.delete 'HTTP_X_REQUESTED_WITH' 407 407 @request.env.delete 'HTTP_ACCEPT' … … 445 445 def build_request_uri(action, parameters) 446 446 unless @request.env['REQUEST_URI'] 447 options = @controller.send (:rewrite_options, parameters)447 options = @controller.send!(:rewrite_options, parameters) 448 448 options.update(:only_path => true, :action => action) 449 449 … … 467 467 468 468 def method_missing(selector, *args) 469 return @controller.send (selector, *args) if ActionController::Routing::Routes.named_routes.helpers.include?(selector)469 return @controller.send!(selector, *args) if ActionController::Routing::Routes.named_routes.helpers.include?(selector) 470 470 return super 471 471 end … … 503 503 def with_routing 504 504 real_routes = ActionController::Routing::Routes 505 ActionController::Routing. send :remove_const, :Routes505 ActionController::Routing.module_eval { remove_const :Routes } 506 506 507 507 temporary_routes = ActionController::Routing::RouteSet.new 508 ActionController::Routing. send :const_set, :Routes, temporary_routes509 508 ActionController::Routing.module_eval { const_set :Routes, temporary_routes } 509 510 510 yield temporary_routes 511 511 ensure 512 512 if ActionController::Routing.const_defined? :Routes 513 ActionController::Routing. send(:remove_const, :Routes)513 &nb