《RUBY COOKBOOK中文版》PDF下载

  • 购买积分:24 如何计算积分?
  • 作  者:LUCAS CARLSON & LEONARD RICBARDSON著;郑路长译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:9787302147701
  • 页数:901 页
图书介绍:本书介绍Ruby开发过程中的难点的解决方案。

前言 1

第1章 字符串 13

1.1 根据部分构建字符串 16

1.2 将变量代入字符串 18

1.3 将变量代入现有的字符串 20

1.4 按字或字符逆转字符串 22

1.5 表示不可打印字符 23

1.6 字符与值的相互转换 26

1.7 字符串与符号之间的相互转换 27

1.8 每次处理字符串中的一个字符 28

1.9 每次处理字符串中的一个字 30

1.10 修改字符串的大小写 32

1.11 管理空白 34

1.12 测试对象是否类似于字符串 35

1.13 获得想要的字符串部分 36

1.14 处理国际编码 38

1.15 带自动换行的文本 39

1.16 生成字符串的后继 41

1.17 使用正则表达式匹配字符串 44

1.18 一遍替换多种模式 46

1.19 验证电子邮箱地址 47

1.20 使用贝叶斯分析器对文本进行分类 50

第2章 数字 53

2.1 由字符串分析数字 54

2.2 浮点数的比较 57

2.3 表示数字至任意精度 59

2.4 有理数的表示 62

2.5 随机数的生成 64

2.6 数字基之间的转换 66

2.7 获取对数 67

2.8 确定平均数、中值和模 69

2.9 度数与弧度之间的转换 72

2.10 矩阵乘法 74

2.11 求解线性方程组 79

2.12 复数的使用 81

2.13 模拟Fixnum的子类 84

2.14 使用罗马数字进行数学运算 88

2.15 生成数字序列 93

2.16 生成素数 96

2.17 检查信用卡校验和 99

第3章 日期与时间 102

3.1 查找当前日期 105

3.2 精确或模糊地分析日期 108

3.3 打印日期 111

3.4 日期上的迭代 117

3.5 计算日期 119

3.6 从任意日期开始计算天数 121

3.7 时区转换 123

3.8 检查夏令时是否起效 126

3.9 Time与DateTime对象之间的转换 127

3.10 查找周日期 130

3.11 处理商用日期 132

3.12 周期性运行代码块 133

3.13 等待固定长度的时间 135

3.14 为长期运行的操作添加超时 138

第4章 数组 140

4.1 在数组上迭代 142

4.2 不使用临时变量重排值 146

4.3 去除数组中的重复元素 148

4.4 逆转数组 149

4.5 数组排序 150

4.6 排序字符串时忽略大小写 152

4.7 确保已排序数组保持有序 153

4.8 数组项求和 158

4.9 按出现率排序数组 159

4.10 打乱数组 161

4.11 获取数组的N个最小项 163

4.12 使用Injection构建散列 165

4.13 提取部分数组 167

4.14 在数组上处理集合运算 170

4.15 集合划分或分类 173

第5章 散列 177

5.1 使用符号作为散列键 179

5.2 创建带默认值的散列 181

5.3 向散列添加元素 182

5.4 从散列中去除元素 185

5.5 使用数组或其他可修改对象作为散列键 186

5.6 为相同散列键保持重复值 188

5.7 在散列上迭代 190

5.8 按插入顺序在散列上迭代 192

5.9 散列打印 193

5.10 反转散列 196

5.11 随机选择加权列表 197

5.12 构建柱状图 200

5.13 重新映射散列的键与值 202

5.14 提取部分散列 203

5.15 使用正则表达式搜索散列 204

第6章 文件与目录 206

6.1 检查文件是否存在 209

6.2 检查对文件的访问 210

6.3 更改文件权限 212

6.4 查看上次使用文件的时间 216

6.5 目录清单 217

6.6 读取文件内容 220

6.7 写文件 224

6.8 写临时文件 225

6.9 从文件中挑选随机行 227

6.10 比较两个文件 228

6.11 在“只读一次”输入流上执行随机访问 232

6.12 遍历目录树 234

6.13 文件加锁 237

6.14 备份至带版本号的文件名 240

6.15 伪装字符串为文件 242

6.16 重定向标准输出或输出 245

6.17 处理二进制文件 247

6.18 删除文件 251

6.19 截短文件 252

6.20 查找所需文件 253

6.21 查找并修改当前工作目录 255

第7章 代码块与迭代 257

7.1 代码块的创建与调用 260

7.2 编写接收代码块的方法 262

7.3 将代码块参数与变量绑定 264

7.4 作为闭包的代码块:在代码块内使用外部变量 267

7.5 在数据结构上编写迭代器 268

7.6 更改对象的迭代方式 271

7.7 编写分类或收集的代码块方法 273

7.8 停止迭代 275

7.9 并行地在多个迭代变量上循环 277

7.10 隐藏块方法中的设置与清除 281

7.11 使用回调的松耦合系统 284

第8章 对象与类 288

8.1 管理实例数据 290

8.2 管理类数据 293

8.3 检查类或模块的成员 296

