50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

为什么SD-WAN成为了组网发展大趋势?

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

课程预告 | 学姐领航,共学PolarDB-X:从入门到精通实操课

阿里云数据库开源

阿里云 分布式数据库 课程 polarDB PolarDB-X

云服务器与云主机的性能对比:优势与应用场景分析

一只扑棱蛾子

云服务器

百度智能云音视频处理产品 MCP 推出数字水印技术,为数字内容资产保驾护航

Baidu AICLOUD

数字水印

HTTP Authorization 头的角色与作用

Liam

程序员 前端 后端 HTTP Authorization

解决 npm install 报错的常见问题

霍格沃兹测试开发学社

一文告诉你Vue的事件处理

霍格沃兹测试开发学社

守护更多女性健康,华为云GeminiDB助力美柚数据库高效稳定迁移

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GeminiDB

GaussDB(DWS)运维利刃:TopSQL工具解析

不在线第一只蜗牛

Java sql 运维

华为各应用发布妇女节专题,一起感受女性创作者的力量

最新动态

流量变现的终极逻辑

老张

副业 码农副业 流量变现

手把手带你认识GaussDB轻量化运维管理工具

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

Docker Logs命令详解

霍格沃兹测试开发学社

SD-WAN能解决企业网络的哪些问题?

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

软件测试学习笔记丨Python语法与数据结构-函数定义与调用

测试人

软件测试

2024上海国际智能科技及创新展览会

AIOTE智博会

科技展 创新展

超算互联网统一存储平台技术研究

Alluxio

Alluxio GPU算力 模型训练优化 超算中心 超算互联网

商业世界的基本法则:通过业务协作提升财务水平

智达方通

企业财务管理

妇女节:打开AI视界,成就“她力量”

飞桨PaddlePaddle

百度 开发者 百度飞桨 女性力量 三八妇女节

Vue router路由设计

霍格沃兹测试开发学社

从注册开始,教你玩转GitHub

霍格沃兹测试开发学社

如何快速上手Vue,一篇文章教会你

霍格沃兹测试开发学社

常见的虚拟化技术有哪些呢?

小齐写代码

AI应用开发:你知道怎么用好pgvector吗(下篇)

张文平

数据库 postgresql AI 开发 pgvector

智能合约开发:比特币智能合约和应用程序综合指南

区块链软件开发推广运营

区块链开发 链游开发 NFT开发 公链开发

SD-WAN保障零售业的持续经营

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

AI应用开发:pgvector在文本搜索中的革命(上篇)

张文平

人工智能 postgresql AI 应用开发 pgvector

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