RUBY - 技术教程文章

java调用ruby代码【代码】【图】

问题:最近在做一个应用的时候碰到了一个问题。客户端需要调用服务器端传回的脚本信息,然后执行。其中脚本类型包括ruby。而java中调用ruby的代码大致如下:1 String jrubyCode="puts ‘hello world‘"; 2 ScriptEngineManager manager = new ScriptEngineManager(); 3 ScriptEngine engine = manager.getEngineByName("jruby"); 4 engine.eval(jrubyCode);JavaCallRuby却发现最后getEngineByName("jruby")老是返回null。网上搜了很...

【ruby】安装Ruby

系统需求首先确定操作系统环境,不建议在 Windows 上面搞,所以你需要用:Mac OS X任意 Linux 发行版本配置系统包?$ sudo apt-get install -y build-essential openssl curl libcurl4-openssl-dev libreadline6 libreadline6-dev git zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev libxslt-dev autoconf automake libtool imagemagicklibmagickwand-dev libpcre3-dev libsqlite3-dev libmysql-ruby li...

ubuntu编译安装ruby1.9.3,从p551降级到p484【代码】

在升级redmine的时候遇到ruby版本适配的问题。找了些资料。ruby安装包除了官方网站,可以参考 http://ftp.ruby-lang.org/pub/ruby/1.9/ 需要从1.9.3-p551降级到1.9.3-p484。直接安装p484版本。cd /usr/src wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p484.tar.gztar zxf ruby-1.9.3-p484.tar.gz cd ruby-1.9.3-p484 ./configure --prefix=/usr/local --disable-install-doc --with-opt-dir=/usr/local/lib make && ma...

Ruby深入研究笔记1

module是可以定义private方法的module MTestdef aaaputs "aaa"private_methodendprivatedef private_methodputs "this is private_method"end endclass CCinclude MTest endc = CC.new c.aaa?原因我估计是Kernel中定义了private的方法。原文:http://wudixiaotie.iteye.com/blog/2149059

Ruby探针的基本实现原理【代码】

李哲 — MAY 13, 2015语言本身Ruby语言支持语法级别的系统,框架,甚至语言本身的方法复写,一般叫做元编程(meta programming), 此基础之上还有一些术语为mixin,方法的动态定义,运行时类改写等等,这些技术和机制可以让语言本身就能实 现其他语言需要字节码才能实现的功能,例如探针需要hook HttpRequest中的request方法,就可以通过下面的方式实现:class HttpRequest def request_new puts ‘before request‘ re...

ruby on rails mysql2 error【代码】

Q: am having some problems when trying to install mysql2 gem for Rails. When I try to install it by running bundle install or gem install mysql2 it gives me the following error:Error installing mysql2: ERROR: Failed to build gem native extension.How can I fix this and successfully install mysql2?A: On Ubuntu/Debian and other distributions using aptitude:sudo apt-get install libmysql-ruby l...

ruby Errors & Exceptions【代码】

When you first started coding, errors were probably the last thing you wanted to see.After all, it’s not a far stretch to associate “error” with “I messed up”.Hopefully by now you’ve come to appreciate the value of a good error message. Take a look at the two following errors:one + 3 NameError: undefined local variable or method ‘one‘for main:Objectone + 3 TypeError: no implicit conversion...

gem(ruby) 常见用法

Gem介绍:Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/ )源来查找、安装、升级和卸载软件包,非常的便捷。Ruby 1.9.2版本默认已安装Ruby Gem,如果你使用其它发行版本,请参考“如何安装Ruby Gem”。 Ruby gem包的安装方式:所有的gem包,会被安装到 /[Ruby root]/lib/ruby/gems/[ver]/ 目录下,这其中包括了Cache、doc、gems、specifications 4个目录,cache下放置下载的原生gem包,gems下则放置...

ruby函数回调的实现方法【代码】

