Ruby
HPUZ
人生闪光,绝非偶然
VX:KYG-1988
展开
-
Ruby开发资源一览表
Ruby开发资源一览表 https://ruby-china.org/wiki/awesomeruby转载 2017-11-06 13:56:47 · 523 阅读 · 0 评论 -
Ruby 中进程与线程
Process# 进程pid = Process.fork { #... } Thread# 线程Thread.new { #... }原创 2017-06-27 22:15:26 · 1316 阅读 · 0 评论 -
Ruby 中Debug工具
Ruby 中Debug工具 byebug pry-byebug原创 2017-06-27 21:56:08 · 1035 阅读 · 0 评论 -
ruby 读写文件
ruby 读写文件#Ruby 读取文件#方法一file = File.open("/Users/Desktop/demo.txt","r") while line = file.gets puts lineend#方法二File.open("/Users/Desktop/demo.txt","r").each_line do |line| puts lineend#Ruby 写原创 2017-06-22 14:11:51 · 3989 阅读 · 0 评论 -
ruby-prof
ruby-profruby-prof是比较强大的,支持cpu,内存使用,对象分配等等的性能分析,而且提供了很多友好的输出格式,不仅仅是有基于文字,html的格式,还能输出graphviz格式的dot文件。require 'ruby-prof'RubyProf.start# 这里写入要进行性能剖析的代码result = RubyProf.stop# 选择一个Printerprinter = Ru转载 2017-06-26 21:20:54 · 387 阅读 · 0 评论 -
Ruby 中的when
Ruby 中的when case order.type when "all" puts "all" when "group" puts "group" when "one" puts "one" end原创 2017-07-05 16:09:27 · 840 阅读 · 0 评论 -
ruby 中 Range类
range = Range.new(1,4) => 1..4 range.to_a => [1, 2, 3, 4]原创 2017-07-04 09:54:01 · 357 阅读 · 0 评论 -
Object 与 Class 中的方法
Object 与 Class 中的方法# Object 与 Class 中的方法 class A def hi puts "hi!" end end# Class A 中的实例方法 A.instance_methods# Class A 中的类方法A.methods# Class A 对象继承关系A.ancestors=> [A, Object, Kernel,原创 2017-07-04 08:21:26 · 367 阅读 · 0 评论 -
极光推送
这是JPush REST API的Ruby版本封装开发包,是由极光推送官方提供的,一般支持最新的API功能。https://github.com/jpush/jpush-api-ruby-client原创 2017-06-22 08:53:06 · 323 阅读 · 0 评论 -
Ruby 循环控制
Ruby 循环控制break# break 退出循环for x in 1..10 break if x == 5 puts xendnext# next 进入下一循环for x in 1..10 next if x == 6 put xend break,next是Ruby里面对循环控制的两个关键字。 使用break可以退出循环,和Java的同名关键字的含义原创 2017-06-27 22:46:30 · 1146 阅读 · 0 评论 -
ruby 中 map方法
ruby 中 map方法对数组中每个元素进行表达式操作,原始数组不会被改变,返回执行表达式结果的新数组# 把 numbers 中每个值映射到 String 的 Array numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]numbers.map { |number| number.to_s } 简略为:numbers.map(&:to_s)["1", "2",原创 2017-08-21 11:41:27 · 6848 阅读 · 0 评论 -
Ruby中 split 方法
split 方法 ==> 把字符串拆分成有三个元素的数组Date.today => Wed, 15 Feb 2017 2.3.0 :002 > Date.today.to_s => "2017-02-15" 2.3.0 :003 > Date.today.to_s.split('-‘) #分割剔除 => ["2017", "02", "15"] 2.3.0 :004 > Da原创 2017-06-01 10:51:47 · 5526 阅读 · 0 评论 -
Ruby学习感悟
Ruby是使得程序员快乐的编程语言。学习编程过程中也是循环渐进的过程,从最初的大概翻阅ruby基础教程到认真学习railstutorial,再到认真看ruby基础教程,再看railstutorial。看ruby元编程,再看ruby基础教程,ruby元编程,不断的反反复复,大多看过便忘记了,突然再看犹如醍醐灌顶,不断的来回琢磨分析,编程有时枯燥有时有趣。学习Ruby编程基本上没有捷径可走,有些弯路迟早原创 2017-10-13 11:52:07 · 562 阅读 · 0 评论 -
Hash类的merge方法
Hash类的merge方法{ "a" => 100, "b" => 200 }.merge({ "b" => 300 }) => {"a"=>100, "b"=>300}原创 2017-10-13 11:01:23 · 734 阅读 · 0 评论 -
#{} 进行插值
特殊的句法 使用 #{} 字符串插值原创 2017-10-13 10:12:08 · 341 阅读 · 0 评论 -
鸭子类型
鸭子类型是什么?原创 2017-10-11 17:36:13 · 878 阅读 · 0 评论 -
ruby 中的类方法和实例方法
类方法与实例方法 实例方法是最常用的方法。假设有一个对象(实例),那么以这个对象为接收者的方法就被称为实例方法# 实例方法例子p "10, 20, 30, 40".split(",")# "10, 20, 30, 40” 为 String 类的实例, split 为 String 类的实例对象的实例方法 p [1, 2, 3, 4].index(2)# [1, 2, 3, 4] 为 A原创 2017-10-10 16:55:40 · 1354 阅读 · 0 评论 -
Ruby 类与模块
Module是Class的父类: Class.superclass => Modulemodule 没有实例变量 module 没有new不能生成实例对象原创 2017-07-04 08:29:15 · 346 阅读 · 0 评论 -
ruby 循环
# times 方法5.times do |i| puts "第#{i} 次的循环。"end# for 方法names = ["Jack", "John", "Mack"]for name in names puts nameend# each 方法names = ["Jack", "John", "Mack"]names.each do |name| puts namee原创 2017-10-10 16:29:41 · 794 阅读 · 0 评论 -
Ruby命名规则
Ruby 基础(一) ruby命名规则Ruby跟java语言在对常量、变量、方法名、类名和模块名等的命名规则上有所不同,主要是Ruby可以通过首字母来区分变量用途。1、局部变量:小写字母开头即可,如:fred name 2、实例变量:以一个@开头,如:@name @box @Size3、类变量:以两个@@开头,如:@@name @@box @@Size4、常量:以首字母开头。5、类名原创 2016-07-15 10:30:30 · 929 阅读 · 0 评论 -
不错的ruby网站
https://www.sitepoint.com/ruby/原创 2017-06-20 09:22:48 · 363 阅读 · 0 评论 -
GC 垃圾回收
# 垃圾回收#(在ruby 2.2 版本之后Symbol也是可以垃圾回收)GC.start原创 2017-06-20 09:13:52 · 295 阅读 · 0 评论 -
Ruby中Symbol与String的区别
Symbol 是什么 Ruby 是一个强大的面向对象脚本语言(本文所用 Ruby 版本为1.8.6),在 Ruby 中 Symbol 表示“名字”,比如字符串的名字,标识符的名字。 创建一个 Symbol 对象的方法是在名字或者字符串前面加上冒号:http://blog.csdn.net/besfanfei/article/details/7966850转载 2016-09-02 19:00:14 · 648 阅读 · 0 评论 -
Ruby模拟黑客帝国代码流程序
刷屏小程序def gori_yes(size=1) [*0..9,*'a'..'z',*'A'..'Z'].sample(size).joinendloop do print gori_yes + " " + gori_yes + " " sleep(0.001)end原创 2016-12-15 18:18:10 · 1583 阅读 · 0 评论 -
Ruby中include / extend / prepend的区别
Ruby中include / extend / prepend的区别:include: 把模块注入目标类或者模块作为实例方法extend: 把模块注入目标类或者模块作为类方法(Singleton Method)prepend: 同样把模块注入目标类或者模块作为实例方法,和include的区别是把模块的方法放在了目标类或者模块方法调用链的前边,对比 B 和 C 的继承链。翻译 2017-05-29 15:21:39 · 1875 阅读 · 0 评论 -
attr_accessor / delegate 两种方法
attr_accessor :name, :email可以设置@name,@email的getter和setter方法,属于是Ruby的方法,参数是 Array原创 2016-08-31 14:42:57 · 438 阅读 · 0 评论 -
SecureRandom
SecureRandom是强随机数生成器,用于安全目的的数据数,例如生成秘钥或者会话标示(session ID),弱随机数生成器会产生严重的安全问题,而使用SecureRandom这样的强随机数生成器将会极大的降低出问题的风险。SecureRandom详解SecureRandom继承于RandomSecureRandom.hex => "93dcf2eb24591d8846f6a9ec804ece原创 2016-09-09 15:08:38 · 974 阅读 · 0 评论 -
Ruby中strftime方法
created_at.strftime(“%Y-%m-%d”) strftime(“%Y-%m-%d %H:%M:%S”)原创 2016-08-12 10:44:37 · 1464 阅读 · 0 评论 -
Ruby 数据类型
数字1. Ruby支持整数和浮点数。整数可以使任何长度。一定范围内的整数是Fixnum类的对象。范围之外的整数存储在Bignum类的对象中。这种处理是透明的。2. 可以在一个ASCII字符前加一个问号来获得其对应的整数值。Ctrl组合键可以由?/C-x或?/cx(x&0x9f)来产生。Meta字符(x|0x80)可以由?/M-x来产生。3. 一个带有小数点"或/和"指数的数字字面量被认为是Float转载 2016-08-30 14:11:17 · 697 阅读 · 0 评论 -
ObjectSpace模块
#Symbol 数量Symbol.all_symbols.size#ObjectspaceObjectspace.each_object(A) do |x| x.instance_eval do def hello end endend#打印10000次10_000.times{ puts "xx"}调用instance_eval时如果传入字符原创 2017-06-20 09:09:48 · 394 阅读 · 0 评论 -
Ruby 中 sort方法、reverse方法、shuffle方法
>> a=> [42, 8, 17]>> a.empty? => false>> a.include?(42)=> true>> a.sort #数组排序=> [8, 17, 42]>> a.reverse #数组反转排序=> [17, 8, 42]>> a.shuffle #数组随机排序=> [17, 42, 8]翻译 2017-06-01 11:00:11 · 5394 阅读 · 0 评论 -
ruby中Proc、Lamba的区别
proc和lambda最主要的区别就是可以把lambda看作和定义一个方法的行为是一致的,而proc是一个真正意义上的代码块。## case 1a = proc { |x| x }p a.call # => nilb = lambda { |x| x }p b.call(2) # => exception if none## case 2def hi a = proc { return转载 2017-06-16 08:46:47 · 711 阅读 · 0 评论 -
ruby中to_proc方法
## case 1class Symbol def to_proc proc { |x| x.send(self) } endendp [1, 2, 3].map &:to_sp [1, 2, 3].map &proc { |x| x*x }puts "*" * 50## case 2class ProcStore def initialize handler @转载 2017-06-16 08:41:15 · 896 阅读 · 0 评论 -
Ruby生成随机元素
Ruby生成随机元素('a'...'z').to_a.shuffle[0..7].join => "eynaxzsk" ('a'...'z') => Range 对象 to_a 方法 => 将Range 对象转换为数组。 shuffle方法 => 随机排列 join方法 => join 将数组转换为字符串原创 2017-05-31 18:03:27 · 720 阅读 · 0 评论 -
Ruby常用方法
count 判断内容l的个数integer型full_name.count("l")include? 判断内容是否有l,boolean型full_name.include?("l")equal?equal?方法用来判断2个对象是否是同一个对象a.equal? b相当于判断"a就是b"2.1.1 :005 > "a" == "a" => true 2.1.1 :006 > "a".equal原创 2016-09-04 20:38:18 · 679 阅读 · 0 评论 -
Ruby数组
names = %w[ruby rails java python cookoo firebody] 等同于: names = [“ruby”, “rails”, “java”, “python”, “cookoo”, “firebody”]原创 2016-09-05 11:26:01 · 295 阅读 · 0 评论 -
Ruby中的设计哲学
设计哲学Follow web standards and HTTP 遵循Web标准和HTTPCoC (Convention over Configuration) 约定大于配置MVC (Model-View-Controller)DRY 不要重复造轮子(如:gems )Software Engineering PatternsAssets 静态资源Restful APITesting原创 2016-10-21 19:01:35 · 440 阅读 · 0 评论 -
Ruby 开发工具
一、操作系统Mac OS X 或 Linux,别在 Windows 上面搞,那是在浪费时间,两个原因:Ruby 对 Unix 环境的需求非常高,这点 Mac OS X 和 Linux 系列的系统才能很好的满足;Ruby 在 Windows 环境下面执行效率低。 二、开发工具(编辑器)Ruby 不需要 IDE,一个简单的文本编辑器就足够了,作为 Ruby 开发者,这个必须习惯。Mac 平台转载 2016-07-02 23:33:31 · 1028 阅读 · 0 评论