一、目录介绍
第一篇 基础与脚手架
第1章 让它跑起来:安装Ruby
1.1 安装Ruby
1.1.1 Windows平台
1.1.2 AppleMacOSX平台
1.1.3 Linux平台
1.1.4 其他平台
1.2 小结
第2章 编程等于快乐:Ruby和面向对象概览
2.1 初始步骤
2.1.1 irb:交互式Ruby
2.1.2 Ruby是计算机的通用语._
2.1.3 为什么Ruby是如此杰出的编程语言
2.1.4 心灵小径
2.2 把思路转变成Ruby代码
2.2.1 Ruby怎么理解对象和类的概念
2.2.2 造人过程
2.2.3 基础变量
2.2.4 从人到宠物
2.3 一切都是对象
2.3.1 Kernel模块的方法
2.3.2 向方法传递数据
2.3.3 使用String类的方法
2.4 以非面向对象方式使用Ruby
2.5 小结
第3章 Ruby的构造元素:数据、表达式和流程控制
3.1 数字与表达式
3.1.1 表达式基础知识
3.1.2 变量
3.1.3 比较运算符与表达式
3.1.4 用块和迭代子在数字中循环
3.1.5 浮点数
3.1.6 常量
3.2 文本与字符串
3.2.1 字面字符串
3.2.2 字符串表达式
3.2.3 插写
3.2.4 字符串方法
3.2.5 正则表达式与字符串操作
3.3 数组与列表
3.3.1 基本数组
3.3.2 字符串切分成数组
3.3.3 数组迭代
3.3.4 数组的其他方法
3.4 散列表
3.4.1 散列表的基础方法
3.4.2 散列表中的散列表
3.5 流程控制
3.5.1 if与unless
3.5.2 三元运算符
3.5.3 elsif与case
3.5.4 while与until
3.5.5 代码块
3.6 其他有用的构造元素
3.6.1 日期与时间
3.6.2 大数字
3.6.3 范围
3.6.4 符号
3.6.5 类间转换
3.7 小结
第4章 开发基础的Ruby应用程序
4.1 处理源代码文件
4.1.1 创建测试文件
4.1.2 测试用源代码文件
4.1.3 运行源代码
4.2 我们的目标程序:文本分析器
4.2.1 基本功能需求
4.2.2 构建程序基本框架
4.2.3 获取哑文本
4.2.4 载入文本文件并统计行数
4.2.5 统计字符数
4.2.6 统计字数
4.2.7 统计句子和段落数
4.2.8 计算平均值
4.2.9 到目前为止的源代码
4.3 增加额外功能
4.3.1 “有用”字词的百分比
4.3.2 找出“有趣的”句子进行汇总
4.3.3 分析text.txt之外的其他文件
4.4 完整的程序
4.5 小结
第5章 Ruby生态系统
5.1 Ruby的历史
5.1.1 Ruby的起源
5.1.2 Ruby的影响
5.1.3 向西方流传
5.2 RubyOnRails
5.2.1 Rails面世的由来
5.2.2 Web(2.0)是怎样赢的
5.3 开源文化
5.4 如何获得帮助
5.4.1 邮件列表
5.4.2 Usenet新闻组
5.4.3 因特网中继聊天工具
5.4.4 文档
5.4.5 论坛
5.5 加入社区
5.5.1 向别人提供帮助
5.5.2 贡献代码
5.5.3 网络博客
5.6 小结
第二篇 Ruby的核心
第6章 类、对象和模块
6.1 为什么要用面向对象
6.2 面向对象基础知识
6.2.1 局部变量、全局变量、对象变量和类变量
6.2.2 类方法和对象方法
6.2.3 继承
6.2.4 覆写现有方法
6.2.5 对象方法的反射与发现
6.2.6 封装
6.2.7 多态
6.2.8 嵌套类
6.2.9 常量的作用域
6.3 模块、命名空间和掺入
6.3.1 命名空间
6.3.2 掺入
6.4 用对象构建“地下城”文本冒险游戏
6.4.1 地下城的概念
6.4.2 创建初始类
6.4.3 Structs:快捷简单的数据类
6.4.4 创建房间
6.4.5 让地下城运转起来
6.5 小结
第7章 项目与程序库
7.1 项目和使用其他文件的代码
7.1.1 基本的文件包含
7.1.2 从其他目录包含
7.1.3 有条件地包含代码
7.1.4 嵌套包含
7.2 程序库
7.2.1 标准程序库
7.2.2 RubyGems包
7.3 小结
第8章 文档编写、错误处理、调试和测试
8.1 文档编写
8.1.1 用RDoe生成文档
8.1.2 RDoc技术
8.2 调试与出错
8.2.1 异常和出错处理
8.2.2 Catch与Throw方法
8.2.3 Ruby调试器
8.3 测试
8.3.1 测试驱动开发的哲学
8.3.2 单元测试
8.3.3 更多的Test:Unit断言
8.4 性能基准度量和优化分析
8.4.1 性能基准简单度量
8.4.2 性能优化分析
8.5 小结
第9章 文件和数据库
9.1 输入与输出
9.1.1 键盘输入
9.1.2 文件输入输出
9.2 数据库基础
9.2.1 文本文件数据库
9.2.2 对象和数据结构的存储
9.3 关系型数据库与SQL
9.3.1 关系型数据库概念
9.3.2 四大数据库:MySQL、PostgreSQL、Oracle和SQLite
9.3.3 安装SQLite
9.3.4 关于数据库基本操作和SQL的紧急教程
9.3.5 在Ruby中使用SQt。ite
9.3.6 连接其他数据库系统
9.3.7 ActiveRecord简介
9.4 小结
第10章 部署Ruby应用和程序库
10.1 简单Ruby程序发布
10.1.1 shebang行
10.1.2 关联Windows的文件类型
10.1.3 “编译”Ruby程序
10.2 检测Ruby运行环境
10.2.1 用RUBY-PLATFORM作简单的操作系统检测
10.2.2 环境变量
10.2.3 读取命令行参数
10.3 以gem包形式发布Ruby程序库
10.3.1 创建gem包
10.3.2 发布gem包
10.3.3 RubyForge网站
10.4 以远程服务形式部署Ruby应用
10.4.1 CGI脚本
10.4.2 常见HTTP服务器
10.4.3 远程方法调用
10.5 小结
第11章 Ruby高级功能
11.1 动态代码执行
11.1.1 绑定
11.1.2 eval的其他形式
11.1.3 创建attr-accessor
11.2 从Ruby中运行其他程序
11.2.1 获得其他程序的运行结果
11.2.2 向其他程序移交执行权
11.2.3 同时运行两个程序
11.2.4 与另一程序交互
11.3 安全地掌控数据和危险方法
11.3.1 被感染的数据和对象
ll.3.2 安全级别
11.4 使用微软Windows
11.4.1 使用Windows.API
11.4.2 控制Windows程序
11.5 线程
11.5.1 基础Ruby线程实战
11.5.2 高级线程操作
11.6 其他语言嵌入Ruby
11.6.1 为什么用c作为嵌入语言
11.6.2 创建基础方法或函数
11.6.3 性能基准度量:C和Ruby
11.7 对Unicodc和UTF-8的支持
11.8 小结
第12章 综合演练:开发更大型的Ruby应用
12.1 构建机器人小程序
12.1.1 什么是机器人小程序
12.1.2 为什么要构建机器人小程序
12.1.3 怎样构建
12.2 创建文本处理工具程序库
12.2.1 构建WordPlay程序库
12.2.2 测试该程序库
12.2.3 WordPlay程序库的源代码
12.3 构建机器人小程序的核心功能
12.3.1 程序的生命周期和组成部分
12.3.2 机器人小程序的数据
12.3.3 构建Bot类和数据载入器
12.3.4 response_to方法
12.3.5 试用机器人小程序
12.4 机器人小程序主要代码清单
12.4.1 bot.rb文件
12.4.2 basic-client.rb文件
12.5 扩展机器人小程序的功能
12.5.1 用文本文件作为会话来源
12.5.2 把机器人小程序连接到万维网
12.5.3 机器人小程序之间的会话
12.6 小结
第三篇 Ruby在线
第13章 RubyonRuby:Ruby的杀手级应用
第14章 Ruby与因特网
第15章 网络连接、套接字与后台进程
第16章 有用的Ruby程序库和gem包