文章目录
制作包含可执行文件的 gemfile
在 bin
目录下创建一个可执行文件
切换到
bin
目录下
cd ./bin
创建一个文件
touch ocean1
执行
chmod
a
: 表示所有用户x
: 可执行文件权限
chmod a+x bin/ocean1
修改可执行文件内容
内容如下:
- 引用
ocean1.rb
文件 - 使用
#!/usr/bin/env ruby
require 'ocean1'
puts Ocean1.current_weekday
puts "Hello ocean1 =="
测试可执行文件内容
ruby -Ilib ./bin/ocean1
ruby -Ilib ./bin/ocean1
Thursday
Hello ocean1 ==
修改 gemspec
文件内容
主要是
executables
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
end
# spec.files = %w(README.md LICENSE) + Dir['lib/**/*.rb']
#spec.bindir = "exe"
#spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.executables << 'ocean1'
spec.require_paths = ["lib"]
把内容推送到远端
git add .
git commit -m '添加可执行文件'
执行发布
可以使用
rake build
rake install
rake release
rake release
失败可以使用gem push ocean1-0.2.0.gem
➜ pkg git:(master) gem push ocean1-0.2.0.gem
Pushing gem to https://rubygems.org...
Successfully registered gem: ocean1 (0.2.0)
使用
更新
ocean1
gem update ocean1
终端执行命令
可以看到有内容输出了
➜ ~ ocean1
Thursday
Hello ocean1 ==
补充 使用 gem 安装的可执行文件的路径
/Users/ocean/.rvm/gems/ruby-2.6.3/bin/ocean1