def define_tag(name, options = {}, &block)
      type = Utility.impartial_hash_delete(options, :type).to_s
      klass = Utility.constantize('Radius::TagDefinitions::' + Utility.camelize(type) + 'TagFactory') rescue raise(ArgumentError.new("Undefined type `#{type}' in options hash"))
      klass.new(self).define_tag(name, options, &block)
    end
def define_tag(name, options = {}, &block)
      type = Utility.impartial_hash_delete(options, :type).to_s
      klass = Utility.constantize('Radius::TagDefinitions::' + Utility.camelize(type) + 'TagFactory') rescue raise(ArgumentError.new("Undefined type `#{type}' in options hash"))
      klass.new(self).define_tag(name, options, &block)
    end
Creates a tag definition on a context. Several options are available to you
 when creating a tag:

 +for+::             Specifies an object that the tag is in reference to. This is
                     applicable when a block is not passed to the tag, or when the
                     +expose+ option is also used.

 +expose+::          Specifies that child tags should be set for each of the methods
                     contained in this option. May be either a single symbol/string or
                     an array of symbols/strings.

 +attributes+::      Specifies whether or not attributes should be exposed
                     automatically. Useful for ActiveRecord objects. Boolean. Defaults
                     to +true+.