![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ruby
文章平均质量分 95
sunyllove
学而不思则罔,思而不学则殆。
展开
-
Ruby实现的各种排序算法
时间复杂度:Θ(n^2)Bubble sort 复制代码代码如下:def bubble_sort(a) (a.size-2).downto(0) do |i| (0..i).each do |j| a[j], a[j+1] = a[j+1], a[j] if a[j] > a[j+1] end end原创 2016-11-09 23:22:29 · 1950 阅读 · 0 评论 -
ruby的魅力:直接呼叫Win32API
ruby的魅力:直接呼叫Win32APIRuby是很强大,可以利用附加库dl/win32的Win32API模块直接呼叫win32APIWin32API.new参数1 字符串 呼叫dll名称参数2 字符串 dll中dllexport的名称参数3 字符串数组 表示每个参数的类型 L代表Long P代表Point I代表Int V代表Void (在实际使用的时候HResult和各转载 2016-09-07 14:28:10 · 2746 阅读 · 0 评论 -
ruby文件操作知识累积
ruby文件操作知识累积主要介绍Dir类 File类 FileTest模块 FileUtils模块-------------------------------------------------------------目录操作:使用Dir类的静态方法或创建一个Dir类的实例对象。-----------------------------------------------原创 2016-09-07 14:26:44 · 432 阅读 · 0 评论 -
ruby奇技淫巧 之 利用Fixnum的upto和downto方法来遍历数组
ruby奇技淫巧 之 利用Fixnum的upto和downto方法来遍历数组arr = "1,2,3".split(',')arr.map!{|item| item = item.to_i} #一般可以用map!方法来改变原数组内容0.upto(arr.length-1){|idx|arr[idx] = arr[idx].to_s} #再将数组内容改回字符串形式 使用upt转载 2016-09-07 14:24:42 · 1578 阅读 · 0 评论 -
ruby奇技淫巧 之 字符串格式化和进制转换
ruby奇技淫巧 之 字符串格式化和进制转换"%05d" % 123 结果是 "00123""%02X" % 10 结果是 "0A""%03x" % 10 结果是 "00a""%010x" % 10 结果是 "000000000a" (前缀9个0)"%10x" %10 结果是 " a" (前缀9个空格)可以看出 第一个数字是前缀,然后是长度,然转载 2016-09-07 14:23:33 · 2204 阅读 · 0 评论 -
Ruby的OpenURI模块
Ruby的OpenURI模块Ruby中获取一个HTTP/FTP地址的内容,有一个非常方便的方法,就是使用open-uri库。open-uri库是ruby的标准附加库中所带的,路径是:lib/oepn-uri.rb引用了该附加库后,就可以像打开普通文件那样打开一个http/ftp的uri的资源。有区别的地方在这里:require 'open-uri'o转载 2016-09-07 14:21:06 · 1313 阅读 · 0 评论 -
ruby - 加密与编码
ruby - 加密与编码md5require 'md5'puts MD5.hexdigest('')sha1require 'digest/sha1'puts Digest::SHA1.hexdigest('') base64require 'base64'code = Base64.encode64('hallo')source转载 2016-09-07 14:17:45 · 422 阅读 · 0 评论 -
RUBY小经验累积
RUBY小经验累积GBK和UTF-8的转换用GBK而不要用GB2312,因为GBK不仅包含简体中文,还包括繁体中文等,是一个大字符集。# utf8 to gbkdef u2g(ucode) begin "#{Iconv.conv('gbk','utf-8',ucode)}" rescue " #{ucode} " #如果转换不成功转载 2016-09-07 14:16:30 · 417 阅读 · 0 评论 -
使用Ruby DBI模块
使用Ruby DBI模块原著 Paul DuBois paul@kitebird.com翻译:liubin 2004/11/9 http://www.ruby-cn.org/ 原文地址:http://www.kitebird.com/articles/ruby-dbi.html 序论准备安装一个简单的DBI脚本处理查询处理不返回转载 2016-09-07 14:13:59 · 312 阅读 · 0 评论 -
Ruby中对XML文档的解析
RUBY中对XML的文档的解析可以使用这个库REXML库。REXML库是ruby的一个XML工具包,是使用纯Ruby语言编写的,遵守XML1.0规范。在Ruby1.8版本及其以后,RUBY标准库中将包含REXML。REXML库的路径是: rexml/document所有的方法和类都被封装到一个REXML模块内。所以使用的时候要先导入rexml/document库转载 2016-09-07 14:12:17 · 3266 阅读 · 0 评论 -
Ruby之旅(一) Ruby之旅第一步 初次见面
Ruby之旅(一) Ruby之旅第一步 初次见面开始我的Ruby之旅,写下学习笔记,是针对那些有其他OO语言经验的人写的,可以来看下神奇的Ruby。第一个sample! 初次见面。#!/usr/bin/env rubyclass MegaGreeter attr_accessor :names # Create the object翻译 2016-09-07 14:34:33 · 344 阅读 · 0 评论 -
Ruby之旅(二) Ruby的基本语法以及对象的使用,方法的定义及调用,属性的定义及使用
Ruby之旅(二) Ruby的基本语法以及对象的使用,方法的定义及调用,属性的定义及使用(一)Ruby中一切都是对象,包括一个常数.比如可以用.class属性来查看一个对象的类型,你可以看下1.class,会发现常数1的类型是Fixnum,1不过是Fixnum的一个实例。还可以使用-37这个Fixnum的实例方法abs来取得绝对值:-37.abs()会返回37又如输入一个1.1翻译 2016-09-07 14:35:29 · 2312 阅读 · 1 评论 -
Ruby之旅(三) 类变量以及类方法
Ruby之旅(三) 类变量以及类方法(一)类变量以及类方法sample codeclass BankAccount @@interestRate = 6.5 def BankAccount.getInterestRate() @@interestRate end attr_accessor :balance def initializ翻译 2016-09-07 14:37:04 · 497 阅读 · 0 评论 -
ruby交互ssh
通过gem导入相关库gem install net-ssh通过ruby脚本链接到远程服务器代码例子require 'net/ssh'host = "xxx.xxx.xxx.xxx"username = "XXXX"password = "XXXXXX"# 通过start方法链接到远程主机session = Net::SSH.start(host,user原创 2016-11-09 17:09:07 · 2280 阅读 · 1 评论 -
Ruby 异常
Ruby 异常异常和执行总是被联系在一起。如果您打开一个不存在的文件,且没有恰当地处理这种情况,那么您的程序则被认为是低质量的。如果异常发生,则程序停止。异常用于处理各种类型的错误,这些错误可能在程序执行期间发生,所以要采取适当的行动,而不至于让程序完全停止。Ruby 提供了一个完美的处理异常的机制。我们可以在 begin/end 块中附上可能抛出异常的代码,并使用 r翻译 2016-09-08 16:35:39 · 435 阅读 · 0 评论 -
ruby 正则表达式
先推荐一个在线的Ruby正则表达式编辑器http://www.rubular.com/Ruby的正则表达式以"//"作为构造方法。表达式返回一个RegExp的对象。 一般规则: /a/匹配字符a。 /\?/匹配特殊字符?。特殊字符包括^, $, ? , ., /, \, [, ], {, }, (, ), +, *. .匹配任意字翻译 2016-10-10 12:43:46 · 586 阅读 · 0 评论 -
Ruby学习笔记-正则表达式
Ruby学习笔记-正则表达式 1.创建正则表达式a) reg1 = /^[a-z]*$/ #将模式的定义放在两个正斜杠之间,返回一个Regexp对象b) reg2 = Regexp.new(‘^[a-z]*$’) #创建一个Regexp对象c) reg3 = %r{^[a-z]翻译 2016-10-10 12:43:03 · 1965 阅读 · 0 评论 -
用 OptionParser 构建 Command Line 工具
用 OptionParser 构建 Command Line 工具12 条评论 , 8 次修正,64 次阅读, 最后更新于 2 年前Ruby 除了 Rails 还能做什么?除了 Rails 之外,Ruby 能做的太多太多了,除了用于 Rails 开发之外,Ruby 用的最多的就是写各种 Command Line 工具来解决各种小问题,Command Line 工具又称为翻译 2016-09-07 17:14:54 · 319 阅读 · 0 评论 -
ruby控制流
ruby控制流一 判断结构 if 表达式 elsif 表达式 else endif 表达式 then end #当写在一行时 需要用then if 表达式 #当表达式的结果为true时执行前面的代码.. unless 表达式 #当表达式为false执行前面的代码case 表达式 w翻译 2016-09-07 15:16:24 · 282 阅读 · 0 评论 -
Ruby之旅(七) 数组以及Hash
Ruby之旅(七) 数组以及HashRuby支持数组以及Hash,数组和Hash都是通过索引访问的,所不同的是数组通过数字索引,而Hash的索引可以是任何对象,所以数组访问速度更快(直接定位),而Hash则更加灵活,搜索元素速度更快(Hash算法定位索引,无需遍历)。Ruby里面比较有特点的是,数组与Hash都可以容纳不同的对象,因为这是Ruby语言所决定的(非强类型语言,单根派生翻译 2016-09-07 15:14:16 · 1207 阅读 · 0 评论 -
Ruby之旅(六) 模块以及类的多继承
Ruby之旅(六) 模块以及类的多继承ruby除了支持class外还支持module,module的作用有两个:1 当作一组方法和常数的命名空间 防止命名冲突2 可以被类mixin(混入),mixin module的类的实例则拥有了模块的方法。不同的类混入了同样的模块,则可以拥有同样的功能,而无须去继承某个父类。可以通过include一个module来实现c翻译 2016-09-07 15:13:07 · 735 阅读 · 0 评论 -
Ruby之旅(五) 类的封装性
Ruby之旅(五) 类的封装性Ruby的成员访问修饰关键字分为三种,与c#一样。1 private 只能为该对象所调用的方法2 protected 只能为该对象及其子对象所调用的方法3 public 可以让任何对象所调用的方法与c#不同的是,ruby的访问修饰符从定义处开始起作用,直到下一个访问修饰符出现时终止,比如class Greeter def翻译 2016-09-07 15:12:06 · 500 阅读 · 0 评论 -
Ruby之旅(四) 类的继承
Ruby之旅(四) 类的继承直接上代码Rectangle.rbclass Rectangle attr_accessor :width attr_accessor :height def initialize(wdth, hgt) @width = wdth @height = hgt end def are翻译 2016-09-07 14:37:41 · 2927 阅读 · 0 评论 -
Ruby操作Excel文件
Ruby操作Excel文件 写了一段Ruby操作Excel的脚本,使用OLE方式,功能是从Excel中读取第一列有效数据至数组,分析后将数据分类存入几个集合,并输出至Excel中 Ruby代码 require "win32ole" excel = WIN32OLE.new('excel.application')翻译 2016-09-19 17:52:08 · 2987 阅读 · 0 评论 -
Ruby China中method_missing和define_method剖析
Ruby China中method_missing和define_method剖析很多人都与 method_missing 干柴烈火,但在并没有小心处理彼此之间的关系。所以,我想来探讨一下这个问题:** 我该怎么用 method_missing **什么时候该抵挡 method_missing 的诱惑首先,永远不要在还没花时间考虑你用得够不够好之原创 2016-08-26 17:21:01 · 1066 阅读 · 0 评论 -
Ruby之self,上下文
Ruby之self,上下文Ruby self在不同的环境中有不同的含义,这点和java的this不同,原因是java实际上只有一种环境--在class的实例方法定义中使用,代表访问这个方法参数自动传进的那个对象。而由于ruby作为一个完全纯净的面向对象语言,任何东东都是对象,方法是对象,类也是对象...,所以Ruby self就会有很多环境,区分不同环境的sel翻译 2016-08-26 17:01:34 · 968 阅读 · 0 评论 -
Ruby常用文件操作代码实例
#建立一个222.rb文件并且输入字符file = File.open("222.rb","w+")file.puts "123\nwadwa\n12124124\ndwdw"file.close #输出222.rb的内容File.open("222.rb","r+") do |file|while line = file.getsputs lineend转载 2016-06-15 16:55:36 · 569 阅读 · 0 评论 -
ruby 文件操作
ruby 文件操作一、新建文件 f=File.new(File.join("C:","Test.txt"), "w+") f.puts("I am Jack") f.puts("Hello World")文件转载 2016-06-15 15:45:34 · 1088 阅读 · 0 评论 -
ruby操作excel文件
ruby操作excel文件使用ruby来操作excel文件首先需要在脚本里包含以下语句require 'win32ole'把win32ole包含进来后,就可以通过和windows下的excel api进行交互来对excel文件进行读写了.打开excel文件,对其中的sheet进行访问:excel = WIN32OLE::new('excel.Applicatio转载 2016-06-14 14:38:45 · 2000 阅读 · 0 评论 -
ruby操作excel(从打开-输入信息-保存-etc)
require 'win32ole'excel = WIN32OLE.new("excel.application")excel.Visible = trueexcel.WorkBooks.Addexcel.Range("a1").Value = 3excel.Range("a2").Value = 2excel.Range("a3").Va原创 2016-06-14 14:32:37 · 767 阅读 · 0 评论 -
ruby 关于目录操作
ruby 关于目录操作版权声明:本文为博主原创文章,未经博主允许不得转载。1.创建文件夹 Dir.new %%1 Dir::mkdir #不指定目录全名称时,缺省为工作目录 Dir::chdir() 改变当前脚本工作目录 FileUtils.mkdir 'test' file = File.new("cmd.txt") file.each do |l转载 2016-06-14 13:08:09 · 2774 阅读 · 0 评论 -
Ruby语言学习系列--基本的ruby语法
Ruby语言学习系列--基本的ruby语法 1. 基本的ruby语法1.1 变量、常量和类型1) 定义变量变量类型描述示例局部变量(或伪变量)以小写字母或下划线卡头var _var全局变量以$开头$var翻译 2016-06-14 12:43:06 · 5686 阅读 · 0 评论 -
ruby中的整数、浮点数、字符串之间的相互转换
浮点数转换成整数,会强行去掉小数点后面的数字irb(main):017:0> 123.45.to_i=> 123整数转换成浮点数,会添加小数点和0irb(main):018:0> 123.to_f=> 123.0转载 2016-06-29 16:30:34 · 4175 阅读 · 0 评论 -
Ruby 冒泡排序
def getSort(arr) len = arr.length for i in 0...len-1 for j in 0...len-i-1 if arr[j] > arr[j+1] temp = arr[j] arr[j] = arr[j+1] arr[j+1] = temp原创 2016-06-14 11:22:46 · 879 阅读 · 0 评论 -
Ruby读取Excel文件的两种方法
用Ruby读取Excel文件的两种重要方式1. 通常做法,查阅微软提供的API了,需要包含win32, 在ruby前加入,require ‘win32ole’例如:require ‘win32ole’myexcel = WIN32OLE.new(“excel.application”)myexcel.visible=truemywbk = myexcel.W转载 2016-06-14 11:10:52 · 6871 阅读 · 0 评论 -
ruby字符串的encoding,force_encoding,encode,encode!转码(编码转换)
ruby字符串的encoding,force_encoding,encode,encode!转码(编码转换)ruby1.9开始对字符串编码支持已经比较完善,我们可以直接通过使用String类的实例方法encoding,force_encoding, encode, encode!进行相关的编码操作。encodingruby1.9中为每个字符串对象增加了encoding信转载 2016-06-29 10:37:34 · 5601 阅读 · 0 评论 -
浅析 Ruby 里的几个动态方法 (一),send 方法
浅析 Ruby 里的几个动态方法 (一),send 方法第一次写技术方面的贴,欢迎拍砖 :)动态方法,是去控制静态方法的方法,让静态方法的方法名和方法的内容会根据参数的变化而变化,简而言之,他使方法成为了一个变量。让我们通过一个多态实例,来理解一下最简单的动态方法send。所谓多态就是把不同种类的东西当作相同的东西来处理。比如我要打开三个箱子,打开的方法都不转载 2016-07-01 16:08:05 · 5501 阅读 · 1 评论 -
ruby解析json、xml
ruby解析json、xml解析xml[ruby] view plain copydef get_xml_element(url,xml_element) require 'net/http' response=Net::HTTP.get_response(URI('http://api.platform.com/c转载 2016-07-25 13:34:45 · 351 阅读 · 0 评论 -
Ruby中使用each和collect进行迭代的用法
Ruby中使用each和collect进行迭代的用法这篇文章主要介绍了Ruby中使用each和collect进行迭代的用法,是Ruby学习中的基础知识,需要的朋友可以参考下迭代器是什么也不是,但集合的方法支持。存储一组数据成员的对象被称为集合。在Ruby中,数组和哈希可以被称为集合.迭代器返回一个集合的所有元素,一前一后。我们将讨论两个迭代器,在这里,每个收集。转载 2016-07-25 13:47:44 · 1495 阅读 · 0 评论 -
善用 define_method
define_method 可以帮助我们动态的,快速的定义多个方法;比如有这样一个类:class Post attr_accessor :title, :content, :state def initialize(title, content, state = :draft) @title, @content, @state = title, content, stat转载 2016-08-26 16:59:01 · 599 阅读 · 0 评论