module Rake::Funnel::Support::InstantiateSymbol
Public Class Methods
included(klass)
click to toggle source
# File lib/rake/funnel/support/internal/instantiate_symbol.rb, line 7 def self.included(klass) klass.extend(ClassMethods) klass.send(:instantiate, klass) end
Private Instance Methods
available()
click to toggle source
# File lib/rake/funnel/support/internal/instantiate_symbol.rb, line 40 def available mod.constants.sort end
create(sym, *args)
click to toggle source
# File lib/rake/funnel/support/internal/instantiate_symbol.rb, line 24 def create(sym, *args) # rubocop:disable Metrics/AbcSize return sym unless sym.is_a?(Symbol) found = [sym, sym.pascalize.to_sym] .select { |candidate| mod.constants.include?(candidate) } .first if found.nil? raise NameError, "Unknown type to instantiate: #{sym.inspect}. Available types are: #{available.inspect}" end type = mod.const_get(found) type.new(*args) end
mod()
click to toggle source
# File lib/rake/funnel/support/internal/instantiate_symbol.rb, line 44 def mod self.class.module end