aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_view')
-rw-r--r--actionpack/lib/action_view/base.rb23
-rw-r--r--actionpack/lib/action_view/helpers/text_helper.rb83
-rw-r--r--actionpack/lib/action_view/test_case.rb14
3 files changed, 15 insertions, 105 deletions
diff --git a/actionpack/lib/action_view/base.rb b/actionpack/lib/action_view/base.rb
index 7dd9dea358..5fa1b5619b 100644
--- a/actionpack/lib/action_view/base.rb
+++ b/actionpack/lib/action_view/base.rb
@@ -158,7 +158,6 @@ module ActionView #:nodoc:
end
include Helpers, Rendering, Partials, Layouts, ::ERB::Util, Context
- extend ActiveSupport::Memoizable
# Specify whether RJS responses should be wrapped in a try/catch block
# that alert()s the caught exception (and then re-raises it).
@@ -170,9 +169,6 @@ module ActionView #:nodoc:
@@field_error_proc = Proc.new{ |html_tag, instance| "<div class=\"field_with_errors\">#{html_tag}</div>".html_safe }
class_attribute :helpers
- remove_method :helpers
- attr_reader :helpers
-
class_attribute :_router
class << self
@@ -201,20 +197,21 @@ module ActionView #:nodoc:
end
def self.process_view_paths(value)
- return value.dup if value.is_a?(PathSet)
- ActionView::PathSet.new(Array.wrap(value))
+ value.is_a?(PathSet) ?
+ value.dup : ActionView::PathSet.new(Array.wrap(value))
end
def initialize(lookup_context = nil, assigns_for_first_render = {}, controller = nil, formats = nil) #:nodoc:
- @config = nil
- @assigns = assigns_for_first_render.each { |key, value| instance_variable_set("@#{key}", value) }
- @helpers = self.class.helpers || Module.new
+ self.assigns = assigns_for_first_render.each { |key, value| instance_variable_set("@#{key}", value) }
+ self.helpers = self.class.helpers || Module.new
if @_controller = controller
@_request = controller.request if controller.respond_to?(:request)
end
- @_config = ActiveSupport::InheritableOptions.new(controller.config) if controller && controller.respond_to?(:config)
+ config = controller && controller.respond_to?(:config) ? controller.config : {}
+ @_config = ActiveSupport::InheritableOptions.new(config)
+
@_content_for = Hash.new { |h,k| h[k] = ActiveSupport::SafeBuffer.new }
@_virtual_path = nil
@output_buffer = nil
@@ -228,12 +225,6 @@ module ActionView #:nodoc:
@controller_path ||= controller && controller.controller_path
end
- def punctuate_body!(part)
- flush_output_buffer
- response.body_parts << part
- nil
- end
-
ActiveSupport.run_load_hooks(:action_view, self)
end
end
diff --git a/actionpack/lib/action_view/helpers/text_helper.rb b/actionpack/lib/action_view/helpers/text_helper.rb
index 8f63845d49..a06073ce66 100644
--- a/actionpack/lib/action_view/helpers/text_helper.rb
+++ b/actionpack/lib/action_view/helpers/text_helper.rb
@@ -220,89 +220,6 @@ module ActionView
end * "\n"
end
- # Returns the text with all the Textile[http://www.textism.com/tools/textile] codes turned into HTML tags.
- #
- # You can learn more about Textile's syntax at its website[http://www.textism.com/tools/textile].
- # <i>This method is only available if RedCloth[http://redcloth.org/] is available</i>.
- #
- # ==== Examples
- # textilize("*This is Textile!* Rejoice!")
- # # => "<p><strong>This is Textile!</strong> Rejoice!</p>"
- #
- # textilize("I _love_ ROR(Ruby on Rails)!")
- # # => "<p>I <em>love</em> <acronym title="Ruby on Rails">ROR</acronym>!</p>"
- #
- # textilize("h2. Textile makes markup -easy- simple!")
- # # => "<h2>Textile makes markup <del>easy</del> simple!</h2>"
- #
- # textilize("Visit the Rails website "here":http://www.rubyonrails.org/.)
- # # => "<p>Visit the Rails website <a href="http://www.rubyonrails.org/">here</a>.</p>"
- #
- # textilize("This is worded <strong>strongly</strong>")
- # # => "<p>This is worded <strong>strongly</strong></p>"
- #
- # textilize("This is worded <strong>strongly</strong>", :filter_html)
- # # => "<p>This is worded &lt;strong&gt;strongly&lt;/strong&gt;</p>"
- #
- def textilize(text, *options)
- options ||= [:hard_breaks]
- text = sanitize(text) unless text.html_safe? || options.delete(:safe)
-
- if text.blank?
- ""
- else
- textilized = RedCloth.new(text, options)
- textilized.to_html
- end.html_safe
- end
-
- # Returns the text with all the Textile codes turned into HTML tags,
- # but without the bounding <p> tag that RedCloth adds.
- #
- # You can learn more about Textile's syntax at its website[http://www.textism.com/tools/textile].
- # <i>This method is only available if RedCloth[http://redcloth.org/] is available</i>.
- #
- # ==== Examples
- # textilize_without_paragraph("*This is Textile!* Rejoice!")
- # # => "<strong>This is Textile!</strong> Rejoice!"
- #
- # textilize_without_paragraph("I _love_ ROR(Ruby on Rails)!")
- # # => "I <em>love</em> <acronym title="Ruby on Rails">ROR</acronym>!"
- #
- # textilize_without_paragraph("h2. Textile makes markup -easy- simple!")
- # # => "<h2>Textile makes markup <del>easy</del> simple!</h2>"
- #
- # textilize_without_paragraph("Visit the Rails website "here":http://www.rubyonrails.org/.)
- # # => "Visit the Rails website <a href="http://www.rubyonrails.org/">here</a>."
- def textilize_without_paragraph(text, *options)
- textiled = textilize(text, *options)
- if textiled[0..2] == "<p>" then textiled = textiled[3..-1] end
- if textiled[-4..-1] == "</p>" then textiled = textiled[0..-5] end
- return textiled
- end
-
- # Returns the text with all the Markdown codes turned into HTML tags.
- # <i>This method requires BlueCloth[http://www.deveiate.org/projects/BlueCloth]
- # to be available</i>.
- #
- # ==== Examples
- # markdown("We are using __Markdown__ now!")
- # # => "<p>We are using <strong>Markdown</strong> now!</p>"
- #
- # markdown("We like to _write_ `code`, not just _read_ it!")
- # # => "<p>We like to <em>write</em> <code>code</code>, not just <em>read</em> it!</p>"
- #
- # markdown("The [Markdown website](http://daringfireball.net/projects/markdown/) has more information.")
- # # => "<p>The <a href="http://daringfireball.net/projects/markdown/">Markdown website</a>
- # # has more information.</p>"
- #
- # markdown('![The ROR logo](http://rubyonrails.com/images/rails.png "Ruby on Rails")')
- # # => '<p><img src="http://rubyonrails.com/images/rails.png" alt="The ROR logo" title="Ruby on Rails" /></p>'
- def markdown(text, *options)
- text = sanitize(text) unless text.html_safe? || options.delete(:safe)
- (text.blank? ? "" : BlueCloth.new(text).to_html).html_safe
- end
-
# Returns +text+ transformed into HTML using simple formatting rules.
# Two or more consecutive newlines(<tt>\n\n</tt>) are considered as a
# paragraph and wrapped in <tt><p></tt> tags. One newline (<tt>\n</tt>) is
diff --git a/actionpack/lib/action_view/test_case.rb b/actionpack/lib/action_view/test_case.rb
index 4dbbd2eb6a..15d424be74 100644
--- a/actionpack/lib/action_view/test_case.rb
+++ b/actionpack/lib/action_view/test_case.rb
@@ -131,12 +131,14 @@ module ActionView
end
def _view
- view = ActionView::Base.new(ActionController::Base.view_paths, _assigns, @controller)
- view.singleton_class.send :include, _helpers
- view.singleton_class.send :include, @controller._router.url_helpers
- view.singleton_class.send :delegate, :alert, :notice, :to => "request.flash"
- view.output_buffer = self.output_buffer
- view
+ @_view ||= begin
+ view = ActionView::Base.new(ActionController::Base.view_paths, _assigns, @controller)
+ view.singleton_class.send :include, _helpers
+ view.singleton_class.send :include, @controller._router.url_helpers
+ view.singleton_class.send :delegate, :alert, :notice, :to => "request.flash"
+ view.output_buffer = self.output_buffer
+ view
+ end
end
EXCLUDE_IVARS = %w{