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️⃣ 文本处理与正则
替换字符串:
bash
str = "old_name"
str.gsub!(/old_name/, "new_name") # 原地修改
匹配字符串:
bash
if str.match?(/\A[a-z]+(_[a-z]+)*\z/)
puts "蛇形命名"
end
扫描内容:
bash
matches = str.scan(/pattern/)
5️⃣ YAML / JSON 操作
处理 Flutter 插件脚本常用 YAML:
bash
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:
bash
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