Sha256: 7e4173bae42815026546101b5c0a0647f1af202f173513bf497111e0108859ed

Contents?: true

Size: 795 Bytes

Versions: 1

Compression:

Stored size: 795 Bytes

Contents

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 = {})
      fail TypeError, 'tag_name must be a String or Symbol' unless [String, Symbol].include?(tag_name.class)
      fail TypeError, 'options must be 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
        content_tag(@tag_name, content, @options)
      else
        tag(@tag_name, @options)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
it-0.8.0 lib/it/tag.rb