8.4 编写一个继承类 298

8.5 方法重载 300

8.6 验证并修改属性值 302

8.7 定义虚属性 304

8.8 授权对另一对象的方法调用 305

8.9 对象到不同类型的转换与强制转换 308

8.10 从任意对象获取人类可读的打印输出 312

8.11 接收或传递参数的变量数目 315

8.12 模拟关键字参数 317

8.13 调用超类的方法 319

8.14 创建抽象方法 321

8.15 冻结对象以防修改 324

8.16 生成对象的副本 326

8.17 声明常量 329

8.18 实现类方法和singleton方法 331

8.19 通过私有化方法控制访问 333

第9章 模块与命名空间 337

9.1 使用混入模拟多重继承 337

9.2 使用模块扩展特定对象 341

9.3 混用类方法 343

9.4 实现Enumerable:编写一个方法,获得22种免费方法 345

9.5 使用命名空间避免名字冲突 347

9.6 按需自动加载库 349

9.7 包括命名空间 351

9.8 初始化模块定义的实例变量 352

9.9 自动初始化混合插入的模块 353

第10章 反射与元编程 357

10.1 查找对象的类和超类 358

10.2 列出对象的方法 359

10.3 列出对象独有的方法 362

10.4 获得方法的引用 363

10.5 修正别人类中的错误 365

10.6 侦听类的变化 367

10.7 检查对象是否具有必需的属性 369

10.8 响应对未定义方法的调用 371

10.9 自动初始化实例变量 375

10.10 使用元编程避免刻板代码 377

10.11 带字符串计算的元编程 379

10.12 计算早先上下文中的代码 382

10.13 取消定义方法 383

10.14 为方法起别名 386

10.15 面向方面的编程 389

10.16 强制实施软件契约 391

第11章 XM L和HTM L 396

11.1 检查XML的良构性 397

11.2 从文档的树结构中提取数据 399

11.3 解析文档时提取数据 401

11.4 使用XPath导航文档 403

11.5 解析不合法标记 405

11.6 将一个XML文档转换为一个散列 408

11.7 验证XML文档 411

11.8 取代XML实体 414

11.9 创建并修改XML文档 417

11.10 压缩XML文档中的空白 420

11.11 猜解文档的编码 422

11.12 从一种编码转换为另一种编码 423

11.13 从HTML文档中提取所有URL 424

11.14 将纯文本转换为HTML 428

11.15 将HTML文档从Web转换为文本 429

11.16 一个简单的提要聚合器 432

第12章 图形与其他文件格式 437

12.1 缩略图形 437

12.2 句图形中添加文本 440

12.3 将一个图形格式转换为另一种 443

12.4 用图表示数据 446

12.5 使用Sparkline添加图形化上下文 449

12.6 强加密数据 453

12.7 解析逗号分隔的数据 455

12.8 解析非完全逗号分隔的数据 457

12.9 生成并分析Excel电子数据表 459

12.10 使用Gzip和Tar压缩并存档文件 462

12.11 读写ZIP文件 465

12.12 读写配置文件 467

12.13 生成PDF文件 468

12.14 将数据表示为MIDI音乐 473

第13章 数据库和持久性 477

13.1 用YAML串行化数据 480

13.2 用Marshal串行化数据 484

13.3 用Madeleine保持对象 485

13.4 用SimpleSearch索引结构化文本 488

13.5 用Ferret索引结构化文本 490

13.6 使用Berkeley DB数据库 493

13.7 在Unix上控制MySQL 495

13.8 找到查询返回的行数 496

13.9 与MySQL数据库直接对话 499

13.10 和PostgreSQL数据库直接对话 501

13.11 用ActiveRecord使用对象相关映射 504

13.12 使用对象相关映射Og 508

13.13 以编程方式构建查询 512

13.14 用ActiveRecord确认数据 516

13.15 阻止SQL注入攻击 519

13.16 在ActiveRecord里使用交易 522

13.17 添加挂钩程序到表事件中 524

13.18 用数据库Minxin添加标签 526

第14章 Internet服务 531

14.1 抓取Web页面的内容 532

14.2 发送HTTPS Web请求 534

14.3 自定义HTTP的请求头文件 536

14.4 执行DNS查询 539

14.5 发送邮件 541

14.6 用IMAP阅读邮件 545

14.7 用POP3阅读邮件 549

14.8 作为FTP客户端 552

14.9 作为Telnet客户端 554

14.10 作为SSH客户端 558

14.11 复制文件到其他机器 560

14.12 作为BitTorrent客户端 561

14.13 ping机器 564

14.14 编写Internet服务器 565

14.15 分析URL 567

14.16 编写CGI脚本 570

14.17 设置cookie和其他HTTP响应头文件 573

14.18 用CGI处理文件上传 575

14.19 用WEBrick运行servlet 578

14.20 真实世界的HTTP客户端 584

第15章 Web开发:Ruby on Rails 588

15.1 编写简单的Rails应用程序显示系统状态 590

15.2 从控制器传递数据到视图 593

15.3 创建页眉和页脚的布局 596