以前一直困惑ruby不像python,c可以将函数随意传递,然后在需要的时候才去执行。其实本质原因是ruby的函数不是对象。通过查阅资料发现可以使用如下方法:def func(a, b)puts a + b endf = method(:func) f.call(1, 2)上面是使用Method对象封装函数,然后就可以通过操作该Method对象实现函数的参数传递。曾经一度认为上面方法才是将函数作为参数使用的正统方法,后来才发现原来是我太执着于c的函数指针的使用模式里,而没有真正体会...

使用innodb_ruby 分析innodb物理文件

以CentOS6.8为例,在root目录下执行如下的命令:yum install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-develinnodb_ruby 需要至少1.9.3版本的ruby,yum自带的1.8.X版本太低了,需要我们编译安装rubywget https://cache.ruby-china.org/pub/ruby/ruby-1.9.3-p551.tar.gztar zxvf ruby-1.9.3-p551.tar.gzcd ruby-1.9.3-p551./configuremake && make install默认安装到/usr/local/bin 目录下。git clone h...

ruby redis的集群管理器

#========================================================================================== # => redis集群管理器 #========================================================================================== class CacheGroupManagerattr_reader :redis_groups # redis 集群attr_reader :redis_group_keys # redis 集群hash组def initialize(cache_addrs)@redis_groups = {}@redis_group_keys = []for addr in cache...

ruby 标准类型总结

一、数字Ruby支持整数和浮点数,整数可以是任意长度一定范围内的整数以二进制存放,它们属于fixnum类型,当超出这个范围时则自动转换为bignum类型表达方式:符号+一串字符,数字串中的下划线会被忽略,(前缀包括:0表示八进制, 0x表示十六进制, 0b表示二进制)123_456_789_123_345_789 # Bignum0xaabb # 十六进制也可以通过在前面加上问号来得到ASCII码字符对应的整数值和转义序列的值?a # 普通字符?\n # 换行符 (0x0a)?\C-a # C...

Ruby IDE: RadRails 下载使用

RadRails是由Aptana公司开发的用于创建Ruby on Rails应用程序的集成开发工具。RadRails的功能要比SciTE功能强大得多,与SciTE相比在Ruby on Rails程序开发方面有之过而无不及。RadRails下载地址:http://www.aptana.com/products/radrails/download直接下载地址:http://d1iwq2e2xrohf.cloudfront.net/tools/radrails/standalone/2.0.5.1278709071/win/Aptana_RadRails_Setup_2.0.5.exe 原文:http://www.cnblogs.com/jinmingclass...

centos ruby 2.1.1安装配置

1. 下载  https://www.ruby-lang.org/en/2. 安装  tar zxvf ruby-2.1.1.gz  cd ruby-2.1.1  ./configure --prefix=/usr/local/ruby-2.1.1  make && make install  修改环境变量  vim ~/.bash_profile修改追加  PATH=......:/usr/local/ruby-2.1.1/bin  执行是配置生效:. .bash_profile3. 安装rails   /usr/local/ruby-2.1.1/bin/gem install rails4. helloworld  # cd /data1/app/  # rails new hellowor...

mac rvm升级ruby【代码】

rvm是什么?为什么要安装rvm呢,因为rvm可以让你拥有多个版本的Ruby,并且可以在多个版本之间自由切换。第一步:安装rvm$ curl -L get.rvm.io | bash -s stable $ source ~/.rvm/scripts/rvm等待终端加载完毕,后输入:rvm -v如果能显示版本好则安装成功了。第二步:安装ruby列出ruby可安装的版本信息rvm list known安装一个ruby版本rvm install 2.1.4如果想设置为默认版本,可以用这条命令来完成rvm use 2.1.4 --default 查看已安装...

openSUSE13.2安装ruby和rails【代码】

用rvm安装了ruby2.2.0之后,发现rails又装不了了,因为什么nokgiri安不上需要安装两个包:libxml2libxml2-devlibxsltlibxslt-dev然后gem install nokogiri -- --use-system-libraries --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib/然后gem install rails -V --no-ri --no-rdoc就行了然后发现还特么时不行:因为缺少js运行环境,所以运行rails s 都不行啊卧槽见此帖子:https://ruby-china.org/topics/692说...

