module Eco module API module Common class BaseLoader extend Eco::API::Common::ClassHelpers class << self attr_writer :name, :type # The name that this case, policy or error handler will have. def name(value = nil) name_only_once! if value set_created_at! return @name ||= self.to_s unless value @name = value end # Sort order def <=>(other) created_at <=> other.created_at end # If still not set, it sets the `created_at` class timestamp. def set_created_at! @created_at = Time.now unless @created_at end # Class creation timestamp, to be able to load them in the order they were declared. def created_at @created_at ||= Time.now end # Prevent the same class to be re-opened/re-named def name_only_once! raise "You have already declared #{self} or you are trying to give it a name twice" if @name end end # This method will be called when the BaseLoader is created # @note # - this method should implement the loading logics for the given `Children` class. def initialize raise "You should implement this method" end def name self.class.name end private def session ASSETS.session end def config session.config end def logger session.logger end def micro session.micro end end end end end