class Avo::Plugin

def engine

def engine
  "#{namespace}::Engine".safe_constantize
end

def gemspec

def gemspec
  return if engine.blank?
  gemspec_path = Dir["#{engine.root}/*.gemspec"].first
  Gem::Specification::load(gemspec_path)
end

def initialize(*, name:, priority:, **, &block)

def initialize(*, name:, priority:, **, &block)
  @name = name
  @priority = priority
end

def name

def name
  return gemspec.name if gemspec.present?
  self.to_s.split("::").first
end

def namespace

def namespace
  modules = to_s.split("::")
  modules.pop
  modules.join("::")
end

def to_s

def to_s
  "#{name}-#{version}"
end

def version

def version
  "#{namespace}::VERSION".safe_constantize
end