Ruby元编程::对象模型

对象由一组实例变量和一个类的引用组成。 对象的方法存在于对象所属的类中(从类的角度看,它们叫做实例方法)。 类本身是Class类的对象。类的名字不过是一个常量而已。 Class类是Module的子类。一个模块基本上是由一组方法组成的包。类除了具有模块的特性之外,还可以被实例化(通过new()方法)及被组织为层次结构(通过它的super-class()方法)。 常量像文件系统一样,是按照树形结构组织的。其中模块和类的名字扮演目录...

ruby 作为嵌入脚本时使用的注意事项

近期一直在採坑...假设是作为嵌入式脚本使用ruby的话...一定会遇到这2个问题...gem安装的,无法在嵌入时使用..为啥.?由于你没require ‘ruby gem‘出现 找不到 Encoding::UTF_8 怎么办?由于你没require ‘enc/encdb‘好吧..继续等坑...OTZ原文:http://www.cnblogs.com/claireyuancy/p/6784407.html

Ruby学习之动态调用

作为一个动态语言,对象中的方法不会像静态语言一样需要验证确实存在,动态语言的对象之间一直保持着交谈,如果你调用一个不曾定义过的方法,程序也不会马上就报错而无法运行,只有当运行到你调用这个方法时,解释器会由于找不到该方法而无法继续解释。而在这之前,你可以在运行的过程中添加该方法。你甚至可以用一个方法来处理所有不曾定义过的方法,而做出某些反应。方法重复引用书上的一个例子,有一个报价系统,你需要从数据库...

ruby 类库组成【图】

一. 核心类库: 二.标准类库:文本  base64.rb 处理Base64编码的模块 csv.rb CSV(Comma Separated Values)库 ruby 1.8 特性 digest.so 消息摘要库 请参考[ruby-src:ext/digest/digest.txt.ja] digest/md5.so digest/rmd160.so digest/sha1.so digest/sha2.so erb.rb 嵌入Ruby(ERB) ruby 1.8 特性 iconv.so 字符串编码转换库 [ruby-src:ext/iconv/iconv.c]ruby 1.7 特性 mailread.rb 从mail...

[Ruby on Rails Issue] When Setting Sqlite version on the Gemfile, Show error "An error occurred while installing sqlite3 ",

Issue:Gem files will remain installed in /tmp/bundler20140825-31835-p0c0p/sqlite3-1.3.9/gems/sqlite3-1.3.9 for inspection.Results logged to /tmp/bundler20140825-31835-p0c0p/sqlite3-1.3.9/extensions/x86-linux/1.9.1/sqlite3-1.3.9/gem_make.outAn error occurred while installing sqlite3 (1.3.9), and Bundler cannot continue.Make sure that `gem install sqlite3 -v ‘1.3.9‘` succeeds before bundling.Solut...

Ruby 元编程 第二版随笔

? ?目标:建立一个存放电影名和影评的数据库,因此决定创建一个简单的代码库,用于在数据库中实现对象的持久化。? ?第一次尝试:编写一个代码库,把数据库中的每个表映射到一个类中,同时把每条记录映射到对象中,每当创建一个对象或访问它的属性时,这个对象就会产生一条SQL语句并发送给数据库。所有的这些功能都封装在一个类里面。? ?classs Entityattr_reader :table, :identdef initialize(table, ident)@table = table@ident ...

centos安装ruby【代码】

下面开始安装Ruby一、下载Ruby源码包wget ftp://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.gz二、解压安装Rubytar zxvf ruby-2.1.7.tar.gz ./configure --disable-install-rdoc make make prefix=/usr/local install三、安装Bundler Gem由于AWS被墙无法使用,修改ruby的源为淘宝gem sources --remove https://rubygems.org/ gem sources -a https://ruby.taobao.org/ gem sources -l gem install bundler --no-doc添加以下软...

雷林鹏分享:Ruby 面向对象

