写点什么

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

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

关注

评论

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

原型设计工具:Axure RP 9 for Mac/win 中文激活版

你的猪会飞吗

axure rp9下载 axure rp9安装教程

win版IObit Uninstaller Pro(强力卸载软件) v13.6.0.2 特别版

iMac小白

win版OneCommander Pro(双窗口文件管理工具) v3.85.0 特别版

iMac小白

专业的视频剪辑软件Final Cut Pro for Mac(fcp专业视频后期制作)

Mac相关知识分享

Mac 视频剪辑 Mac软件

淘宝搜索API返回值分析:关键字搜索助力电商业务增长

技术冰糖葫芦

API Explorer api 货币化 API 协议 API 管理 pinduoduo API

win版Typora (轻量级 Markdown 编辑器) v1.9.3 激活版

iMac小白

win版Intelligent Editing PerfectIt Pro 5(文本打样软件) v5.9.3 特别版

iMac小白

Cookie for Mac(浏览器缓存清理工具) v7.3.3版

Mac相关知识分享

Mac软件 浏览器缓存清理 软件下载

Ample Sound Ample Guitar PF for Mac(吉他原声多类型音频工具)

Mac相关知识分享

音频工具 Mac音频处理

Tuxera NTFS 2021 for Mac(NTFS磁盘格式读写工具)

Mac相关知识分享

Mac软件 磁盘格式读写软件

为什么选择 ICO 开发作为 2024 年您的代币销售?

区块链软件开发推广运营

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

win版ZWCAD Architecture(中望CAD) 2024 v2024 SP1.3(x64)特别版

iMac小白

win版LightBurn(激光切割软件) v1.6.02 中文特别版

iMac小白

win版BluffTitler Ultimate16(3D文字制作软件) v16.6.0 特别版

iMac小白

Typora for Mac(Markdown文本编辑器) v1.9.3版

Mac相关知识分享

mac软件下载

Microsoft Excel 2019 for Mac(excel电子表格)

Mac相关知识分享

办公软件 Excel表格

win版DP Animation Maker(动画制作器) v3.5.29 特别版

iMac小白

win版Aiseesoft Video Converter Ultimate(万能视频转换器) v10.8.38 (x64)激活版

iMac小白

win版Icecream PDF Editor Pro(pdf编辑器) v3.26 激活版

iMac小白

win版Driver Talent Pro (驱动人生) v8.1.11.48 特别版

iMac小白

Steinberg SpectraLayers Pro for mac(Mac音频频谱编辑器)

Mac相关知识分享

Mac软件 音频编辑

SourceTree for Mac(Git客户端工具)

Mac相关知识分享

Mac软件 mac软件下载

Visio Viewer for Mac(Visio文件查看工具)

Mac相关知识分享

Mac软件 文件查看工具

QtiPlot for Mac(科学数据分析和可视化软件)

Mac相关知识分享

Mac软件 软件下载

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