新手问题 大概学习多久可以自己写 gem

xiongxin8802 · 2014年06月04日 · 最后由 billy 回复于 2014年06月05日 · 3038 次阅读

学习有一段时间了,今天尝试看看 gem 的源码,但是感觉好复杂,新手如何去学习 gem 的源码?我感觉如果能慢慢看懂 gem 的话,对于自己的技术水平应该会有很大的提升。所以请教各位大侠是如何去学习 gem 的。

找到了一个比较新的关于创建 gem 的文章: http://www.smashingmagazine.com/2014/04/08/how-to-build-a-ruby-gem-with-bundler-test-driven-development-travis-ci-and-coveralls-oh-my/

跟普通代码区别不大吧。有些难是因为用了元编程技巧。选感兴趣的读吧。

#2 楼 @andor_chen 这本书我看到了,但是英文的,太贵,还是你的书价格合适点,呵呵

根据具体需求去看吧,这样会更快,比如弄清楚 carrierwave 是如何实现文件上传的,又是如何支持不同 Storage 的。写 gem 的话没有所谓的时间问题,只是看你自己想写的东西有多复杂了。

很多 gem 为了保持通用性必须把代码写得更抽象,所以会比正常代码难懂些,和元编程什么的没什么关系。你多看几个熟悉了 pattern 之后就会很简单。

两分钟就写完一个 gem 了:

bundle gem(1) Create a simple gem, suitable for development with bundler

#6 楼 @ruby_sky 然后puts 'hello, world'就算完成了是吗

#7 楼 @Martin91 没那么简单,起码要加个方法

module YourGemName

  def hello_gem
     "Hello Gem."
  end

end

接着在你的项目里调用:

YourGemName.hello_gem

然后再 release: https://gist.github.com/lanrion/9417f47caf8f206b0db8

最后是 push 你的 gem 到 rubygems:

gem build foo.gemspec
gem push your_gem_name-1.0.0.gem

完事。

#8 楼 @ruby_sky 能不能搞一个完整的例子,方便我们菜鸟学习。。。

写出代码来分分钟,难点在测试。没测试的 gem 很少人敢用。

本来写测试就比写代码难。gem 里面要尽量简化、独立,要求更高。什么时候用 demo app,什么时候用 unit,都挺费脑筋。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号