写点什么

RubyGems 新增对 Plugins 的支持

  • 2009-05-04
  • 本文字数:970 字

    阅读完需:约 3 分钟

最近发布的 RubyGems1.3.2 版本绝不仅仅只是一个 Bug 修复版,它还包括了一些新的功能:

在 RubyGems 1.3.2 中,RubyGems 可以加载安装在 gems 或者 $LOAD_PATH 中的插件。插件的名字必须以‘rubygems_plugin’的形式命名,然后 Gem::find_files 才能找到这个插件并且加载。

Ryan Davis 介绍了一个例子: Graph plugin 生成了一个所有已安装的 Gems 的依赖和信息图(过时的,或者即将需要的依赖)。

我们采访了 RubyGems 的维护者 Eric Hodel,来了解关于 RubyGems 插件的更多细节:

这个特性要求 RubyGems 的开发者加入很多人们希望加入的功能,有些功能是可以作为一个单独的包来完成。在安装的时候程序也可以做一些事情,或者要求用户来手动进行干涉。 这个插件最开始是一个 Neil Wilson 编写的补丁,这个插件能够将安装的钩子添加到 Debian 的 RubyGems 中,使得两者更加方便地集成。使用他的插件,我们需要添加两个特定的文件,这样 RubyGems 就能够在启动的时候尝试请求 ruby 包管理器的 rubygems/defaults/operating_system.rb 和 ruby 实现器的 rubygems/defaults/#{RUBY_ENGINE}.rb 来添加特定功能。例如,Rubinius 能够在 gem 中预编译所有的.rb 文件以减少启动时间。

大约在同一时间,我加入了 Gem.find_files 允许 gem 作者方便地构建他们自己的插件系统。RDoc 就是使用这个来自动地加载其插件。

由于它在 RDoc 上表现得非常优秀,所以我决定在 RubyGems 中也加入相同的功能。

我不会试图让插件能够广泛地挂载到 RubyGems 每一个可能的地方。我确定开发者非常希望能够挂载到那些现在不易存取的领域,我希望他们能够提交一些新特性请求,帮助我来改进 RubyGems。对我来说,为一个插件改进 API 比维护一个全新的特性容易得多。

我的愿望是富有创造力的开发者能够提供无需我在 RubyGems 提供并且维护的令人惊喜的有用功能。

除了 Graph 插件,也有一个叫做 rubypan 的插件,它在 rubypan.org 上寻找 gem。它们能够工作在“一个能够创建 OS X 字典的插件”上,这个插件所依赖的 ri 数据能够在你安装或者卸载 gem 的时候自动更新。

插件作者能够将插件挂载到 RubyGems 的安装或者卸载前后的过程,详细见 Gem 文档。编写一个自己的 command 插件是非常简单的:编写一个 Command 的子类,然后将其注册到 Gem::CommandManager

你肯错过 RubyGems 中插件提供的特性吗?

查看英文原文: RubyGems Gets Plugins

2009-05-04 00:241119
用户头像

发布了 90 篇内容, 共 35.2 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

Partisia Blockchain 质押 APR 教程一览,可以随时取消

大瞿科技

CSS布局概念与技术教程

不在线第一只蜗牛

CSS 前端 布局

虚拟云桌面是否适合部署在学校机房

青椒云云电脑

云桌面 虚拟云桌面系统

软件测试学习笔记丨黑盒测试-等价类划分

测试人

软件测试 测试开发 测试用例 黑盒测试 等价类

DevOps 进阶实践课,连续 4 期,看看有你想听的吗?

阿里巴巴云原生

阿里云 DevOps 云原生

前端面试题 - vue的双向绑定原理是什么?

Geek_fed966

HUAWEI Pura 70系列搭载HarmonyOS 4.2,玩转小艺AI智慧体验!

Geek_2d6073

流水线 YAML 高级用法来了!大幅降低重复代码、灵活编排多任务

阿里巴巴云原生

阿里云 云原生 yaml

桌面虚拟化的技术架构全解析

青椒云云电脑

桌面云 云桌面 云桌面解决方案 虚拟云桌面系统

选云桌面厂家,该怎么挑?

青椒云云电脑

云桌面 云桌面厂家

云桌面的三大基本架构

青椒云云电脑

桌面云 云桌面 云桌面解决方案

学校选择云桌面厂家需要考虑哪些因素?

青椒云云电脑

云桌面 云桌面厂家 云桌面系统

科普:DO-178B

DevOps和数字孪生

航空航天 DO-178B

流水线 YAML 高级用法来了!大幅降低重复代码、灵活编排多任务

阿里云云效

阿里云 云原生 云效

TikTok直播可能遇到的问题以及解决方案

Ogcloud

TikTok Tik Tok tiktok运营 tiktok直播

桌面云服务是什么?桌面云服务厂家推荐

青椒云云电脑

桌面云 云桌面 云桌面厂家 桌面云服务

Partisia Blockchain 质押 APR 教程一览,可以随时取消

加密眼界

5月21日相聚上海张江!与文心大模型一起共建大模型产业应用生态圈

飞桨PaddlePaddle

百度 飞桨 大模型 文心一言 文心中国行

DevOps 进阶实践课,连续 4 期,看看有你想听的吗?

阿里云云效

阿里云 DevOps 云原生

组织架构图如何制作?用这个AI绘图软件一键生成!

彭宏豪95

人工智能 在线白板 AIGC 绘图软件 组织架构图

Java面试题:让依赖注入变得简单,面对@Autowired和@Resource,该如何选择?

EquatorCoco

桌面虚拟化的技术架构全解析

青椒云云电脑

桌面云 云桌面 云桌面解决方案 虚拟云桌面系统

软件测试学习笔记丨黑盒测试方法论-判定表

测试人

软件测试

关于spring与springmvc整合

伤感汤姆布利柏

从内存泄露聊聊python内存管理

我再BUG界嘎嘎乱杀

Python 编程语言 内存管理 开发语言

百度百舸 AIAK-LLM 的大模型训练和推理加速实践

百度Geek说

百度 大模型 企业号 5 月 PK 榜 企业号2024年5月PK榜

云桌面部署注意事项

青椒云云电脑

桌面云 云桌面 云桌面解决方案

eBPF革命:定义网络虚拟化的第三阶段

品高云计算

RubyGems新增对Plugins的支持_Ruby_Mirko Stocker_InfoQ精选文章