大厂Data+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:241331
用户头像

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

关注

评论

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

全面解析 Coco AI,一款开源、免费的智能搜索与知识库工具

极限实验室

直播 CocoAI

鲲鹏开发者峰会2025成功举办

科技热闻

以利他共赢实现和合共生珠海万达商管东区品牌峰会圆满举办

新消费日报

《算法导论(第4版)》阅读笔记:p127-p133

codists

算法

PID参数自整定终极指南:基于继电反馈的智能调节算法详解

芯动大师

PID 自整定

《腾讯Codebuddy+AI让古诗文教学开挂!语文老师3步搞定智能备课系统》

jimaks

CodeBuddy首席试玩官

CodeBuddy助力数学教学:数学老师直呼内行!

jimaks

CodeBuddy首席试玩官

🌟【一句话生成个人主页】CodeBuddy Craft让设计师瞳孔地震!

jimaks

CodeBuddy首席试玩官

Centos或Linux编写一键式Shell脚本删除用户、组指导手册

刘大猫

人工智能 Linux centos Shell shell脚本

基于Pytorch 在昇腾上实现GCN图神经网络

永荣带你玩转昇腾

【CodeBuddy】三分钟开发一个实用小功能之:数字华容道拼图

jimaks

CodeBuddy首席试玩官

【CodeBuddy】三分钟开发一个实用小功能之:贪吃蛇经典复刻版

jimaks

CodeBuddy首席试玩官

【CodeBuddy】挑战一句话开发一个完整项目之:React表单验证系统

jimaks

CodeBuddy首席试玩官

模型并行之Embedding表

永荣带你玩转昇腾

Cursor要付费,何不试试Trae | Trae 带你做游戏

六月的雨在InfoQ

MCP Trae MCP Server AI 编程

PyTorch 实现FCN网络用于图像语义分割

永荣带你玩转昇腾

【CodeBuddy】三分钟开发一个实用小功能之:CSS渐变背景生成器

jimaks

CodeBuddy首席试玩官

使用手势自定义截取视频时间组件

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

【CodeBuddy】一句话开发一个完整项目之:响应式栅格布局生成器

jimaks

CodeBuddy首席试玩官

【CodeBuddy】三分钟开发一个实用小功能之:CSS代码瘦身专家

jimaks

CodeBuddy首席试玩官

【CodeBuddy】三分钟开发一个实用小功能之:记忆翻牌配对游戏

jimaks

CodeBuddy首席试玩官

【CodeBuddy】三分钟开发一个实用小功能之:万花筒图案生成器

jimaks

CodeBuddy首席试玩官

华为智能电动DriveONE:重新定义新能源汽车的续航与安全

科技热闻

昇腾910-PyTorch 实现 Vggnet图像分类

永荣带你玩转昇腾

🌟 CodeBuddy Craft智能体实战:开发一个智能语法检查工具

jimaks

CodeBuddy首席试玩官

【CodeBuddy】挑战一句话开发一个完整项目之:设计稿智能配色引擎

jimaks

CodeBuddy首席试玩官

常用的CTR领域经典机器模型介绍

永荣带你玩转昇腾

CodeBuddy Craft智能体测评|对话式编程太香了!🚀

jimaks

CodeBuddy首席试玩官

学习如何构建高效AI Agent

Bruce Talk

AI

长连接网关技术专题(十二):大模型时代多模型AI网关的架构设计与实现

JackJiang

网络编程 IM 即时通讯IM

推荐系统网络序言

永荣带你玩转昇腾

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