15.4 重新定位不同的位置 599

15.5 用render显示模板 601

15.6 集成数据库到Rails应用程序中 604

15.7 理解复数规则 607

15.8 创建登录系统 609

15.9 保存散列化的用户密码到数据库中 613

15.10 转义显示用的HTML和JavaScript 615

15.11 设置并找回会话信息 616

15.12 设置并找回Cookie 619

15.13 提取代码到辅助函数中 621

15.14 重构视图为视图的部分片断 623

15.15 用script.aculo.us添加DHTML效果 627

15.16 生成操作模型对象的表格 629

15.17 创建Ajax表格 633

15.18 在Web站点上发布Web服务 636

15.19 用Rails发送邮件 639

15.20 自动发送错误信息到邮箱 641

15.21 文档化Web站点 643

15.22 Web站点的单元测试 645

15.23 在Web应用程序中使用断点 648

第16章 Web服务及分布式编程 652

16.1 搜索Amazon上的书 653

16.2 找到Flickr上的照片 656

16.3 编写XML-RPC客户端 659

16.4 编写SOAP客户端 662

16.5 编写SOAP服务器 663

16.6 用Google的SOAP服务搜索Web 665

16.7 使用WSDL文件更简单地构建SOAP调用 667

16.8 用信用卡支付 669

16.9 通过UPS或FedEx找到装运包的费用 671

16.10 在任意数目的计算机间共享散列 672

16.11 实现分布式查询 676

16.12 创建共享的“白板” 678

16.13 通过访问控制列表保障DRb服务的安全 682

16.14 通过Rinda自动发现DRb服务 683

16.15 代理无法分布的对象 685

16.16 用MemCached在分布式RAM上保存数据 688

16.17 用MemCached高速缓存重要结果 690

16.18 远程控制的Jukebox 694

第17章 测试、调试、优化以及文档化 700

17.1 只在调试模式下运行代码 701

17.2 发出异常 703

17.3 处理异常 705

17.4 在异常后重新运行 707

17.5 添加日志到应用程序中 709

17.6 创建并理解Traceback 711

17.7 编写单元测试 714

17.8 运行单元测试 717

17.9 测试使用外部资源的代码 720

17.10 使用断点审查并改变应用程序的状态 724

17.11 文档化应用程序 727

17.12 记录应用程序 731

17.13 Benchmark竞争性解决方案 734

17.14 一次运行多个分析工具 736

17.15 谁调用了该方法?调用图形分析器 738

第18章 打包和发布软件 741

18.1 通过查询gem知识库寻找库 742

18.2 安装并使用gem 745

18.3 要求gem的某个特定版本 748

18.4 卸载gem 751

18.5 为已安装的gem读入文档 752

18.6 打包代码为gem 754

18.7 发布gem 757

18.8 用setup.rb安装并创建独立Ruby程序包 760

第19章 用Rake自动执行任务 763

19.1 自动运行单元测试 765

19.3 清除生成的文件 770

19.4 自动构建gem 771

19.5 收集代码的统计信息 773

19.6 发布文档 776

19.7 并行运行多个任务 778

19.8 通用的项目Rakefile 779

第20章 多任务和多线程 787

20.1 在Unix上运行守护进程 788

20.2 创建Windows服务 791

20.3 用线程一次做两件事情 795

20.4 同步访问一个对象 797

20.5 中止线程 800

20.6 在很多对象上同时运行代码块 802

20.7 用线程池限制多线程 805

20.8 用popen驱动外部进程 808

20.9 通过Unix shell命令抓取输出和错误流 810

20.10 控制其他机器上的进程 811

20.11 避免死锁 812

第21章 用户界面 816

21.1 一次得到输入中的一行 817

21.2 一次得到输入的一个字符 819

21.3 分析命令行参数 822

21.4 测试程序是否交互运行 825

21.5 设置和卸载Curses程序 825

21.6 清空屏幕 828

21.7 决定终端大小 829

21.8 改变文本的颜色 831

21.9 读入密码 834

21.10 允许用Readline编辑输入 835

21.11 使得键盘指示灯闪烁 836

21.12 用Tk创建一个GUI应用程序 839

21.13 用wxRuby创建一个GUI应用程序 843

21.14 用Ruby/GTK创建一个GUI应用程序 847

21.15 用RubyCocoa创建一个Mac OS X应用程序 851

21.16 用AppleScript得到用户输入 859

第22章 用其他语言扩展Ruby 861

22.1 为Ruby编写C扩展程序 862

22.2 在Ruby中使用C库 865

22.3 通过SWIG调用C库 869

22.4 通过SWIG调用C库 871

22.5 用JRuby使用Java库 874

第23章 系统管理 878

23.1 脚本化外部程序 879

23.2 管理Windows服务 880

23.3 作为另一个用户运行代码 882

23.4 不用cron或at运行周期性任务 884

23.5 删除匹配正则表达式的文件 885

23.6 批量重命名文件 888

23.7 找到复制的文件 891

23.8 自动备份 894

23.9 在用户目录下规范化所有权和权限 895

23.10 为给定用户杀死所有进程 898