class ConventionalExtensions::Loader
Experimental RBS support (using type sampling data from the type_fusion
project).
# sig/conventional_extensions/loader.rbs class ConventionalExtensions::Loader def extension_paths: () -> untyped end
def extension_path_for(extension)
def extension_path_for(extension) @path_format % extension.to_s end
def extension_paths
Experimental RBS support (using type sampling data from the type_fusion
project).
def extension_paths: () -> untyped
This signature was generated using 1 sample from 1 application.
def extension_paths Dir.glob extension_path_for("*") end
def initialize(klass, path)
def initialize(klass, path) @loaded, @klass, @matcher = Set.new, klass, /\s*class #{klass.name}/ @path_format = File.join path.sub(/\.rb$/, "/extensions/%s.rb") end
def load(*extensions)
def load(*extensions) paths = extensions.empty? ? extension_paths : extensions.map { extension_path_for _1 } paths.each { load_one _1 } end
def load_one(extension)
def load_one(extension) if @loaded.add?(extension) if contents = File.read(extension) and contents.match?(@matcher) ::Kernel.load extension else @klass.class_eval contents, extension, 0 end end end