AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

架构训练营 - 模块四作业

伊静西蒙

C#种Dispose和Close有什么不同

喵叔

1月月更

关注和欣赏孩子们

圣迪

孩子 自驱型成长 抑郁症

模块四作业-考试试卷存储方案

CH

架构实战营 #架构实战营

模块四作业

novoer

「架构实战营」

【架构实战营】模块四:命题作业

wgl

「架构实战营」

Flutter:创建一个自动调整大小的 TextField

坚果

flutter 1月月更

Java常用类大讲解!1️⃣(手写API、源码必备)

XiaoLin_Java

1月月更

模块四

黄秀明

「架构实战营」

架构实战营 - 模块 4 课后作业

tony

云原生-模块二-httpserver

hunk

架构实战营模块四作业

Evan

java集合【13】——— Stack源码分析走一波

秦怀杂货店

Java 源码分析 集合

学习Python一年,这次终于弄懂了浅拷贝和深拷贝

宇宙之一粟

Python 浅拷贝和深拷贝 1月月更

040022-week2-algorithm

InfoQ_70156470130f

架构实战营模块四作业

lchx08

「架构实战营」

模块四

浮生若梦

模块四课程作业

李晓笛

架构师第四课作业

墨宝

【架构实战营】模块四:知识点总结

wgl

「架构实战营」

千万级学生管理系统的考试试卷存储方案

糖糖学编程

架构实战营

千万级学生管理系统的考试试卷存储方案

AUV

「架构实战营」

Linux之chgrp命令

入门小站

在线HTML5,CSS3,VueJS,jQuery运行测试练习工具

入门小站

工具

模块四 - 千万级学生管理系统考试试卷存储方案

圈圈gor

架构实战营 「架构实战营」

架构实战营 - 模块 4 - 作业

Pyel

「架构实战营」

Rust - mmap 简单写性能比较测试

rust Mmap

ReactNative进阶(十):WebView 应用详解

No Silver Bullet

webview React Native 1月月更

中年人对酒的看法

wood

300天创作

模块四作业

Anlumina

架构实战

试卷存储和访问架构设计

supermenG

架构师训练营 4 期

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