VSCode搭建ruby开发调试环境

news2024/11/15 9:15:48

安装rvm

rvm是ruby版本管理工具,可以管理本地的ruby的版本

curl -sSL https://get.rvm.io | bash -s stable

安装ruby

使用 rvm list known获取已知的ruby版本,这里安装3.0.0版本的ruby

rvm install 3.0.0

新建ruby文件

在VSCode中新建ruby文件main.rb

#!/usr/bin/ruby
puts "hello ruby"

打开终端命令行,输入ruby main.rb,程序可以正常执行。

引入依赖

gem install bundle

bundle用于管理Gemfile中的依赖,需要安装bundle

在工程中新建一个Gemfile文件,引入date依赖

source 'https://gems.ruby-china.com/'
gem 'date', '~> 3.3'

执行bundle install,依赖安装成功。

#!/usr/bin/ruby

require 'date'

puts "hello ruby"

puts Date.today()

在main.rb文件中写入代码,使用require引入date并使用。

hello ruby
2022-12-28

执行ruby main.rb后控制台输出了结果。

调试

在调试ruby之前,需要安装VSCode的Ruby插件和调试所需的库。
请添加图片描述

在Gemfile文件中添加依赖

source 'https://gems.ruby-china.com/'
gem 'ruby-debug-ide'
gem 'debase', '0.2.5.beta2'

请添加图片描述

VSCode左侧Debug菜单,点击创建launch.json文件,选择Ruby然后选择Debug local File

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Local File",
            "type": "Ruby",
            "request": "launch",
            "program": "${workspaceRoot}/main.rb"
        }
    ]
}

VSCode自动生成了ruby调试的配置,type为Ruby,request为launch,program为创建的main.rb文件。

#!/usr/bin/ruby

puts "hello ruby"

v = "debug ruby"
puts "#{v}"

main.rb文件中增加代码,新定义了v = "debug ruby"这个变量,并且打印输出。

在v = "debug ruby"前加断点,点击Debug Local File运行后,断点停在了此行,VSCode左侧调试面板可以查看当前的调用堆栈,临时变量和全部变量。

Ruby开发调试环境已经搭建完成。

tips

如果有报错找不到ruby,可以尝试在launch.json中添加PATH,RUBY_VERSION,GEM_HOME,GEM_PATH环境变量。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Local File",
            "type": "Ruby",
            "request": "launch",
            "program": "${workspaceRoot}/main.rb",
            "env": {
                "PATH": "xxx",
                "GEM_HOME": "xxx",
                "GEM_PATH": "xxx",
                "RUBY_VERSION": "xxx"
            }
        }
    ]
}

在命令行中执行

echo $PATH
echo $GEM_HOME
echo $GEM_PATH
echo $RUBY_VERSION

执行这些命令后可以取得对应的值,然后填入launch.json文件中,重启VSCode重新运行程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【强训】Day1

努力经营当下,直至未来明朗! 文章目录一、选择二、编程1. 组队竞赛2. 删除公共字符答案1. 选择2. 编程普通小孩也要热爱生活! 一、选择 下列选项中属于面向对象编程主要特征的是() A 继承 B 自顶向下 C 模块化 D 逐步…

【BP靶场portswigger-服务端4】操作系统命令注入-5个实验(全)

目录 一、操作系统命令注入 1、意义 2、有用的命令 3、注入操作系统命令的方式 4、防止操作系统命令注入攻击 二、执行任意命令 1、示例: 实验1:操作系统命令注入(简单) 三、盲操作系统命令注入漏洞 1、简述 2、示例 3…

Spring Cloud 2022.0.0正式发布:OpenFeign稳得很全面迈向GraalVM

本文已被https://yourbatman.cn收录;女娲Knife-Initializr工程可公开访问啦;程序员专用网盘https://wangpan.yourbatman.cn;技术专栏源代码大本营:https://github.com/yourbatman/tech-column-learning;公号后台回复“…

Vector在CANdb++中关于XCP和应用报文的定义

Vector DBC规则 前文讲解了dbc有关的属性定义与编辑,本文描述在开发过程中关于XCP和应用报文有关的规则说明,方便开发人员正确配置和代码生成所需的属性及其值。 关联文章: dbc的属性定义:dbc的属性定义 Vector DBC属性定义规则:Vector DBC属性定义规则 DBC编辑问题——…

我理解的proc伪文件系统

一.概念 提供可以动态操作Linux内核信息的接口,实现内核空间与用户空间进行数据交换的途径。 二.观察文件内容 //crtlaltt 快速打开Linux终端 //输入一下内容 cd /proc //进入proc文件夹 ls //观察proc文件夹下的内容 cd 2414 //任意打开一个带数字的文件…

【问题解决】解决xshell7会话窗口只能显示一个的问题