Ruby 面向对象  Ruby 是纯面向对象的语言,Ruby 中的一切都是以对象的形式出现。Ruby 中的每个值都是一个对象,即使是最原始的东西:字符串、数字,甚至连 true 和 false 都是对象。类本身也是一个对象,是 Class 类的一个实例。本章将向您讲解所有与 Ruby 面向对象相关的主要功能。  类用于指定对象的形式,它结合了数据表示法和方法,把数据整理成一个整齐的包。类中的数据和方法被称为类的成员。  Ruby 类定义  当您定义...

编写Ruby代码注释时需要注意的一些问题【代码】

写出自解释文档代码,然后让这部分歇息吧。这不是说着玩。 使用英文编写注释。 使用一个空格将注释与符号隔开。 注释超过一个单词了,应句首大写并使用标点符号。句号后使用 一个空格 避免多余的注释。# badcounter += 1 # increments counter by one 随时更新注释,没有注释比过期的注释更好。 不要为糟糕的代码写注释。重构它们,使它们能够“自解释”。(Do or do not - there is no try.) 注解应该写在...

windows ruby on rails搭建搭建【代码】

2021年8月17日12:28:04 widnows ruby下载:https://rubyinstaller.org/downloads/注意:Ruby+Devkit 3.0.2-1 (x64) 注意下这个带Devkit 版本,不然你需要重新安装Devkit 如果下载不下来直接把地址复制到迅雷下载 下载按照默认安装完之后,在弹出的cmd狂口输入 1,3慢慢等待安装完,默认安装完自动加入了环境变量ruby -vruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x64-mingw32]如果不行就吧ruby加入环境变量 安装gems在 ht...

人性化的ruby计数取值【代码】

Ruby中的计数取值方法,是我接触的语言中感觉最人性化和灵活的,这里可以举例来说明下:一、打印7次“hello,world”,如下:7.times{puts "hello,world"} #在这里,puts的作用等同于print+"\n"二、依次打印1..9,在ruby中的方法就更多了,这里用比较简单的方式来实现,如下:(1..9).each{|i| print i," "}三、打印1..9中比7要小的数值,如下:1.upto(9){|i| print i," " if i < 7}四、从10循环至2值,并依次减1处理,如下所示:10....

ruby和Python简单对比

前不久学了ruby,发现ruby和Python非常像,于是自个测试对比了下,测完了才知道网上有现成的……下面是测试结果 序列(包括列表和元组等)有分片的特点:可能会比较方便的提取其中特定元素,暂时感觉没什么用:注意是用:分开两个数字。负号表示倒数第几个留空表示开头或者结尾,python中的分片可以等距分割,格式是两个冒号ruby则是[4...7]这样用两个或者三个句号分片,也可以用[1,2]这种逗号不同的是,ruby似乎不能等距分割,而且...

英语rubyspinel红尖晶石

红尖晶石(rubyspinel或Red spinel)其红色是因含铬而致^像红宝石和红色石榴子石一样,红 尖晶石也曾被叫作红玉,这就造成了红色宝石的混乱,因为世界上一些最大的著名“红宝 石”,如英国王冠珠宝中的“黑王子红宝石”,其实不是刚玉而是尖晶石; 外观上,红尖晶石的颜色有可能像红宝石一样呈明亮的红色,但更为经常的是趋于砖 红色,甚至橙色;它也可具有紫色色调,这在阿富汗就发现过,曾以“巴拉斯红宝石”而 著称。红尖晶石的颜色...

Ruby学习笔记之gem 命令详解

ruby -v #查看ruby 版本 ruby -e ‘‘require"watir"; puts Watir::IE::VERSION‘‘ #查看watir版本rvm list known #列出已知的ruby版本rvm install 1.9.3rvm use 1.9.3 | rvm use systemrvm use 1.9.3 --defaultrvm list #列出本地ruby版本rvm remove 1.9.2具体详情见RVM实用指南 https://ruby-china.org/wiki/rvm-guidegem -v #gem版本gem source #gem资源gem sources -a url |gem sources -r url #gem添加或删除配置源gem upd...