公司有项目组进行系统重构,采用了Ruby On Rails框架,我也抽出时间学习了一下,并对几个原来用Java开发的定时任务、消息监听进行了ruby改造,学习过程中主要参考两本书:《Programming Ruby中文版(第二版)》 、《Ruby on Rails教程》,开发工具:vim、RubyMine。
Linux下:安装RVM和GEM后,之后所有的安装,都可以交给RVM和GEM了,安装RVM默认会装好GEM。
(1)curl -L https://get.rvm.io | bash -s stable
(2)source /etc/profile.d/rvm.sh ,这个脚本的目的是把rvm相关加入$PATH路径
安装完毕后界面如下(这个是从github下载代码,国内非常慢,多尝试几次):
安装RVM之后,安装ruby组件:
(1)安装ruby:rvm install ruby
这一步rvm会帮我们自动安装很多linux依赖包(如果linx本身没有的话),如果自动装不上,也可以根据屏幕提示收到安装,比如可能有提示进行如下安装:
yum install -y libyaml-devel autoconf gcc-c++ readline-devel zlib-devel openssl-devel automake libtool bison
网速不好,机器太烂(比如我的单CPU1G内存虚拟机),可能会花很多时间(比如2个小时),先有个心理准备
(2)安装rails:gem install rails
输入ruby -v ,显示ruby的版本,可以看到ruby已经装好。
我们也可以通过which ruby,查看ruby程序的位置。之所以直接输入ruby就能运行,是因为rvm已经把ruby加到$PATH环境变量中了。
我们输入echo $PATH,可以看到$PATH环境变量中已经包含ruby的路径了,如下:/usr/local/rvm/bin 。
使用irb,写出第一行代码:puts "Hello, World!"
也可以编辑一个文件:test.rb,内容也只有一行:puts "Hello,World",然后再命令行运行:ruby test.rb,可以看到输出了正确的结果。
我们也可以这样设置test.rb,内容如下:
#!/usr/local/rvm/bin/ruby
puts "Hello,World"
然后再命令行给test.rb可执行的权限:chmod 777 test.rb,然后我们在命令行输入:./test.rb,可以看到,输出了正确的结果。
(1)yum -y install mysql-devel
由于我的rhel6.2机器yum下面有错误的.repo文件,导致我一直连不上yum源服务器,执行了如下操作:
cd /etc/yum.repos.d/
rm -fr 无用的.repo文件
yum clean all
vim /etc/yum.repos.d/rhel-source.repo(这个文件的内容如下)
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://192.168.1.11/yum/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-source-beta]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
经过以上两步,就可以连接mysql数据库了,例子代码如下:
require 'mysql2'
class Test
def initialize
@db = Mysql2::Client.new(:host => "192.168.211.245",
:port => 3306,
:username => "mysql",
:password => "mysql",
:database => "yitian_b2c_db")
puts "a"
end
end
if __FILE__ == $0
test = Test.new
end
支持cron表达式,参考网址:http://www.cnblogs.com/fantiantian/archive/2013/10/26/3388367.html
先安装:gem install rufus-scheduler
require 'logger' 就可以使用了,参考网址:
http://www.360doc.com/content/12/0203/17/33776_183928682.shtml
例子代码如下:
buffer = "";
x = Builder::XmlMarkup.new(:target => buffer, :indent => 1)
x.instruct! :xml,:version => '1.0',:encoding =>'UTF-8'
x.comment! "书本信息"
x.library("shelf" => "Recent Acquisitions") {
x.section("name" => "ruby"){
x.book("isbn" => "0672310001"){
x.title "Programming Ruby"
x.author "Yukihiro"
x.description"Programming Ruby-
The Pramatic Programmer's Guide"
}
}
}
puts buffer
fh = File.new("xml.xml","w")
fh.puts buffer
fh.close
参考网址:
http://builder.rubyforge.org/
http://developer.51cto.com/art/200912/171073.htm
http://blog.csdn.net/leaf1984zh/article/details/5652728
安装hessian:gem install hessian2
hessian代码示例:
require 'hessian2'
client = Hessian2::HessianClient.new(url)
client.xxx
源代码下载地址:http://pan.baidu.com/s/1i3unFXN
历时3天,完成我的第一个ruby程序,是改写的一个定时xml生成程序,干的不错!
一点小经验积累,如下:
initialize里面,打开数据库连接,是不可取的。如果程序执行很长时间,下次来用这个连接时,可能已经关闭了,最好用时open,用完close,不知道ruby里面有没有连接池的概念,可以进一步提高性能;
测试环境实践发现,hessian协议性能貌似低于dubbo协议,大约dubbo 2-3倍于 hessian,这个程序是2.6倍,很简单的请求,平均dubbo一次是4-5毫秒,hessian一次是11-12毫秒;
生产环境实际运行,hessian协议性能貌似和dubbo协议基本一致,运行了约20万次,总计消耗时间7分钟和8分钟的区别。
安装:gem install bunny
推荐文章:http://railstutorial-china.org 有这个可以说足够了。
linux机器可能没有安装Sqllite-devel,安装一下吧:yum install sqlite-devel
linux机器可能没有安装JavaScript的服务器解释引擎,安装一下吧:gem install execjs gem install therubyracer,貌似这两步之后也不行,我的机器是REHL6.2,需要安装node.js才行,步骤如下:
wget http://nodejs.org/dist/v0.10.5/node-v0.10.5.tar.gz
tar xfv node-v0.10.5.tar.gz
cd node-v0.10.5
./configure
make
make install
参考文章:http://www.cnblogs.com/qiuliang/archive/2013/04/29/3050396.html
http://blog.csdn.net/puma_dong/article/details/37915185
安装包下载地址:http://pan.baidu.com/s/1i3unFXN
官网下载:http://rubyinstaller.org/downloads
执行rubyinstaller-2.0.0-p353-x64.exe,进行安装,安装完毕后,cmd里面执行:ruby -v,显示版本号,说明ruby安装成功;
执行gem -v,显示版本号,说明RubyGems(Ruby程序包管理器)也已经被默认安装好了;
安装DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe,解压到一个固定的位置,使用后不能变换位置,更多参考:
https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
步骤大致如下:
1) 将下载 DevKit 解压到 D:\DevKit 目录。
2) 打开 CMD 窗口,进入 D:\DevKit 目录,输入ruby dk.rb init 。#生成config.yml,这里会检查将要添加DevKit支持的Ruby列表,只支持通过RubyInstaller安装的Ruby。
3) 输入 ruby dk.rb install #开始安装。
4) 输入 ruby dk.rb review #检查要添加DevKit支持的Ruby列表是否有误,可以略过。
5) 输入 gem install rdiscount --platform=ruby 。#这一步只是验证DevKit是否安装成功,如果能安装rdiscount成功说明安装DevKit成功,也可以不做。
安装完以上后,可以安装rails了:
从CMD提示窗口输入指令:gem install rails 开始安装rails。
如不想安装文档文件,可以输入:gem install rails --no-rdoc --no-ri
程序自动下载并安装rails, 耐心等待。
安装完成后,你可以在路径 D:\Ruby\lib\ruby\gems\1.9.1\gems 看到些东西,都是rails的包文件,与ruby安装在同一目录下。
这时在CMD提示窗口输入指令: rails -v 显示rails的版本号。
参考网址:http://www.admin10000.com/document/140.html