这恐怕会成为最短的一篇文章 问题复现 打开多个终端,最终只显示最后一个 如上图: 再打开一个192.168.1.42 ,会覆盖掉1.41,终端上先显示最后打开的那个终端。 想要解决xshell7会话窗口只能显示一个的问题,我们只需要…

日志系统:一条SQL更新语句是如何执行的?

前面我们系统了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。 那么,一条更新语句的执行流程又是怎样的呢? 之前你可能经常听 DBA 同事说,…

怎么判定自己的账号有没有被限流?短视频运营推广学习日记

短视频运营推广学习日记 今天开始记录自己的学习过程,今天的内容是,怎么知道自己的账号有没有被限流?对比了几个方法,还是我赢的内容比较正常,限流主要是两种方式:作品限流和账号限流 作品限流&#xff1…

开发第一天

首先下载Binary Editor: https://www.vcraft.jp/soft/bz.html 如图所示,点击下载: 下载后解压,在同一个盘下创建文件夹取名为OSASK,启动Bz.exe程序并输入: 需要复制很多的0,一直到168000这个地址,得到的文件命名为he…

(九) DockerFile

DockerFile一、概述二、DockerFile构建过程2.1、Dockerfile内容基础知识2.2、Docker执行Dockerfile的大致流程2.3、小总结三、DockerFile常用保留字指令四、实操案例4.1、要求Centos7镜像具备vimifconfigjdk84.2、编写4.3、Build构建镜像4.4、虚悬镜像一、概述 Dockerfile是用来…

C++18 -- 虚析构函数构成多态、纯虚函数、抽象类、虚继承

多态的条件: 1)覆盖 2)基类的指针或者引用 虚表的运行原理: 一、多态的特例 – 虚析构函数构成多态 类有指针作为数据成员,必须要写析构函数,如果当前类被继承了,则析构函数写成virtual&#…

四旋翼无人机学习第19节--allgero的板框导入,网表导入

文章目录1 板框导入2 网表导入3 颜色修改4 修改快捷键1 板框导入 1、板框可以在小马哥课程中获取哦。 课程地址:使用Cadence17.2 OrCAD Allegro绘制小马哥DragonFly四轴飞行器 2、下载得到文件,然后用CAD软件查看DXF文件,出现弹框点击是即可(文件只读)。…

科研小白如何做好科研(内附一些科研实用工具)

目录 前言 一、了解自己的研究方向 1、知其然并知其所以然 2、那如何做到呢? 二、拥有良好的科研素养 1、多读文献 2、夯实基础,搞清原理 3、不断学习,擅于总结 4、团队协作,勤沟通,多交流 三、掌握一些…

RHCEansible静态主机清单

首先要做好免密登录 RHCEansible虚拟机初始化配置,ansible配置和安装_无所不知的神奇海螺的博客-CSDN博客 添加主机组 [rootserver ~]# vim /etc/ansible/hosts 或者 测试 [rootserver ~]# ansible node1 -m command -a hostname --- 引号里的是想要受控主机执行的…

Dell inspiron 5488加装硬盘SSD

机械盘真心便宜, 当数据盘很合适。 ———— 我是装双系统, 希望速度快! 我就装了一个SSD, STAT接口的, 和机械盘盒一样尺寸, 接口都是SATA, 我买的三星860EVO, 500G&…

I06-python菜鸟教程查漏补缺

学习链接:Python3 教程 | 菜鸟教程 目录 1.基础知识 2.字符串 1.基础知识 多行语句:复数类型: 复数由实数部分和虚数部分构成,可以用 a bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型…

项目的生命周期

0、Preface/Foreword PLM:Product Lifecycle Management System,产品生命周期管理;可以在公司内部或者多个公司之间对于产品研发协同办公,集成与产品相关的人力资源,流程、应用系统和信息,用于支持产品全生命周期的信息创建、管理、分发和应用。 1、硬件产品开发流程 立…

2022年下半年信息系统项目管理师综合知识真题及答案21-40

21、关于项目论证、项目评估目的和作用的描述,不正确的是:()。 A.项目论证应围绕市场需求、开发技术、财务经济三个方面开展 B.项目论证的作用是审查可行性研究的可靠性、真实性和客观性 C.项目…

Java8 - Streams map()

文章目录概述Case 1 : A List of Strings to UppercaseCase 2 : List of objects -> List of StringCase 3 : List of objects -> List of other objectsTest概述 Stream.map()是Stream最常用的一个转换方法,它把一个Stream转换为另一个Stream map()方法用于…

网络安全人才市场需求调研

声明 本文是学习2022网络安全人才市场状况研究报告. 下载地址而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 网络安全人才市场需求调研 为了更好地了解网络安全人才市场能力需求情况,我们通过调研问卷对网络安全人才就业市场不同方向的十…