http://www.erikveen.dds.nl/distributingrubyapplications/rails.html:
In this tutorial, we'll go through the following steps: Setup the environment Create the SQLite database Develop the Rails application Create the RBA (= Ruby archive) from the application with Tar2RubyScript Create the standalone executable with RubyScript2Exe module Rails
class Configuration
def database_configuration
#conf = YAML::load(ERB.new(IO.read(database_configuration_file)).result) 会出错
conf = YAML::load(File.read(database_configuration_file))
if defined?(TAR2RUBYSCRIPT)
conf.each do |k, v|
if v["adapter"] =~ /^sqlite/
v["database"] = ......
Wiki:http://zh.wikipedia.org/zh-cn/Ruby_on_Rails
Ruby on Rails,也简称 RoR 或 Rails,是一个使用Ruby语言写的开源网络应用 框架,它是严格按照MVC结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。
Rails的设计原则包括“不要重复自己”(Don't Repeat Yourself)和“约定胜于配置”(Convention Over Configuration)
Ruby on Rails的模型-视图-控制器架构由以下各部分组成:
模型
模型包含着应用的状态,状态可能是临时的也可能是长久性保存在数据库中的。需要注意的是模型不仅包含数据,而且包含数据代表的逻辑。在 Rails 中,模型通常是由一些代表关系数据库中RDBMS表的类组成的。
在RoR中,模型类是通过Active Record模式进行处理的。一般来说,程序员要做的是继承ActiveRecord 类,同时程序会自动计算出要使用哪个RDBMS表,这个表有哪些列。表与表之间的关系通过简单的命令来指明。
控制器
控制器将用户界面和数据模型关联起来,并充当协调运作的角色。它接收各种用户操作,更新数据模型,并用合适的view展示结果给用户。象他的名字一样,可以说应用的主要控制中心就是各个控制器。
视图
......
1:FXRuby is a library for developing powerful and sophisticated cross-platform graphical user interfaces (GUIs) for your Ruby applications. It’s based on the FOX Toolkit, a popular open source C++ library developed by Jeroen van der Zijp. What that means for you as an application developer is that you’re able to write code in the Ruby programming language that you already know and love, while at the same time taking advantage of the performance and functionality of a featureful, highly optimized C++ toolkit. Projects Using FXRuby Projects using FXRuby include: BeERP is a commercial ERP built entirely with the FXRuby library. Discretizer is an interactive mesh creation tool. It can be used to create geometry and meshes for three dimensional flow simulations (CFD). foxGUIb is an interactive gui builder and codegenerator for FXRuby. This tool makes it easy to quickly build complex and good looking graphical user interfaces for Ruby. FXRI is a FXRuby Interface to RI th ......
最近一段时间,在忙乎ruby的测试框架。
从不熟悉BDD,RSpec到目前能够稍微做点东西,感觉非常不错。
Ruby是门非常灵活的脚本语言,从而也自然想用它作为测试脚本。让我们编写的代码进入TDD的模式。
当然TDD经过这些年的发展,现在已经进入BDD(Behaviour-Driven Develop)的时代。
BDD和TDD主要的转变是目标的转变。
TDD主要是以Test为主,而不是以清晰解决问题为主。
而BDD就是以非常清晰的方式说明当前的代码的意图,从而便于人们的沟通(包括非编码人员也很容易理解)。
当然BDD还是有Test的,它只不过是将先前TDD的模式稍微更进一步,它可以清晰的表达当前的功能。
从编写代码角度来说, BDD和TDD是类似的。
RSpec 就是ruby实现BDD的框架。
安装: gem install rspec
编写一个脚本test_spcec.rb:
describe "App " do
it 'should be empty ' do
end
end
运行:
spec -fs test_spcec.rb
上面我们用的是一个dummy的脚本,你能够运行起来。
具体的使用,网上有非常类似TDD的模式编写的代码。
Test-driven development and RSpec:
http://www.ibm.com/developerworks/web/ ......
定义
RoR是Ruby on Rails的缩写。Ruby on Rails是一个用于编写网络应用程序的框架,它基于计算机软件语言Ruby,给程序开发人员提供强大的框架支持。Ruby on Rails包括两部分内容:Ruby语言和Rails框架。
什么是Ruby?
Ruby 语言是一种动态语言,它与Python、Smalltalk和Perl这3种编程语言有些类似。Ruby语言起源于日本,它的研发者是日本人松本行弘(Matsumoto Yukihiro)。松本行弘在1993年开始着手Ruby语言的研发工作,他开发Ruby语言的初衷是为了提高编程的效率。 1995年12月Matz推出了Ruby的第一个版本Ruby 0.95。
Ruby语言的主要特点如下:
1.纯的面向对象语言
在Ruby中,一切皆是对象。下面举一个例子来更直观地说明Ruby语言的这一特点。
在Java中,求一个数的绝对值的代码如下。
int c = Math.abs(-20);
而在Ruby语言中,一切皆是对象,也就是说“-20”这个数也是一个对象,因此,求一个数绝对值的Ruby代码形式如下。
c = -20.abs
这样的代码编写方式是不是更形象一些呢?
2.解释型脚本语言
Ruby 语言是解释型脚本语言,它既有脚本语言强大的字符串处理能力和正则表达式,又不失解释型语言的动 ......
Ruby虽然是动态脚本语言,但是和Java一样,带有VM,有自己的内存堆,创建对象的时候在堆里面分配内存,对象使用完毕由GC进行回收。但是通过我们运营Rails网站两年多的实践来看,Ruby VM的GC还是存在很大的问题。简单的来说,就是GC之后,尽管对象已经完全回收,但是物理内存释放不够充分,有泄漏的现象。通过pmap来dump ruby进程物理内存地址映射表进行分析,观察到ruby的内存堆总是在不停的扩张,GC之后回收不干净。而我对比观察Java VM,其Full GC之后,物理内存释放的非常干净。所以用Ruby做服务器长期的跑,就会发现Ruby进程没有理由的缓慢泄漏内存,内存堆缓慢增长,貌似没有上限。
由于pmap命令可以dump进程的内存映射表,因此我们可以对比RubyVM和JVM在GC前后的内存映射情况。比方说Ruby的内存状况大概是这样的:
下图是一个Ruby进程的物理内存映射表,堆内存占据的空间是我抽取出来的三行:
Ruby代码
00000000005d4000 125260K rwx-- [ anon ]
0000002a95c23000 23456K rw--- [ anon ]
0000002a99186000 50980K r ......