请输入您要查询的百科知识:

 

词条 RubyCookbook中文版
释义

《RubyCookbook》是针对Ruby编程语言的全面的问题求解指南。它为真实世界的问题提供了上百种解决方案,并带有清楚的解释和上千行可用于用户自己项目中的代码。从数据结构和算法到对最前沿技术的集成。学到如何使用下列内容进行编程:字符串和数字、数据库、数组和哈希表、图像、类、模块和命名空间、互联网服务,如电子邮件、SSH和BitTorrent、反射机制和元编程(metaprogramming)、XML和HTML文件处理、多任务、RubyonRails(包括Ajax集成)、图形界面和终端界面

书名:RubyCookbook中文版

又名:RubyCookbook

作者:卡尔松 理查得松

译者:郑路长

ISBN:9787302147701

类别:资料教材

定价:108.00元

出版社:清华大学出版社

出版时间:2007-4-1

前言

这是一本关于秘诀的书籍,其中包括:对一般问题的解决方案、复制和粘贴代码段、解释、示例和简短指南。本书意欲为读者节省时间。人们总是说,时间就是金钱,但时间也是个人生命的构成。我们的生命应当花在创造新事物上,而不是用于抗击我们自己的错误或者解决那些已经解决过的问题。我们提供此书的愿望是:它的所有读者所节省的时间远远超过我们编写它所花掉的时间。

Ruby编程语言本身是一种非常节省时间的工具,与其他编程语言相比,它能产生更高的生产率,因为用户会花费更多的时间让计算机做自己想做的事情,而思考语言本身的时间则较少。但是,对于一名Ruby程序员,可能有很多情况即使没做任何事情也花费了 很多时间,下面是我们遇到过的各个方面:

将时间花在编写通用算法的Ruby实现上。

将时间花在调试通用算法的Ruby实现上。

将时间花在发现和修正Ruby特有的缺陷上。

将时间花在应当自动执行的重复性任务上(包括重复性编程任务!)。

将时间花在重复其他人已经公开实现过的工作上。

将时间花在搜索运行X的库上。

将时间花在对运行X的多个库进行评估和确定上。

将时间花在由于文档的匮乏或过时而学习如何使用库上。

将时间浪费在由于惧怕而不敢接触有用的技术上。

我们以及本书的许多投稿人还清楚地记得我们自己浪费的那些时日。我们将自己的经历提炼进本书中,从而让读者不再浪费自己的时间——或者至少让读者愉快地将时间花在其他更有趣的问题上。

我们的另一个目标是扩大读者的兴趣。如果读者阅读本书后希望能够使用Ruby生成算法音乐,没问题,12.14节将会节省读者的时间。迄今为止,读者更可以不必考虑可能性问题。本书中每个秘诀的形成和编写都在理念上带有如下这样两个目标:节省读者时间以及让读者的头脑对新观点保持活跃。

关于Ruby

Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java 平台)、IronRuby等其他平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。因为Perl发音与6月诞生石pearl(珍珠)相同,因此Ruby以7月诞生石ruby(红宝石)命名。

作者简介

LucasCarlson是一个专业Ruby程序员,专长RailsWeb开发。他已经负责编写了6个库,同时为很多其他库做出了贡献,其中包括Rails和RedCloth。他住在俄勒冈州波特兰市。

目录

前言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.9Time与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章 XML和HTML396

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文档中提取所有URL424

11.14将纯文本转换为HTML428

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上控制MySQL495

13.8找到查询返回的行数496

13.9与MySQL数据库直接对话499

13.10和PostgreSQL数据库直接对话501

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

13.12使用对象相关映射Og508

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.13ping机器 564

14.14编写Internet服务器 565

14.15分析URL567

14.16编写CGI脚本570

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

14.18用CGI处理文件上传575

14.19用WEBrick运行servlet578

14.20真实世界的HTTP客户端584

第15章 Web开发:Ruby on Rails588

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和JavaScript615

15.11设置并找回会话信息616

15.12设置并找回Cookie619

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.22Web站点的单元测试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服务搜索Web665

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远程控制的Jukebox694

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

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

17.2发出异常703

17.3处理异常705

17.4在异常后重新运行707

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

17.6创建并理解Traceback711

17.7编写单元测试714

17.8运行单元测试717

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

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

17.11文档化应用程序727

17.12记录应用程序731

17.13Benchmark竞争性解决方案734

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

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

第18章 打包和发布软件741

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

18.2安装并使用gem745

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

18.4卸载gem751

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

18.6打包代码为gem754

18.7发布gem757

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

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

19.1自动运行单元测试765

19.3清除生成的文件770

19.4自动构建gem771

19.5收集代码的统计信息773

19.6发布文档776

19.7并行运行多个任务778

19.8通用的项目Rakefile779

第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章 用其他语言扩展Ruby861

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

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/23 7:38:30