Ruby学习
文章平均质量分 63
ningandjin
我在追寻自己的未来
展开
-
Ruby之猴子补丁
[size=small]何谓猴子补丁(Monkey Patch)?在动态语言中,不修改源代码而对功能进行追加和变更。使用猴子补丁的目的:1、追加功能2、功能变更3、修正程序错误4、增加钩子,在执行某个方法的同时执行一些其他的处理,如打印日志,实现AOP等,5、缓存,在计算量很大,结算之后的结果可以反复使用的情况下,在一次计算完成之后,对方法进行替换可以提高处理速度。...原创 2012-06-25 21:58:52 · 230 阅读 · 0 评论 -
Sinatra 101(3)--自动化测试
首先,安装rspec,非常简单[code="shell"]gem install rspec[/code]rspec只是提供了各种基础的测试功能,要测试Sinatra的网络功能,还需要安装rack,和rack-test, 这两个gem的Rack::Test::Methods模块提供了很多模拟应用请求的功能, 还提供了很多assertions用以验证repsonse。[code="she...2013-04-24 18:44:15 · 76 阅读 · 0 评论 -
Ruby之类的真相
[b]打开类和猴子补丁[/b]在Ruby中,类定义的方法和其他的语句没有任何区别,都是一行一行的执行下去的。如下例子:[code="ruby"]class Example def method_1 puts "method 1" endendclass Example def method_2 puts "method 2" ende...2013-04-29 18:12:53 · 74 阅读 · 0 评论 -
Ruby之方法的妙用
[b]方法的查找与执行[/b]Ruby中对象的方法都定义在类中,当对象想要执行一个方法时,首先需要找到该方法,而Ruby编译器查找方法的方式就是,第一步在自己的类中找,没有的话,就沿着该类的祖先链(ancestors)一直往上找。 [code="ruby"]String.ancestors # => [String, Comparable, Object, Kernel, B...2013-05-01 20:18:06 · 110 阅读 · 0 评论 -
Ruby之代码块的迷思
[b]块的定义、调用与运行[/b]在Ruby中,定义一个代码块的方式有2种 ,一是使用do … end, 另外一种是用大括号“{}”把代码内容括起来。代码块定义时也是可以接受参数的。但是,只有在调用一个方法的时候才可以定义一个块。块定义好之后,会直接传递给调用的方法,在该方法中,使用“yield”关键字即可回调这个块。[code="ruby"]def block_method(a,...2013-05-05 18:51:39 · 171 阅读 · 0 评论 -
Ruby之对象模型的大一统
[size=large][b]当前类[/b][/size]不同于JAVA等静态语言,类定义中只能执行定义变量和方法的语句,在Ruby中,类定义的代码和其他的代码是一样的,可以在其中执行任何的Ruby语句。[code="ruby"]result = class MyClass puts 'Hello' # => Hello selfendputs result # =...2013-05-14 20:53:07 · 83 阅读 · 0 评论 -
HAML学习笔记
一个技术能够风靡,一定是有它的原因的,在熟悉之前,我们没有资格去对它做任何的判断。Haml 是一种简洁优美的模板语言,使用它之后可以大大缩减模板代码,减少冗余,提高可读性。并且Haml是一种完备的模板语言,没有牺牲当前模板语言的任何特性。Haml的使用通常有两种方式: 一是作为Ruby on Rails的插件来使用; 二是作为一个独立的Ruby module来使...原创 2013-01-20 22:51:36 · 368 阅读 · 0 评论 -
使用Sinatra创建Soap Web Service
简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。本文中得示例是Soap与Http结合的Web servi...2013-11-21 17:58:14 · 94 阅读 · 0 评论 -
Luhn算法的Ruby实现
什么是Luhn算法? Wiki上得标准定义:[url]http://en.wikipedia.org/wiki/Luhn_algorithm[/url]Luhn算法最常用的领域是信用卡号码的有效性验证,VISA和MasterCard等巨头都使用了该算法。Luhn算法的基本原理非常简单:(eg:49927398716)第一步:把信用卡号倒序(61789372994)第二步:取...2013-11-22 20:18:29 · 202 阅读 · 0 评论 -
Sinatra 101 (2)–快速构建一个Note系统
[b]Views[/b]Sinatra中,默认所有的页面都放在views目录下,而且其支持多个html模板系统,比方说,haml,erb等等。这儿以Haml为例,其他的模板系统使用方法类似。 Haml可以帮助我们更有效的编写HTML文件。在Sinatra,使用haml非常方便,只需要在文件头引入haml即可:[code="ruby"]require 'haml'[/code]使用:...原创 2013-04-22 15:51:49 · 92 阅读 · 0 评论 -
Sinatra 101(1)
[b]介绍[/b]Sinatra是由 Blake Mizerany在2007年开发出来的基于Rack之上带有轻量级的HTTP请求方式的领域特定语言(DSL)。其非常简洁而优雅。当你从Rails转移到Sinatra,你会像刚从J2EE转到Rails一样震撼,感谢开发者,它们让Web开发这件事简单而充满乐趣。Sinatra有几大优点:[list][*]简单但功能完备,你可以非常轻松的在一个...原创 2013-04-19 16:09:41 · 76 阅读 · 0 评论 -
《松本行弘的程序世界》之让程序飞(Ruby版)
[size=small][b]为什么要做性能优化?[/b] “过早优化是万恶之源”,作为一名程序员,无可否认让程序高速运行是一种智力的挑战,让程序的运行速度提高10倍甚至上千倍,这种成就感不能不说是一种极大的乐趣,这对于程序员来说,倒不是什么坏事,但是,做一个项目的时候,都是有目标的,性能优化是实现目标的一个手段,切忌把手段当成了一个目标。因此,性能优化是需要权衡。预算,开发效率,开...原创 2012-07-01 00:15:18 · 76 阅读 · 0 评论 -
《Rails Step by Step》之Rails的目录结构
刚开始学Rails,因为其“约定大于配置”的特性,让开发人员省了很多事,但是如果不了解这些约定,那么就很可能会迷失在各种魔幻的约定语法中,我个人首先就迷失在了Rails的文件目录中, 使用Rails开发一个新项目的时候,可以直接使用[code="ruby"]rails new first_app[/code], rails会生成如下的目录结构:[img]http://dl.iteye.c...原创 2012-07-09 21:41:17 · 75 阅读 · 0 评论 -
Ruby&CouchDB之Hello World
[code="ruby"]require 'net/http'module Couch class Server #类默认构造函数名,ruby中null使用nil表示 def initialize(host,port,options = nil) #‘@’表示类成员变量 @host=host @port=port ...原创 2012-07-09 22:20:02 · 81 阅读 · 0 评论 -
End To End RoR Demo
[b]1、生成项目架构[/b][code="shell"]rails new demo_app[/code]该命令会生成之前的博文中提到的标准的rails项目框架。[code="shell"]bundle install[/code]该命令会自动安装当前项目需要的所有Gem,(注意,如果安装gem时,提示没有写Gem库目录的权限,是因为你使用了系统默认的Ruby,一般来说,使用R...原创 2012-07-13 22:02:57 · 70 阅读 · 0 评论 -
Rails的MVC和路由策略
[b][size=small]MVC In Rails[/size][/b][img]http://dl.iteye.com/upload/attachment/0070/7850/0a156cc2-c1b3-3ef5-b669-76b184e8efe6.png[/img][size=small]在rails中,发送一个请求(/users)的处理全过程如下:1)、浏览器发送请求(/us...原创 2012-07-15 20:53:45 · 81 阅读 · 0 评论 -
GitHub的Ruby代码规范
最近开始接触Ruby和Rails的开发,个人是一个疯狂迷恋编写代码边format的编写方式,看到摆的凌乱的代码就会有一种无法言说的焦躁感,同样的习惯被我带到了Ruby的学习过程中,可是应该如何确定Ruby源文件的format呢? GitHub公布了他们的答案:[b]Ruby Style Guide:[/b]https://github.com/bbatsov/ruby-style-g...原创 2012-04-07 11:33:37 · 211 阅读 · 0 评论 -
关于DSL(Domain Specification Language)的由来
最近在学习Ruby的时候,看到Martin Fowler的文章有说,Ruby流行的一个很重要原因是它非常适合用来编写内部领域特定语言(Internal DSL),当时对DSL这个新鲜的名词非常不解,适逢公司有精于此道的大佛,万幸求得了一次非常有收获的Session,讲解了 何为DSL? DSL为什么会诞生? 1、知识漏斗(Knowledge Funnel) 人在学习一个新知...原创 2012-04-10 22:42:53 · 284 阅读 · 0 评论 -
Cucumber 入门学习
1、Cucumber是什么 Cucumber是一个在敏捷团队十分流行的自动化的功能测试工具,但是其不仅仅是一个测试工具,它能够为我们建立一个易读的,可执行的特性文档。 2、Cucumber的特点(1)、易于安装,使用。无论是在Ruby平台,.Net平台,Java平台安装都很容易。(2)、集成度高,对开发环境没有破坏,并和多种Web开发框架集成。(3)、易于理解,Cu...原创 2012-04-11 21:38:57 · 438 阅读 · 0 评论 -
Ruby IO之ARGF,ARGV
在使用ruby脚本时, 经常需要用到在参数中给出文件名,然后再脚本中可以处理该文件的功能,或者说从STDIN获取输入,然后处理得到某个结果。 而ruby为开发者处理类似的问题提供了一个很好的解决方法 --- ARGF“ARGF is a stream designed for use in scripts that process files given as command-line a...原创 2013-11-23 15:44:18 · 411 阅读 · 0 评论