Ruby

Ruby中一些常用的文件操作方法小结

初学Ruby,很多需要学习,现在开始尝试使用Ruby来写一个脚本,其中用到了很多文件相关的操作,这里阶段地整理一些。便于后续的再次查找。 文件或目录是否存在 代码如下: File.exist?(‘file_path’) 是否为文件 代码如下: File.file?(“file_path”) 是否为目录 代码如下: File.dir... »

浅析Ruby中的DATA对象

这段代码能运行吗? 这个DATA是什么东西? require 'erb' data = DATA.read max = 15_000 title = "hello world!" content = "hello world!\n" * 10 max.times{ ERB.new(data).result(binding) } __END__ <html> <head> &... »

ruby和pig处理流式文件实例

大数据操作中涉及到数据清洗步奏还是用脚本处理比较方便,下边介绍一下pig加载hdfs文件后调用ruby脚本处理数据,再返回数据流至pig中处理的一个简单案例。 注意:ruby的流式处理用到wukong这个gem包,相关下载: https://github.com/mrflip/wukong pig中加载分布式文件调用ruby流式处理: 代码如下: log = load ‘$INFILE... »

Ruby的基本语法学习总结

1、关键字 关键字不能用于定义变量或者常量,module,class,def , undef,defined?,if ,then,else,elsif,case ,when,unless,for,in,while ,until,next,break,do,redo ,retry,yield,not,and,or,true,false,nil,rescue,ensure,super,sel... »

Ruby中的变量学习总结

Ruby中的变量有几种形式,分别是局部变量、实例变量、类变量、全局变量,对于初学者来说,常常容易搞混,尤其像本人这种做java的,理解起来还是头痛,经过仔细辨别学习,将这几种变量的差异及使用场景总结如下: 一、命名方式 1.局部变量:小写字母或者“_”开头,如user,解释器解释到时才开始在内存中存在,一个良好的习惯是在进行变量定义时用nil进行赋值初始化,否则会出现类似undefined loc... »

ruby判断一个数是否为质数(素数)示例

ruby判断一个数是否为质数质数又称素数。一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数;(除0以外)否则称为合数 。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。 代码如下:def prime?(num)  res = [1]  res <<... »

你应该知道的Ruby代码风格

一、空格与tab使用空格缩进(95.364%)使用Tab缩进(4.636%)基于 1,001,987 次提交二、最大行宽80字符(92.618%)120字符(5.893%)150字符(1.489%)基于 1,057,374 次提交三、运算符、冒号、花括号周围,逗号、分号后是否使用空格不使用空格(73.366%) 代码如下:sum = 1 +2a,b = 1, 21>2 ? true : fa... »

ruby 模块

 Ruby的模块非常类似类,除了: 模块不可以有实体  模块不可以有子类  模块由module…end定义. 实际上…模块的’模块类’是’类的类’这个类的父类.搞懂了吗?不懂?让我们继续看下去吧. 模块有两种用法.其一是将相近的方法和实体放在一个相对集中的域里.Ruby标准包里的Math模块就扮演... »

Rails实现字段加密存储

方案 存储前,加密后再存储到数据库 读取后,利用 KEY 进行解密 实现 ActiveSupport::MessageEncryptor 是 Rails 基于 openssl 封装实现的一个类,可用于对一个对象进行加密、解密操作。例如: salt = SecureRandom.random_bytes(64) key = ActiveSupport::KeyGenerator.new('passw... »

Ruby面向对象编程中类的方法与类的扩展

类方法 类方法其实质是生活在该类的单件类中的单件方法。其定义方法有三种,分别是: # 法一 def MyClass.a_class_method; end # 法二 class MyClass def self.anther_class_method; end end # 法三* class MyClass class << self def yet_another_class_met... »

详解Ruby中的单件方法和单件类

单件方法 Ruby允许给单个对象增加方法,这种只针对单个对象生效的方法,称为单件方法 示例代码 str = “just a regular string” def str.title? self.upcase == self end str.title? # => false str.methods.grep(/title?/) # => [:title&... »

以MVC的思维方式来理解Ruby on Rails框架的设计结构

在rails中,发送一个请求(/users)的处理全过程如下: 1)、浏览器发送请求(/users) 2)、Rails的 routes会把请求路由给users_controller的index方法 3)、users_controller回调用User Model获取所有的user 4)、User Model会从数据库中把所有的user读取出来, 5)、User Model把从数据库读取出来的所有u... »

详解Ruby on Rails中的mailer相关使用

    把 mails 命名为 SomethingMailer。 没有 Mailer 字根的话,不能立即显现哪个是一个 Mailer,以及哪个视图与它有关。     提供 HTML 与纯文本视图模版。     在你的开发环境启用信件失败发送错误。这些错误缺省是被停用的。 # config/environmen... »

关于Ruby on Rails路由配置的一些建议

当你需要加入一个或多个动作至一个 RESTful 资源时(你真的需要吗?),使用 member and collection 路由。 # 差 get 'subscriptions/:id/unsubscribe' resources :subscriptions # 好 resources :subscriptions do get 'unsubscribe', on: :member end #... »

