
Ruby
文章平均质量分 55
李小西033
这个作者很懒,什么都没留下…
展开
-
Agile Web Development with Rails第六章笔记——任务A:创建应用程序
看书效率比较低,很容易忘记前面的内容,从这章开始写读书笔记。希望可以早日上手Rails本章的主要任务是以增量式开发的方式创建应用程序Depot(任务A)。迭代A1:创建商品维护的应用程序创建能够对商品进行增删改的应用程序。商品属性products表:title(名称)、description(描述)、image(图)、price(价格)1、创建Rails应用程序创建名为de原创 2013-05-17 12:07:31 · 1432 阅读 · 0 评论 -
`gem install therubyracer` fails on Mac OS X Lion
gem install therubyracer -v ‘0.10.1’ 失败报错如下:clang: error: no such file or directory: '/Users/XXX/.rvm/gems/ruby-1.9.2-p320/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a’解决方式:brew tap homebrew/dupesbr原创 2015-03-23 12:34:36 · 1204 阅读 · 0 评论 -
Ruby:String转Time
总是忘记这个转换方法,记录上来方便查询:将字符串形式表示的时间转换为Time对象的方法:require "time"p Time.parse("2015-04-07 14:38:37")原创 2015-04-10 11:06:54 · 6532 阅读 · 0 评论 -
Codewars练习:Ruby中的ceil与floor
这两个方法(ceil\floor)之前一直没有注意过,今天在codewars做一道练习题时看到了对ceil方法的使用,遂将这两个方法记录下来;返回比接受者大的最小整数用ceil方法,返回比接受者小的最大整数用floor方法。例如以下题目用了ceil方法后,秒杀%#使用ceildef cooking_time(eggs) (eggs/8.0).ceil * 5 end #使用%def c原创 2015-08-19 23:14:15 · 2729 阅读 · 0 评论 -
Ruby中的class_eval方法以及__FILE__和__LINE__参数
原文:Ruby class_eval, FILE and LINE arguments 这里我们将讨论一个class_eval调用的例子def my_attr_reader(sym) class_eval <<-READER, __FILE__ , __LINE__ + 1 def #{sym} @#{sym} end RE翻译 2016-05-18 14:24:17 · 1383 阅读 · 0 评论 -
Ruby中require,load,include和extend方法的区别
原文:Ruby Require VS Load VS Include VS Extendinclude如下例当Include一个模块到某个类时, 相当于把模块中定义的方法插入到类中。Include一个模块实际上相当于将其mixin到某个类中。它遵循 DRY(Don’t repeat yourself)原则, 避免重复。例如,当有多个类需要引入模块中的同一段代码时。下例假设Log模块和TestClas翻译 2016-11-12 12:48:18 · 1202 阅读 · 0 评论 -
译:Ruby动态方法
通常情况下,我们使用关键字def来定义方法。 但是当有一系列方法具有相同的结构和逻辑时,继续这样做未免显得有些重复并且违反了DRY原则。 Ruby,作为一个动态语言,允许你在运行时定义方法。 那么,这是什么意思呢? 来看一个最简单的例子:class A define_method :a do puts "hello" end define_method :greeting翻译 2017-01-14 21:29:55 · 673 阅读 · 1 评论 -
Ruby中的nil?,empty?与Rails中的blank?,present?
[A concise explanation of nil v. empty v. blank in Ruby on Rails](https://stackoverflow.com/questions/885414/a-concise-explanation-of-nil-v-empty-v-blank-in-ruby-on-rails).nil?可以用在一切对象上,当对象为nil时,返回true翻译 2017-06-22 15:31:22 · 1660 阅读 · 0 评论 -
译:词频练习的Ruby实现
Word Count Exercise in Ruby题目 单词计数 编写程序来计算给定短语中每个单词出现的次数。 例如输入”olly olly in come free” 计数结果应为: olly: 2 in: 1 come: 1 free: 1简单吧,让我们来动手实现:class Phrase attr_accessor :words de翻译 2017-06-13 10:59:59 · 493 阅读 · 0 评论 -
译:Ruby小技巧:Each with object
Ruby Bits: Each with objectEnumerable是Ruby世界的核心模块。如果熟悉了它,可以说距离深谙Ruby之道也就不远了。 在所有enumerable模块的酷炫方法中,我最喜欢的,甚至公开承认过它是我在整个Ruby语言中的最爱,那就是each_with_object。 使用方法如下:numbers = [1, 2, 3, 4]numbers.each_with_ob翻译 2017-06-13 14:58:45 · 1410 阅读 · 0 评论 -
将函数作为参数传递(Javascript/Ruby/Golang)
本文展示了在Javascript和Ruby中方法是如何作为参数被传递的。Javascriptfunction sayHello(name) { console.log("Hello, I am " + name);}function execute(someFunction, value) { someFunction(value);}execute(sayHello, "Lisa")原创 2017-10-07 22:55:47 · 2011 阅读 · 1 评论 -
Ruby实现斐波那契数列
没事应该研究一下算法,免得脑子秀逗~如下,用递归的方式实现斐波那契数列def calculateFibonacci(num) if num==0 || num==1 1 else calculateFibonacci(num-2)+calculateFibonacci(num-1) endendresult ||= []10.times do |i| result原创 2015-03-25 23:03:03 · 1933 阅读 · 1 评论 -
Ruby on Rails微信开发4——通过网页授权获取用户的基本信息
接着Ruby on Rails微信开发3——自定义菜单的创建,假如“代码是小三”按钮对应了一个我的技术博客的网页链接,该链接只能允许特定的用户打开,此时就需要对用户的身份进行验证。参照开发者文档网页授权获取用户基本信息对用户身份进行验证1、网页授权回调域名的配置原创 2015-01-09 14:51:51 · 4194 阅读 · 0 评论 -
Agile Web Development with Rails第七章笔记——任务B:验证
在第六章的基础上,这一章的任务是使应用程序变得更加坚固——以确保数据中发生的错误永远都不会提交给数据库。迭代B:验证目标:1、字段的标题、描述以及图像的URL不是空的2、价格是一个有效的数字,且不少于0.013、标题在所有商品中是唯一的4、图像的URL看起来是有效的模型层是放置验证代码的理想位置。根据以上4点目标,在脚手架生成的模型层文件中做出相应修改。模型文件原创 2013-05-19 13:04:04 · 1109 阅读 · 0 评论 -
Agile Web Development with Rails第八章笔记——任务C:商品目录显示
接下来的任务是——创建简单的商品目录显示网页。迭代C1:创建商品目录清单1、创建控制器store前面已经通过脚手架创建了商品控制器,卖家可以用它来管理Depot应用程序。现在创建第二个控制器,它将用来与消费者进行互动,称为store。rails generates controller store index通过访问网址http://localhost:3000/store/i原创 2013-05-20 13:52:16 · 1179 阅读 · 0 评论 -
Agile Web Development with Rails第九章笔记——任务D:创建购物车
本章内容:会话和会话管理添加模型间的关系创建一个按钮,可添加产品到购物车中迭代D1:寻找购物车将购物车放在数据库中,并在会话中存储该购物车的唯一标识符,cart.id。每当请求出现时,可以从会话中找到该购物车的标识,并用该标识在数据库中查找购物车。1、创建购物车rails generate scaffold cart2、应用迁移rake db:migra原创 2013-05-23 10:18:46 · 2280 阅读 · 0 评论 -
Rails/Ruby获取时间及格式化
最近在采用迭代开发的模式写一个个人博客,需要显示博客创建时间,我们知道在利用脚手架生成模型的时候脚手架已经自动为我们加入了created_at和updated_at字段,因此在显示博客时间时只需要将获取到的时间格式化即可。如图,在获取时间的基础上(article.created_at)采用strftime格式化时间。strftime的用法跟C和PHP基本类似。时间显示效果:原创 2013-06-24 11:57:02 · 3742 阅读 · 0 评论 -
Mac上更新Ruby
因为准备在项目中使用bootstrap,在安装bootstrap过程中提示需要Ruby的版本在1.9.2以上,而目前使用的Ruby版本是Mac系统自带的1.8.7。所以需要对Ruby进行升级。这里使用RVM对Ruby进行升级,升级过程如下:1、安装 RVMRVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)$ cur原创 2013-06-27 22:03:57 · 81883 阅读 · 3 评论 -
Rails中Bootstrap的安装和使用
眼看着前端攻城师们都开始使用Bootstrap创作网页,于是也想学着在最近正在学习的Rails中使用Bootstrap。具体安装使用过程如下:1、创建Rails工程rails new usedschool2、生成脚手架rails g scaffold Item title:string description:text --skip-stylesheets3原创 2013-06-28 12:27:35 · 12955 阅读 · 3 评论 -
sidekiq异步处理任务
安装gem install sidekiq或修改Gemfile之后bundle installgem 'sidekiq'使用方法:1 定义异步处理worker类将worker类放置于app/workers class HardWorker include Sidekiq::Worker def perform(name, count)原创 2013-11-26 19:15:18 · 6919 阅读 · 2 评论 -
Ruby on Rails微信开发1——开发模式的启用与接口配置
参照博客[027] 微信公众帐号开发教程第3篇-开发模式启用及接口配置启用公共平台开发者模式并进行接口配置加密/校验流程如下:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行sha1加密3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信ruby实现如下:requir原创 2014-12-10 18:47:13 · 4321 阅读 · 1 评论 -
Ruby on Rails微信开发2——消息的接收与响应
消息的接收:验证消息真实性继续使用接口接入时策略,见Ruby on Rails微信开发1——开发模式的启用与接口配置接收消息路由配置:post '/test/wechat',to: 'wechat_supports#process_request’ #ruby实现 #接收微信服务器信息 def process_request if che原创 2015-01-08 17:48:42 · 4680 阅读 · 2 评论 -
Ruby on Rails微信开发3——自定义菜单的创建
根据自定义菜单创建的开发者文档创建自定义菜单,创建步骤如下:1、获取access_token def get_access_token response=Typhoeus.get("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=#{get_app_id}&se原创 2015-01-09 11:46:01 · 4506 阅读 · 0 评论 -
Rails发送HTTPS请求的方法
微信公共平台开发中获取access token时需要向微信服务器发送https请求,折腾半天终于发送成功,记录如下:require "net/https"require "uri"uri = URI.parse("https://XXX.com/")http = Net::HTTP.new(uri.host, uri.port)http.use_ssl = truehttp.ver原创 2014-12-19 21:01:28 · 2847 阅读 · 0 评论 -
使用OpenTracing对ruby应用进行分布式链路追踪
使用OpenTracing对ruby应用进行分布式链路追踪OpenTracing,一套平台无关的追踪API准备工作安装Jaeger All-in-oneSinatra App No. 1: &quot;Hello&quot;收集第一条链路信息Sinatra App No. 2: &quot;Hello World&quot;分布式链路追踪是如何工作的?总结原文:Tutorial: Distributed Tracing in Ruby...翻译 2018-11-23 15:53:07 · 548 阅读 · 0 评论