【发布时间】:2011-05-20 09:27:19
【问题描述】:
【问题讨论】:
-
@AndrewMarshall 不是重复的,它询问如何创建红宝石的骨架,以提供更具体的答案。
【问题讨论】:
我会和珠宝商一起去。 Bundler 骨架只会为您提供基础知识。 Jeweler 有更多选项可供使用,还有许多有用的 rake 任务,用于版本控制、推送到 github、创建 gemspec、构建和安装。
如果您使用的是 Rails 3 引擎,我有一个 Jeweler fork(绝对是一个正在进行中的工作),它将生成应用程序骨架并包含引擎文件。您只需使用--rails3-engine 作为选项运行jeweler 命令。如果您有兴趣,这里是叉子:
https://github.com/johnmcaliley/jeweler
【讨论】:
创建 Gem 并不难,我建议您尝试从头开始构建 Gem,无需任何工具。在您了解所涉及的内容(创建 gemspec、构建并将其推送到 rubygems.org)之后,您可以使用工具来加快该过程。我猜你不会,因为制作宝石根本不是问题。
【讨论】:
rails new。我明白你关于从头开始创建一个的观点,但对于刚开始创建 gem(或任何相关的东西)的人来说,有时通过示例学习更容易。当您看到生成器构建的内容时,您可以了解每个部分的作用以及为什么它对结构很重要。一旦你了解了它的工作原理,你就可以从头开始编写一个。
bundler gem提供的生成器。
从命令行:
bundle gem your_new_gem
这将创建一个名为your_new_gem 的目录,其中只有一组基本的文件和目录结构,这些文件和目录结构现在被认为是最佳实践。它快速、简单,是一个很好的起点。
【讨论】:
这是一个值得一看的替代方案:ore
Bundler 为您提供了一个用于 ruby gems 的模板,而 ore 有多个内置模板,并且可以创建自己的模板。它还支持 Git、SVN (urgh) 和 Mercurial。
【讨论】:
我建议使用内置的捆绑器命令。
bundle gem your_gem_name
创建 gem 时应遵循一些规则。例如命名约定和版本控制规则。 我最近在 netguru 的博客上写了一篇关于创建 gems 的文章。我想你会在那里找到你需要的东西。
https://netguru.co/blog/posts/creating-a-gem-a-step-by-step-tutorial
希望这会有所帮助。
【讨论】:
您也可以在 RubyMine 中构建 gem。文件 > 新项目 > 新宝石。就这么容易。但我想对这种方法做一些说明:
对于调试,RubyMine 将使用快速调试器 gem,ruby-debug-ide。我知道现在大多数人都在使用带有 Byebug 的 Pry,但 ruby-debug-ide 是一个将 ruby-debug 粘合到 Eclipse (RDT)、NetBeans 和 RubyMine 等 IDE 的接口。
在 Run > Edit Configurations > + > Ruby 下,我添加了一个新的调试配置,根据这里的文档:https://www.jetbrains.com/help/ruby/run-debug-configuration-gem-command.html#1
在“配置”下的“Ruby Script”下,我将路径添加到 lib 下的 ruby gem 文件:lib/my_gem.rb 在“配置”下的“Ruby SDK”下,我指定了我正在使用的 RVM gemset。 在捆绑器部分下,我选中“在捆绑器的上下文中运行脚本”。这将使用 bundle exec,它将读取项目根目录中 Gemfile 中的依赖项。现在对于 gems,Gemfile 包含一个名为“gemspec”的方法,它依次读取 my_gem.gemspec 中的依赖项中的依赖项。在那里,我将依赖项传递给 Gem::Specification.new 块:
spec.add_development_dependency "bundler", "~> 1.7"
spec.add_development_dependency "rake", "~> 10.0"
【讨论】: