class ActionView::Template::Types::Type

def self.[](type)

def self.[](type)
  return type if type.is_a?(self)
  if type.is_a?(Symbol) || types.member?(type.to_s)
    new(type)
  end
end

def self.register(*t)

def self.register(*t)
  types.merge(t.map { |type| type.to_s })
end

def ==(type)

def ==(type)
  return false if type.blank?
  symbol.to_sym == type.to_sym
end

def initialize(symbol)

def initialize(symbol)
  @symbol = symbol.to_sym
end

def ref

def ref
  to_sym || to_s
end