class Archetype
include ActiveModel::Serialization
attr_accessor :id, :options
def initialize(id, options)
@id = id
@options = options
end
def attributes
{'id' => @id,
'options' => @options}
def self.default
'regular'
def self.poll
'poll'
def self.private_message
'private_message'
def self.list
return [] unless @archetypes.present?
@archetypes.values
def self.register(name, options={})
@archetypes ||= {}
@archetypes[name] = Archetype.new(name, options)
# By default we have a regular archetype and a private message
register 'regular'
register 'private_message'