草庐IT

file-reference-url

全部标签

ruby - `File::exist?` 和 `File::exists?` 之间的区别

关于ruby-doc,File::exist?和File::exists?的文档条目以不同的语义重复:一个条目说returnstrueiffile_name是一个目录;另一个说如果file_name是一个文件,则返回true。我认为这两个条目都不正确。这两种方法似乎都在file.c中实现使用rb_file_exist_p,如果传递的值是一个IO,它似乎会尝试调用fstat(),如果它是一个字符串,则似乎会尝试调用stat().fstat()和stat()都返回0成功和-1错误,这是通过返回到rb_file_exist_p,并转为bool结果。在我看来有两种方法可以使代码更容易阅读;没有

ruby-on-rails - "No such file or directory @ rb_sysopen"使用 OpenURI

我最近在使用OpenURI时遇到了问题。每个open方法都会导致以下错误:"Nosuchfileordirectory@rb_sysopen".我的代码如下所示:data=open("http://google.ca/")我在将gem'nokogiri'添加到我的Gemfile并运行bundleinstall后不久就注意到了这个错误,尽管我不知道是否或这不是导致问题的原因,并且此后删除了该条目,对问题没有任何积极影响。任何帮助将不胜感激。 最佳答案 尝试在你的代码前写上require'open-uri'。

ruby-on-rails - 运行 Rspec 时出现 "No such file to load"错误

MacOS10.4rspec(1.1.11,1.1.4,1.1.3,0.5.15)rspec-rails(1.1.11)rspec_generator(0.5.15)rails2.2.2ruby1.8.6(2007-03-13patchlevel0)[universal-darwin8.0]创建了一个新项目...$railsmyproject将rspec安装到项目中...$script/generaterspec生成资源...$script/generaterspec_scaffoldmyresourcename:stringdescription:text试图运行规范...$rake

ruby - __LINE__ 和 __FILE__ 常量在 Ruby 中是如何实现的?

似乎__FILE__和__LINE__常量会随着当前文件和正在执行的行号动态更新,我想知道Ruby中的行为是如何实现的?源码我已经grep过了,但是__LINE__和__FILE__出现的杂音太多了,不知道有没有人能帮我指出源码并提供了解其行为的线索。用Rubinis或MRI解释都可以。 最佳答案 __FILE__和__LINE__都被文字替换了directlyintheparser:casekeyword__FILE__:returnNEW_STR(rb_external_str_new_with_enc(ruby_sourcef

ruby-on-rails - 验证失败 : Upload file has an extension that does not match its contents

我正在使用回形针gem上传文件。我的回形针gem版本是paperclip-4.1.1。上传文件时抛出Validationfailed:Uploadfilehasanextensionthatdoesnotmatchitscontents.我正在尝试上传xlsx文件。而且我已经在模型content_type中提到了这一点。validates_attachment_content_type:upload_file,:content_type=>%w(application/mswordapplication/vnd.ms-officeapplication/vnd.ms-excelappl

ruby-on-rails - 带@global gem 的 Ruby/RVM - bundle 运行失败,显示 `require' : cannot load such file — bundler (LoadError)

我学习了1个月的linux。当我尝试从MigratingfromMySQLtoPostgresonHeroku开始执行所有步骤时我遇到无法处理的错误。当我尝试从源代码安装mysqltopostgresgem时:$gitclonehttps://github.com/maxlapshin/mysql2postgres.git$cdmysql2postgres$bundleinstall$gembuildmysqltopostgres.gemspec$sudogeminstallmysqltopostgres-0.2.20.gem我在$bundleinstall上有一个错误:/home/f

ruby - 通过 Rack::Auth::Basic 有选择地允许某些 url

我已经建立了一个我希望得到最低限度安全保护的博客(即,我只是想将我不认识的随机人员拒之门外,我并没有尝试实现类似NSA的安全措施)。我正在使用toto使用Rack::Auth::Basic来“保护”站点。我想通过index.xml以便博客读者能够在不处理密码的情况下阅读提要(是的,我知道这是我的“安全性”中的一个大漏洞).如何让Rack::Auth::Basic通过这个url?这就是我向网站添加基本身份验证的方式:useRack::Auth::Basic,"blog"do|username,password|[username,password]==['generic','stupid

ruby - 如何在 Heroku 上使用 Ruby Rack 为静态站点设置 URL

我的网站是here.它曾经是一个Django驱动的博客。但是我不再更新它所以我只是想把它变成一个静态的HTML站点。我得到了它并使用RubyRack将它移到了Heroku。但是每个URL都解析为主页。这是因为我的config.ru文件:useRack::Static,:urls=>["/media/images","/media/js","/media/css"],:root=>"public"runlambda{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=86400'},File.op

ruby - Rspec——需要 stub File.open 在另一个文件中被调用

在我的测试中,我使用一些参数初始化了一个名为Package的新类。在这个类的初始化中,我打开了一个文件,该文件在我的远程机器上可用,但在本地通常不存在。我想知道如何在我的测试中stub该方法。我正在使用rspec和mocha。我试过类似的东西:File.stubs(:open).with(:file).returns(File.open("#{package_root}/test_files/test.yml"))在我的测试中初始化Package之前,我有这一行。我遇到了这个错误:unexpectedinvocation:File.open('package/test_files/te

ruby-on-rails - 使用 Ruby/Rails 进行 base 64 URL 解码?

我正在使用FacebookAPI和RubyonRails,我正在尝试解析返回的JSON。我遇到的问题是Facebookbase64URL对其数据进行编码。Ruby没有内置的base64URL解码。关于base64编码和base64URL编码的区别,seewikipedia.我如何使用Ruby/Rails对此进行解码?编辑:因为有些人阅读有困难——base64URL与base64不同 最佳答案 Dmitry的回答是正确的。它说明了在字符串解码之前必须出现的“=”符号填充。我一直收到格式错误的JSON,最后发现这是由于填充造成的。Rea