module It
# A generic class for html tags.
class Tag
include ActionView::Helpers::TagHelper
attr_reader :tag_name, :options
# See It.tag for details. You can do everything there and save 6 characters.
def initialize(tag_name, options = {})
raise TypeError, "tag_name must be specified as a String or Symbol" unless tag_name.is_a?(String) || tag_name.is_a?(Symbol)
raise TypeError, "options must be specified as a Hash" unless options.is_a?(Hash)
@tag_name = tag_name.to_sym
@options = options.symbolize_keys
end
# Will be called from inside the helper to return the tag with the given content.
def process(content = nil) # :nodoc:
if content.nil?
tag(@tag_name, @options)
else
content_tag(@tag_name, content, @options)
end
end
end
end