Ruby初体验

2,622 阅读2分钟

Ruby调试依赖

调试Ruby我们需要在本地安装两个Ruby库:debaseruby-debug-ide

sudo gem install ruby-debug-ide

bel@beldeMBP ~ % sudo gem install ruby-debug-ide 

Password:

Building native extensions. This could take a while...

Successfully installed ruby-debug-ide-0.7.2

Parsing documentation for ruby-debug-ide-0.7.2

Done installing documentation for ruby-debug-ide after 0 seconds

1 gem installed

sudo gem install debase

安装的Gem库,会安装在当前ruby环境下。

Ruby调试工具

安装solargraph

接下来我们使用VSCode进行Ruby调试,Ruby默认是没有代码提示的,如果想让VSCode能够进行代码提示,需要安装代码提示库 solargraphsolargraph是一种语言服务器,为Ruby提供智能感知,提供代码提示和内联文档。

Ruby Solargraph.png 然后,在本机安装solargraph

gem install solargraph

这样我们在编写代码的时候,就会有代码提示和函数使用说明 截屏2021-08-23 下午10.59.14.png

截屏2021-08-23 下午11.01.01.png

安装Ruby插件

VSCode中,安装Ruby插件,是用来使用VSCode和本机的Ruby来进行交互的

截屏2021-08-23 下午11.05.39.png

创建 launch.json

.vscode目录下,创建launch.json文件,为ruby工程的启动配置。

{
"configurations": [
    {
        "name": "Debug Ruby Code",
        // 输出调试信息
        "showDebuggerOutput": true,
        // 告诉VS Code要运行什么调试器。
        "type": "Ruby",
        // "launch"允许直接从VS Code启动提供的程序-或"attach"-允许您附加到远程调试会话。
        "request": "launch",
        // rdebug-ide在内运行bundler exec 将Gemfile里面引用的库加到工程中
        "useBundler": true,
        // 始终在入口处停止
        "stopOnEntry": false,
        // "program"的工作目录
        "cwd": "${workspaceRoot}",
        // 指定调试脚本,调试当前打开的文件"program": "${file}" 就是哪个程序
        "program": "${file}",
        // 提供program命令参数
        "args": [],
      }
   ]
 }

RubyGems

运行Ruby文件可以使用Gemfile文件来添加所依赖的Gem库描述,我们在根目录下创建一个Gemfile,并添加文件信息

source 'https://rubygems.org' // 1

gem 'ruby-debug-ide' // 2
gem 'debase'
  • 1,指定gem库的源。
  • 2,安装所需的gem库。

当按下F5运行后,Bundler能够根据Gemfile跟踪并安装的特定版本的gem,以此来为Ruby项目提供一致的运行环境。

截屏2021-08-23 下午11.29.41.png

运行

创建好Gemfile后,我们新建一个.rb文件,并输出当前Ruby版本

截屏2021-08-23 下午11.32.57.png

常见问题

1, Fetching debase 0.2.4.1 Installing debase 0.2.4.1 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

解决方法:sudo gem install debase -v '0.2.5.beta2' GitHub Issue

2,You don't have write permissions for the /usr/bin directory

解决方法:sudo gem install rubyName -v version-number -n /usr/local/bin