discourse/lib/archetype.rb

49 lines
771 B
Ruby
Raw Normal View History

# frozen_string_literal: true
2013-02-05 13:16:51 -06:00
class Archetype
include ActiveModel::Serialization
attr_accessor :id, :options
def initialize(id, options)
@id = id
2013-02-25 10:42:20 -06:00
@options = options
2013-02-05 13:16:51 -06:00
end
def attributes
{ id: @id, options: @options }
2013-02-05 13:16:51 -06:00
end
def self.default
"regular"
2013-02-05 13:16:51 -06:00
end
def self.private_message
"private_message"
2013-02-05 13:16:51 -06:00
end
2014-06-16 09:17:27 -05:00
def self.banner
"banner"
2014-06-16 09:17:27 -05:00
end
2013-02-05 13:16:51 -06:00
def self.list
return [] if @archetypes.blank?
2013-02-05 13:16:51 -06:00
@archetypes.values
end
2017-07-27 20:20:09 -05:00
def self.register(name, options = {})
2013-02-05 13:16:51 -06:00
@archetypes ||= {}
@archetypes[name] = Archetype.new(name, options)
end
def self.deregister(name)
@archetypes ||= {}
@archetypes.delete(name)
end
2014-06-16 09:17:27 -05:00
# default archetypes
register "regular"
register "private_message"
register "banner"
2013-02-05 13:16:51 -06:00
end