$ bundle gem a
      create  a/Gemfile
      create  a/Rakefile
      create  a/.gitignore
      create  a/a.gemspec
      create  a/lib/a.rb
      create  a/lib/a/version.rb
Initializating git repo in /Users/camel/a
打开 a.gemspec ,这个文件里面都是这个 gem 的一些说明。
找到
s.summary     = %q{TODO: Write a gem summary}
s.description = %q{TODO: Write a gem description}
去掉其中的 TODO,可先改为 (任意写)
s.summary     = %q{"just for test"}
s.description = %q{"just for test"}
lib 是 gem 的工作目录,代码尽量都放到 lib/目录下。
编写a.rb
require "new_gem/version"
module A
  class B
    def self.say(what)
    puts what
    end
  end
end
然后提交到版本库
git@git-virtual-machine:~/a$ git add .
git@git-virtual-machine:~/a$ git commit -am 'commit'
提交成功后生成 gem 包
git@git-virtual-machine:~/a$ gem build a.gemspec
WARNING: no homepage specified
WARNING: description and summary are identical
Successfully built RubyGem
Name: a
Version: 0.0.1
File: a-0.0.1.gem
把 gem 包安装到本地
git@git-virtual-machine:~/a$sudo gem install a-0.0.1.gem -l
测试是否成功
git@git-virtual-machine:~/a$ irb
irb(main):001:0> require 'a'
=> true
irb(main):002:0> A::B.say('hello')
hello
=> nil
irb(main):003:0>quit
如果跟随视频安装报的错误信息是
ERROR:  While executing gem ... (Gem::FilePermissionError)
   You don't have write permissions into the /usr/local/lib/ruby/gems/1.9.1 directory.
要用sudo命令安装
git@git-virtual-machine:~/a$sudo gem install a-0.0.1.gem -l
以上说明创建 gem 已经成功,接下来给 gem 创建另一个功能,即:在控制台调用方法输出
在bin目录下创建一个say的普通文件:
require 'a'
A::B.say(ARGV[0])
git@git-virtual-machine:~/a$ git add .
git@git-virtual-machine:~/a$ git commit -am 'create a  file'
git@git-virtual-machine:~/a$ gem build a.gemspec
进入 version.rb 修改 gem 版本
module A
  VERSION = "0.0.2"
end
接下来再次创建和安装新版本的 gem
git@git-virtual-machine:~/a$ gem build a.gemspec 
git@git-virtual-machine:~/a$ sudo install a-0.0.2.gem -l
测试是否成功:
git@git-virtual-machine:~/a$ irb
irb(main):001:0> require 'a'
=> true
成功以后可以再控制台随意输出了
git@git-virtual-machine:~/a$ say hello
hello
git@git-virtual-machine:~/a$ say hehe
hehe
当然你可以把他 push 到 github 上
要创建一个基于 Rails 3.1 的 engine,你需要运行 plugin 创建器并且传递 --full 和 --mountable 给它。要创建初始的“blorgh”engine 你将需要在终端中运行如下命令:
$ rails plugin new blorgh --full --mountable