module RailsExtras::Helpers::Tag

Public Instance Methods

add_tag(name=nil, options_or_content={}, options={}, &block) click to toggle source
# File lib/rails_extras/helpers/tag.rb, line 4
def add_tag(name=nil, options_or_content={}, options={}, &block)
  if block_given?
    options = options_or_content
    if block.arity == 1
      result = ActiveSupport::SafeBuffer.new
      def result.space(text)
        self << text
        self << ' '
      end
      def result.add(text)
        self << text
      end
      block.call(result)
      if name
        content_tag(name, options) do
          result
        end
      else
        result
      end
    else
      if name
        content_tag(name, options) do
          block.call
        end
      else
        block.call
      end
    end
  else
    content_tag(name, options_or_content, options)
  end
end