导言 这一章的标题是 Ready-Made Mixes, 也就是 Ruby 已经准备好的用于 Mix-in 的 Modules, 它们是: Comparable 和 Enumerable, Comparable 常用于比较数字, Enumerable 常用于 Collection 形式的数据.本章介绍了: 如何mix in Comparable 这个 Module 如何mix in Enumerable 这个 Module 如何使用 Comparable 这个 Module 定义: Compar…
HeadFIrst Ruby 第二章总结 methods and classes 前言 这一章讲了如何创建自己的 class,并且讲了在用 class 创建 object 的两个要素: instance variables 和 instance methods.和它们需要注意的一些问题. 创建 method 相关 问题1:括号 be or not be? 在 Ruby 中,如果需要创建的 method 包含参数,那么后面应该有“()” ;如果不需要任何参数,则不需要加“()”,在调用函数的时候也…
前言 在上一章讲述了如何进行基础的操作,比如 处理 GET 请求的 get route, 再比如下载 gem 等等方面的知识.在这一章节,作者告诉我们如何储存.处理数据.整个过程分三步走: 首先,当 user 提交了一个 form 之后, 我们需要 create 一个对应的 Movie 的 object. 然后,我们将 Ruby object 储存进一个格式为 .yml 的 file 中 当 user 点击一个 object 的 ID 之后,能够从 .yml 格式的 file 中得到一个新的 H…
前言 这一章节主要讲了如何利用 Ruby 中的 Sinatra 这个 gem 来创建一个 Web app 的具体流程,其中的要点包括了: Sinatra, a third party library for writing web applications RubyGems,a platform which can download and install libraries automatically. erb, a HTML type of file which has Ruby's fun…
前言 如果想要复用 method, 可用的方法是针对 Class 的 inheritance,但是, inheritance has its limitations,它的缺点有: 只能 inhert 一个 Class Class 的名称有一定的意义,怪异的 inheritance 会导致 class 中的方法多余,或者导致 collegues 的 misundertanding 在 Ruby 中, 可以使用 module 来解决这个问题. 关于 Modules & Mix-ins Modules…
前言 这一章的内容关于 references,讲了当 Ruby 程序中可能会遇到关于 reference 与 object 之间概念混淆而导致的问题. 导言 本章从一个 astronomer 发现 star 并且为之命名的问题展开, astronomer 准备运用前一个 star 当作一个模版,赋值给以后的 star,问题出现为最后前面的 star 数据全部丢失.本章后面也讲了为了达到 astronomer 的目标,关于 hash default object 和 hash default bl…
前言 这一章节介绍了 Ruby 中 hash 这一数据类型的用法和特征. Hash 的定义 与 array 的对比 最大的不同: An array can only use integers as indexes, but a hash can use any object as a key. 其他不同点: array 用 [] 包括起来, hash 用 { } 包括起来.(但是 specify 的时候都是通过 [[) array 查找某一个元素需要遍历, hash 查找一个元素是通过 key…
前言 这一章通过抽取一个文件中的确定的单词的项目进行讲解,主要包括了: File 的打开.阅读与关闭 find_all & refuse方法的相关内容 map 方法的相关内容这章的核心是:关于 block 具有 return value to method 的功能,以及利用这个功能实现 array 中的一些遍历的操作. File 的打开.阅读和关闭 第一种方式:使用普通方法 打开文件:review_file = File.open("review.txt")阅读文件lines…
Install Ruby(安装) For windows you can download Ruby from http://rubyforge.org/frs/?group_id=167 for Linux tryhttp://www.rpmfind.net. Our first program(从此开始) Enter the following into the file, "test.rb". puts "Howdy!" At the C: prompt en…
Michael Feathers是Object Mentor International公司的技术顾问.他的工作不仅是技术开发,他还参与对世界各地技术团队进行培训.指导等工作.他曾开发了将JUnit迁移到C++的CppUnit的初始部分,还有FitCpp——一个C++版的FIT基础测试框架.他是<Working Effectively with Legacy Code>一书的作者. 条件控制是编程中与生俱来的一种结构,但对于我来说,除了给我带来麻烦外,没有发现任何的用处.一次又一次,我不断发现…