class Shanty::Discoverer

Public: Enables discovery of different types of project utilises inherited class method to find all implementing classes

Attributes

discoverers[R]
env[R]

Public Class Methods

inherited(discoverer) click to toggle source
# File lib/shanty/discoverer.rb, line 19
def self.inherited(discoverer)
  Util.logger.debug("Detected project discoverer #{discoverer}")
  @discoverers ||= []
  @discoverers << discoverer
end
new(env) click to toggle source
# File lib/shanty/discoverer.rb, line 15
def initialize(env)
  @env = env
end

Public Instance Methods

discover_all() click to toggle source
# File lib/shanty/discoverer.rb, line 25
def discover_all
  self.class.discoverers.flat_map do |discoverer|
    discoverer.new(env).discover
  end
end

Private Instance Methods

create_project_template(*args) { |pt| ... } click to toggle source
# File lib/shanty/discoverer.rb, line 33
def create_project_template(*args)
  ProjectTemplate.new(Dir.pwd, *args).tap { |pt| yield pt }
end