lib/haml/helpers/action_view_mods.rb in haml-2.0.10 vs lib/haml/helpers/action_view_mods.rb in haml-2.2.0
- old
+ new
@@ -1,181 +1,174 @@
-if defined?(ActionView) and not defined?(Merb::Plugins)
- module ActionView
- class Base # :nodoc:
- def render_with_haml(*args, &block)
- options = args.first
+module ActionView
+ class Base
+ def render_with_haml(*args, &block)
+ options = args.first
- # If render :layout is used with a block,
- # it concats rather than returning a string
- # so we need it to keep thinking it's Haml
- # until it hits the sub-render
- if is_haml? && !(options.is_a?(Hash) && options[:layout] && block_given?)
- return non_haml { render_without_haml(*args, &block) }
- end
- render_without_haml(*args, &block)
+ # If render :layout is used with a block,
+ # it concats rather than returning a string
+ # so we need it to keep thinking it's Haml
+ # until it hits the sub-render
+ if is_haml? && !(options.is_a?(Hash) && options[:layout] && block_given?)
+ return non_haml { render_without_haml(*args, &block) }
end
- alias_method :render_without_haml, :render
- alias_method :render, :render_with_haml
+ render_without_haml(*args, &block)
+ end
+ alias_method :render_without_haml, :render
+ alias_method :render, :render_with_haml
- # Rails >2.1
- if Haml::Util.has?(:instance_method, self, :output_buffer)
- def output_buffer_with_haml
- return haml_buffer.buffer if is_haml?
- output_buffer_without_haml
- end
- alias_method :output_buffer_without_haml, :output_buffer
- alias_method :output_buffer, :output_buffer_with_haml
+ # Rails >2.1
+ if Haml::Util.has?(:instance_method, self, :output_buffer)
+ def output_buffer_with_haml
+ return haml_buffer.buffer if is_haml?
+ output_buffer_without_haml
+ end
+ alias_method :output_buffer_without_haml, :output_buffer
+ alias_method :output_buffer, :output_buffer_with_haml
- def set_output_buffer_with_haml(new)
- if is_haml?
- haml_buffer.buffer = new
- else
- set_output_buffer_without_haml new
- end
+ def set_output_buffer_with_haml(new)
+ if is_haml?
+ haml_buffer.buffer = new
+ else
+ set_output_buffer_without_haml new
end
- alias_method :set_output_buffer_without_haml, :output_buffer=
- alias_method :output_buffer=, :set_output_buffer_with_haml
end
+ alias_method :set_output_buffer_without_haml, :output_buffer=
+ alias_method :output_buffer=, :set_output_buffer_with_haml
end
+ end
- # This overrides various helpers in ActionView
- # to make them work more effectively with Haml.
- module Helpers
- # :stopdoc:
- # In Rails <=2.1, we've got to override considerable capturing infrastructure.
- # In Rails >2.1, we can make do with only overriding #capture
- # (which no longer behaves differently in helper contexts).
- unless Haml::Util.has?(:instance_method, ActionView::Base, :output_buffer)
- module CaptureHelper
- def capture_with_haml(*args, &block)
- # Rails' #capture helper will just return the value of the block
- # if it's not actually in the template context,
- # as detected by the existance of an _erbout variable.
- # We've got to do the same thing for compatibility.
+ module Helpers
+ # In Rails <=2.1, we've got to override considerable capturing infrastructure.
+ # In Rails >2.1, we can make do with only overriding #capture
+ # (which no longer behaves differently in helper contexts).
+ unless Haml::Util.has?(:instance_method, ActionView::Base, :output_buffer)
+ module CaptureHelper
+ def capture_with_haml(*args, &block)
+ # Rails' #capture helper will just return the value of the block
+ # if it's not actually in the template context,
+ # as detected by the existance of an _erbout variable.
+ # We've got to do the same thing for compatibility.
- if is_haml? && block_is_haml?(block)
- capture_haml(*args, &block)
- else
- capture_without_haml(*args, &block)
- end
+ if is_haml? && block_is_haml?(block)
+ capture_haml(*args, &block)
+ else
+ capture_without_haml(*args, &block)
end
- alias_method :capture_without_haml, :capture
- alias_method :capture, :capture_with_haml
+ end
+ alias_method :capture_without_haml, :capture
+ alias_method :capture, :capture_with_haml
- def capture_erb_with_buffer_with_haml(buffer, *args, &block)
- if is_haml?
- capture_haml(*args, &block)
- else
- capture_erb_with_buffer_without_haml(buffer, *args, &block)
- end
+ def capture_erb_with_buffer_with_haml(buffer, *args, &block)
+ if is_haml?
+ capture_haml(*args, &block)
+ else
+ capture_erb_with_buffer_without_haml(buffer, *args, &block)
end
- alias_method :capture_erb_with_buffer_without_haml, :capture_erb_with_buffer
- alias_method :capture_erb_with_buffer, :capture_erb_with_buffer_with_haml
end
+ alias_method :capture_erb_with_buffer_without_haml, :capture_erb_with_buffer
+ alias_method :capture_erb_with_buffer, :capture_erb_with_buffer_with_haml
+ end
- module TextHelper
- def concat_with_haml(string, binding = nil)
- if is_haml?
- haml_buffer.buffer.concat(string)
- else
- concat_without_haml(string, binding)
- end
+ module TextHelper
+ def concat_with_haml(string, binding = nil)
+ if is_haml?
+ haml_buffer.buffer.concat(string)
+ else
+ concat_without_haml(string, binding)
end
- alias_method :concat_without_haml, :concat
- alias_method :concat, :concat_with_haml
end
- else
- module CaptureHelper
- def capture_with_haml(*args, &block)
- if Haml::Helpers.block_is_haml?(block)
- capture_haml(*args, &block)
- else
- capture_without_haml(*args, &block)
- end
+ alias_method :concat_without_haml, :concat
+ alias_method :concat, :concat_with_haml
+ end
+ else
+ module CaptureHelper
+ def capture_with_haml(*args, &block)
+ if Haml::Helpers.block_is_haml?(block)
+ capture_haml(*args, &block)
+ else
+ capture_without_haml(*args, &block)
end
- alias_method :capture_without_haml, :capture
- alias_method :capture, :capture_with_haml
end
+ alias_method :capture_without_haml, :capture
+ alias_method :capture, :capture_with_haml
end
+ end
- module TagHelper
- def content_tag_with_haml(name, *args, &block)
- return content_tag_without_haml(name, *args, &block) unless is_haml?
+ module TagHelper
+ def content_tag_with_haml(name, *args, &block)
+ return content_tag_without_haml(name, *args, &block) unless is_haml?
- preserve = haml_buffer.options[:preserve].include?(name.to_s)
+ preserve = haml_buffer.options[:preserve].include?(name.to_s)
- if block_given? && block_is_haml?(block) && preserve
- return content_tag_without_haml(name, *args) {preserve(&block)}
- end
-
- returning content_tag_without_haml(name, *args, &block) do |content|
- return Haml::Helpers.preserve(content) if preserve && content
- end
+ if block_given? && block_is_haml?(block) && preserve
+ return content_tag_without_haml(name, *args) {preserve(&block)}
end
- alias_method :content_tag_without_haml, :content_tag
- alias_method :content_tag, :content_tag_with_haml
+ returning content_tag_without_haml(name, *args, &block) do |content|
+ return Haml::Helpers.preserve(content) if preserve && content
+ end
end
- class InstanceTag
- # Includes TagHelper
+ alias_method :content_tag_without_haml, :content_tag
+ alias_method :content_tag, :content_tag_with_haml
+ end
- def haml_buffer
- @template_object.send :haml_buffer
- end
+ class InstanceTag
+ # Includes TagHelper
- def is_haml?
- @template_object.send :is_haml?
- end
-
- alias_method :content_tag_without_haml, :content_tag
- alias_method :content_tag, :content_tag_with_haml
+ def haml_buffer
+ @template_object.send :haml_buffer
end
- module FormTagHelper
- def form_tag_with_haml(url_for_options = {}, options = {}, *parameters_for_url, &proc)
- if is_haml?
- if block_given?
- oldproc = proc
- proc = haml_bind_proc do |*args|
- concat "\n"
- tab_up
- oldproc.call(*args)
- tab_down
- concat haml_indent
- end
- concat haml_indent
- end
- res = form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc) + "\n"
- concat "\n" if block_given?
- res
- else
- form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc)
- end
- end
- alias_method :form_tag_without_haml, :form_tag
- alias_method :form_tag, :form_tag_with_haml
+ def is_haml?
+ @template_object.send :is_haml?
end
- module FormHelper
- def form_for_with_haml(object_name, *args, &proc)
- if block_given? && is_haml?
+ alias_method :content_tag_without_haml, :content_tag
+ alias_method :content_tag, :content_tag_with_haml
+ end
+
+ module FormTagHelper
+ def form_tag_with_haml(url_for_options = {}, options = {}, *parameters_for_url, &proc)
+ if is_haml?
+ if block_given?
oldproc = proc
proc = haml_bind_proc do |*args|
+ concat "\n"
tab_up
oldproc.call(*args)
tab_down
concat haml_indent
end
concat haml_indent
end
- form_for_without_haml(object_name, *args, &proc)
- concat "\n" if block_given? && is_haml?
+ res = form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc) + "\n"
+ concat "\n" if block_given?
+ res
+ else
+ form_tag_without_haml(url_for_options, options, *parameters_for_url, &proc)
end
- alias_method :form_for_without_haml, :form_for
- alias_method :form_for, :form_for_with_haml
end
- # :startdoc:
+ alias_method :form_tag_without_haml, :form_tag
+ alias_method :form_tag, :form_tag_with_haml
end
+
+ module FormHelper
+ def form_for_with_haml(object_name, *args, &proc)
+ if block_given? && is_haml?
+ oldproc = proc
+ proc = haml_bind_proc do |*args|
+ tab_up
+ oldproc.call(*args)
+ tab_down
+ concat haml_indent
+ end
+ concat haml_indent
+ end
+ form_for_without_haml(object_name, *args, &proc)
+ concat "\n" if block_given? && is_haml?
+ end
+ alias_method :form_for_without_haml, :form_for
+ alias_method :form_for, :form_for_with_haml
+ end
end
end
-