1️⃣常用内置模块
| 模块 | 用途 |
|---|---|
File | 文件操作 |
FileUtils | 文件和目录操作(复制、移动、删除、创建目录) |
Dir | 目录遍历和操作 |
YAML | 解析和写入 YAML 文件 |
JSON | 解析和写入 JSON 文件 |
Set | 集合操作(去重、交集、并集) |
2️⃣ Ruby 基础语法
| 内容 | 示例 | 说明 | ||
|---|---|---|---|---|
| 变量 | name = "Ruby" | 动态类型,无需声明类型 | ||
| 数组 | arr = [1,2,3] | 支持遍历、映射等操作 | ||
| 哈希 | h = {a:1, b:2} | 类似 Python dict | ||
| 条件 | if a > 1 ... elsif ... else ... end | 多分支条件 | ||
| 循环 | loop do ... end / while / for ... in ... end | 无限循环 / 条件循环 / 遍历 | ||
| 方法 | def add(a,b); a+b; end | 使用 def 定义方法,end 结束 | ||
| 块 | `[1,2,3].each { | x | puts x}` | 块(block)是 Ruby 的核心特性 |
| 字符串插值 | "Hello #{name}" | 用 #{} 引入变量 |
3️⃣文件与目录操作
Ruby 自带 File 和 FileUtils 模块,常用操作:
| 操作 | 示例 | ||
|---|---|---|---|
| 读取文件 | content = File.read('file.txt') | ||
| 写入文件 | `File.open(‘file.txt’,‘w’){ | f | f.write(“Hello”)}` |
| 判断文件存在 | File.exist?('file.txt') | ||
| 创建目录 | Dir.mkdir('mydir') | ||
| 遍历目录 | Dir.glob('./**/*.rb') | ||
| 移动/重命名 | FileUtils.mv('old.rb','new.rb') | ||
| 复制文件 | FileUtils.cp('a.txt','b.txt') | ||
| 删除文件/目录 | FileUtils.rm('file.txt') / FileUtils.rm_rf('dir') |
4️⃣ 文本处理与正则
替换字符串:
str = "old_name"
str.gsub!(/old_name/, "new_name") # 原地修改
匹配字符串:
if str.match?(/\A[a-z]+(_[a-z]+)*\z/)
puts "蛇形命名"
end
扫描内容:
matches = str.scan(/pattern/)
5️⃣ YAML / JSON 操作
处理 Flutter 插件脚本常用 YAML:
require 'yaml'
data = YAML.load_file('pubspec.yaml')
data['name'] = 'new_plugin_name'
File.open('pubspec.yaml','w'){|f| f.write(data.to_yaml)}
处理 JSON:
require 'json'
json_data = JSON.parse(File.read('data.json'))
6️⃣💡 总结
Ruby 非常适合做 自动化脚本、文件批量处理、文本替换
Flutter 插件的 update_plugin_name.rb 就用到:
文件操作:File, FileUtils
YAML 解析:YAML
字符串/正则替换:gsub!, match?
循环遍历目录:Dir.glob
899

被折叠的 条评论
为什么被折叠?



