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