aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2006-03-13 01:33:57 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2006-03-13 01:33:57 +0000
commit06c2b43f36c84ddd3e17ada057b3dc621d4140f0 (patch)
treeba628a35089b46623f7d8ca3cfec68aa24cece4a /actionpack/lib/action_view
parentc5d5c4f708ab72b8ba9825017b854b02e0c8481c (diff)
downloadrails-06c2b43f36c84ddd3e17ada057b3dc621d4140f0.tar.gz
rails-06c2b43f36c84ddd3e17ada057b3dc621d4140f0.tar.bz2
rails-06c2b43f36c84ddd3e17ada057b3dc621d4140f0.zip
Rendering xml shouldnt happen inside any layout. Added class proxying to RJS, so you can call page.field.clear("my_field") to generate Field.clear("my_field");. Added :content_type option to render, so you can change the content type on the fly. Do type/subtype reordering of Accept header preferences for xml types (aka make Firefox work with respond_to). CHANGED DEFAULT: The default content type for .rxml is now application/xml instead of type/xml, see http://www.xml.com/pub/a/2004/07/21/dive.html for reason
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3852 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/lib/action_view')
-rw-r--r--actionpack/lib/action_view/base.rb2
-rw-r--r--actionpack/lib/action_view/helpers/prototype_helper.rb42
2 files changed, 24 insertions, 20 deletions
diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb
index d2f4764575..95afff0e84 100644
--- a/actionpack/lib/action_view/base.rb
+++ b/actionpack/lib/action_view/base.rb
@@ -406,7 +406,7 @@ module ActionView #:nodoc:
body = case extension.to_sym
when :rxml
"xml = Builder::XmlMarkup.new(:indent => 2)\n" +
- "@controller.headers['Content-Type'] ||= 'text/xml'\n" +
+ "@controller.headers['Content-Type'] ||= 'application/xml'\n" +
template
when :rjs
"@controller.headers['Content-Type'] ||= 'text/javascript'\n" +
diff --git a/actionpack/lib/action_view/helpers/prototype_helper.rb b/actionpack/lib/action_view/helpers/prototype_helper.rb
index 113ddc8739..1f6aa274db 100644
--- a/actionpack/lib/action_view/helpers/prototype_helper.rb
+++ b/actionpack/lib/action_view/helpers/prototype_helper.rb
@@ -618,29 +618,33 @@ module ActionView
end
private
- def page
- self
- end
+ def page
+ self
+ end
- def record(line)
- returning line = "#{line.to_s.chomp.gsub /\;$/, ''};" do
- self << line
+ def record(line)
+ returning line = "#{line.to_s.chomp.gsub /\;$/, ''};" do
+ self << line
+ end
end
- end
- def render(*options_for_render)
- Hash === options_for_render.first ?
- @context.render(*options_for_render) :
- options_for_render.first.to_s
- end
+ def render(*options_for_render)
+ Hash === options_for_render.first ?
+ @context.render(*options_for_render) :
+ options_for_render.first.to_s
+ end
- def javascript_object_for(object)
- object.respond_to?(:to_json) ? object.to_json : object.inspect
- end
+ def javascript_object_for(object)
+ object.respond_to?(:to_json) ? object.to_json : object.inspect
+ end
- def arguments_for_call(arguments)
- arguments.map { |argument| javascript_object_for(argument) }.join ', '
- end
+ def arguments_for_call(arguments)
+ arguments.map { |argument| javascript_object_for(argument) }.join ', '
+ end
+
+ def method_missing(method, *arguments)
+ JavaScriptProxy.new(self, method.to_s.camelize)
+ end
end
end
@@ -718,7 +722,7 @@ module ActionView
if method.to_s =~ /(.*)=$/
assign($1, arguments.first)
else
- call("#{method.to_s.first}#{method.to_s.classify[1..-1]}", *arguments)
+ call("#{method.to_s.first}#{method.to_s.camelize[1..-1]}", *arguments)
end
end