Sha256: f534d13b8507fec456ff82c05e2a47c80bb1475e843e0e9fec2b0076197af28a
Contents?: true
Size: 1.44 KB
Versions: 9
Compression:
Stored size: 1.44 KB
Contents
require 'annotatable' require 'simpleton' #require 'radiant/admin_ui' module Spree 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 =begin def admin AdminUI.instance end =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 add_hooks_listener instance.active = true end alias :activate :activate_extension def define_routes(&block) route_definitions << block end def add_hooks_listener hooks_name = "#{name.underscore.gsub(/_extension$/, '')}_hooks" if File.exists?(File.join(root, "#{hooks_name}.rb")) hooks_class = hooks_name.camelize.constantize hooks_class.unloadable Spree::ThemeSupport::Hook.add_listener(hooks_class) end end def inherited(subclass) subclass.extension_name = subclass.name.to_name('Extension') end def meta Spree::ExtensionMeta.find_or_create_by_name(extension_name) end def route_definitions @route_definitions ||= [] end end end end
Version data entries
9 entries across 9 versions & 1 rubygems