ruby元编程之method_missing的一个使用细节

我们知道顶级域,定义域的self是啥? 代码如下: puts self    #main puts self.class #Object 我们知道当一个方法被调用的时候,如果没有对象接受,默认就是self,如: 代码如下: def tell_me_who     puts self end tell_me_who  #main ... »

用Ruby实现一个单元测试框架的教程

在去年的YOW Melbourne开发者大会上,我参加了一些研习班。这些研习班由@coreyhaines和 @rains负责,因此TDD(测试驱动开发)成为了主要讨论的内容。通常这不是一个问题,但是令人沮丧的是(考虑到这是2010年举办的开发者大会),那时上网还不是很方便,我刚装上linux的笔记本无法下载Rspec。幸运的是几周前,我决定自己写一个单元测试框架(因为我有这个能力:)),接着我就有... »

win7下从ruby源代码编译安装的方法

工作中需要在c++代码中嵌入ruby c api,然而在vs工程中编译失败,所以现在通过手动从源代码编译ruby寻找原因(之前使用rubyinstaller安装)。 先从官网下载ruby 2.4.1 版本,https://www.ruby-lang.org/en/downloads/ 从安装指导可以看到,官方只提供了linux平台下的编译安装步骤,https://www.ruby-lang.org... »

Ruby on Rails网站项目构建简单指南

创建 Rails 项目 创建一个普通的 Rails 项目,可以直接使用以下命令: rails new blog 但在国内因为连接 RubyGems 的速度太慢,而 Rails 默认在构建完项目结构后,会使用 bundle 命令从 RubyGems 下载安装依赖包。最后会因为网络问题而卡死。所以需要使用 –skip-bundle 参数跳过执行 bundle 这一步。然后使用国内的 Gem... »

Luhn算法学习及其Ruby版实现代码示例

关于LUHN算法 LUHN算法,主要用来计算信用卡等证件号码的合法性。 1、从卡号最后一位数字开始,偶数位乘以2,如果乘以2的结果是两位数,将两个位上数字相加保存。 2、把所有数字相加,得到总和。 3、如果信用卡号码是合法的,总和可以被10整除。 Luhn 算法或是Luhn 公式,也被称作“模10算法”。它是一种简单的校验公式,一般会被用于身份证号码,IMEI号码,美国供应商识别号码,或是加拿大的... »

Jekyll静态网站后台引擎使用教程

以前总想搭建一个自己的个人网站,由于不懂php后台,所以在点点网开过自己的博客,后来慢慢向程序员转变,点点网的博客已经不能满足这个职业特定的需求,于是用worldpress搭建了自己的第一个网站,鼓捣过几天worldpress,从购买域名空间,修改空间域名解析,添加模板,修改模板,了解了worldpress的强大之处,但是鼓捣玩了worldpress之后,没有了写文章的动力,也没有用足够的时间来管... »

Ruby中任务构建工具rake的入门学习教程

Rake简介 Rake的意思是Ruby Make,一个用ruby开发的代码构建工具. 但是,为什么Ruby需要Rake?     按理说Ruby代码无需编译,应该不需要Rake才对呀?原来,Rake另有妙用,即把Rake当做一个任务管理工具来使用…这样做有两个好处: 1.以任务的方式创建和运行脚本    当然,你可以... »

Ruby on Rails基础之新建项目

Ruby on Rails 目录结构 + app/ #控制器、模型、视图、帮助方法、邮件、静态资源 + bin/ #rails脚本 + config/ #路由、数据库等 + db/ #数据库模式、迁移文件 + lib/ #扩展模块 + log/ #日志 + public/ #公共资源 + test/ #单元测试 - config.ru #Rack服务器的程序设置、用于启动程序 - Gemfile,... »

详解Ruby on Rails中的Cucumber使用

    用 @wip (工作进行中)标签标记你未完成的场景。这些场景不纳入考虑,且不标记为测试失败。当完成一个未完成场景且功能测试通过时,为了把此场景加至测试套件里,应该移除 @wip 标签。     配置你的缺省配置文件,排除掉标记为 @javascript 的场景。它们使用浏览器来测试,推荐停用它们来增加一般场景的执行速度。 &nbs... »

浅析Ruby的源代码布局及其编程风格

使用 UTF-8 作为源文件编码。     每个缩进级别使用两个 spaces (又名软 tabs). 不要硬 tabs # bad - four spaces def some_method do_something end # good def some_method do_something end     使用 Unix-风格 换... »

Ruby中变量引用时的一些注意点

在表达式中,当Ruby看到像a这样的名字时,它需要判断a是一个局部变量引用还是对没有参数的方法a的调用。Ruby使用一种启发式的方法来判断这种情况。当Ruby解析源代码文件时,它会记录所有已经被赋值的符号。它认为这些符号是变量。以后当遇到一个既可以是变量又可以是方法调用的符号时,Ruby会检查是否已经对该符号进行了赋值。如果是,那么把该符号当作变量,否则当作方法调用。下面是描述这种情况的一个人为设... »

Page 1 of 20123»