Uh oh!
There was an error while loading. Please reload this page.
This repository was archived by the owner on Feb 21, 2025. It is now read-only.
- Notifications
You must be signed in to change notification settings - Fork 86
Developer
Whirlwind edited this page Sep 21, 2022
·
1 revision
与开发标准插件类似,依赖 MBoxContainer 和 MBoxDependencyManager,需要 Hook 三个方法,以 MBoxRuby 添加 Bundler 依赖为例:
// 添加依赖管理工具 Bundler
extensionMBDependencyTool{publicstaticletBundler=MBDependencyTool("Bundler")@_dynamicReplacement(for: allTools)publicstaticvarruby_allTools:[MBDependencyTool]{vartools=self.allTools
tools.insert(.Bundler, at:0)return tools
}}extensionMBWorkRepo{
// 添加对 Bundler 容器的识别
@_dynamicReplacement(for:fetchContainers())openfunc ruby_fetchContainers()->[MBContainer]{varvalue=self.fetchContainers()ifself.path.appending(pathComponent:"Gemfile").isExists {
value.append(MBContainer(name:self.name, tool:.Bundler))}return value
}
// 添加对 Bundler 组件的识别
@_dynamicReplacement(for:resolveDependencyNames())openfunc ruby_resolveDependencyNames()->[(tool:MBDependencyTool, name:String)]{varnames=self.resolveDependencyNames()
// allGemspecPaths 方法获取仓库下所有 gemspec 文件
letdata=self.allGemspecPaths().map{(
tool:MBDependencyTool.Bundler,
name: $0.lastPathComponent.fileName
)}
names.append(contentsOf: data)return names
}}Fork it and send a pull request.
- Contact us with Lark
- Send an email to mbox.develop@gmail.com
- Create an issue