Sha256: 1f58b262ab84b48d19ca6dc0e206d62f809cf4044b66c0c17a604a2f89cdb4a3
Contents?: true
Size: 1.28 KB
Versions: 6
Compression:
Stored size: 1.28 KB
Contents
require 'annotatable' require 'simpleton' require 'radiant/admin_ui' module Radiant class Extension include Simpleton include Annotatable annotate :version, :description, :url, :root, :extension_name attr_writer :active def active? @active end def migrator ExtensionMigrator.new(self) end def admin AdminUI.instance end def meta self.class.meta end class << self def activate_extension return if instance.active? instance.activate if instance.respond_to? :activate ActionController::Routing::Routes.reload instance.active = true end alias :activate :activate_extension def deactivate_extension return unless instance.active? instance.active = false instance.deactivate if instance.respond_to? :deactivate end alias :deactivate :deactivate_extension def define_routes(&block) route_definitions << block end def inherited(subclass) subclass.extension_name = subclass.name.to_name('Extension') end def meta Radiant::ExtensionMeta.find_or_create_by_name(extension_name) end def route_definitions @route_definitions ||= [] end end end end
Version data entries
6 entries across 6 versions & 1 rubygems