写点什么

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:241077
用户头像

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

关注

评论

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

跨境电商ERP也爆单,分布式新型数据库迎战

OceanBase 数据库

数据库 oceanbase

web前端培训学习后还有做前端开发的吗

小谷哥

SQL面试 100 问

FunTester

1000 种兴趣和 1000 个兴趣小组 | 学点战略

赵新龙

TGO鲲鹏会 CTO 战略

云原生微服务治理技术朝无代理架构的演进之路

华为云开发者联盟

云计算 云原生 后端 华为云 微服务治理

ShareSDK Android端权限说明

MobTech袤博科技

行业分析| 实时音视频的多种用法

anyRTC开发者

音视频 实时音视频 实时通信 语音通话 视频通话

W3C发布小程序技术标准白皮书

Onegun

小程序 微信小程序

元宇宙赛道逐渐清晰,虚实世界如何“破壁”?

旺链科技

区块链 产业区块链 元宇宙

大数据培训前景怎么样?

小谷哥

谈谈我工作中的23个设计模式

阿里巴巴云原生

阿里云 云原生 技术文章

教育机构客户管理系统功能方案详解!

优秀

CRM系统 客户关系管理系统

如何在几百万qps的网关服务中实现灵活调度策略

百度Geek说

网关 调度 动态配置 12 月 PK 榜

移动跨端框架发展史及优劣对比

FinFish

前端框架 跨端框架 移动端跨端 跨端发展

华夏天信携手华为云开天aPaaS,打造安全、高效、节能的主煤流运输系统

华为云开发者联盟

云计算 后端 华为云

1亿条数据批量插入 MySQL,哪种方式最快?

小小怪下士

Java MySQL 程序员

大数据培训程序员都去做什么了

小谷哥

火山引擎VeDI推出这款产品 助力企业实现以“人”为中心的数据洞察

字节跳动数据平台

大数据 数据分析 火山引擎

PGL图学习之基于GNN模型新冠疫苗任务[系列九]

汀丶人工智能

图神经网络 GNN 11月月更

上新啦KIT

HarmonyOS SDK

HMS Core

技术实战:初创项目前端框架选型

FinFish

前端开发 前端框架 技术选型 移动开发

异常捕获中finally和return的用法

自由呼吸

Java 11月月更

Function源码解析与实践

京东科技开发者

编程语言 Function 编程‘’ 后端、

什么?Coolbpf 不仅可以远程编译,还可以发现网络抖动! | 龙蜥技术

OpenAnolis小助手

Linux 开源 ebpf coolbpf 龙蜥峰会

报名即将结束!11 大云原生领域开源技术干货一场拿下

阿里巴巴云原生

阿里云 开源 容器 微服务 云原生

预告|2022 星策 Summit 首批嘉宾确认,大会火热报名中!

星策开源社区

机器学习 开源 数字化 管理层 企业转型

前端培训中应该怎么学习web前端

小谷哥

移动跨平台技术方案选型建议

Onegun

移动端 跨端开发 跨端框架

前端哪个培训学习比较好?

小谷哥

要想后期修改少,代码重构要趁早

华为云开发者联盟

云计算 后端 华为云

KVC原理与数据筛选

京东科技开发者

后端 数据处理 KV存储引擎 KV查询

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