discourse/lib/archetype.rb
2017-07-28 10:20:09 +09:00

46 lines
676 B
Ruby

class Archetype
include ActiveModel::Serialization
attr_accessor :id, :options
def initialize(id, options)
@id = id
@options = options
end
def attributes
{
id: @id,
options: @options
}
end
def self.default
'regular'
end
def self.private_message
'private_message'
end
def self.banner
'banner'
end
def self.list
return [] unless @archetypes.present?
@archetypes.values
end
def self.register(name, options = {})
@archetypes ||= {}
@archetypes[name] = Archetype.new(name, options)
end
# default archetypes
register 'regular'
register 'private_message'
register 'banner'
end