草庐IT

windows - 获取 DLL 的目录

全部标签

Ruby:如何获取可选 proc 参数的默认值

假设我有一个像这样的proc/lambda/block/method/etc:2.1.2:075>procedure=Proc.new{|a,b=2,*c,&d|42}=>#我知道我可以通过以下方式找出参数的名称:2.1.2:080>procedure.parameters=>[[:opt,:a],[:opt,:b],[:rest,:c],[:block,:d]]但是,如果给定的可选参数未给定,我该如何获取该可选参数的值呢?附言:是的。我知道这在here之前已经被问过/回答过,但之前的解决方案需要使用merbgem,这实际上有点误导。merb本身依赖于methoparagem(除非您使

ruby-on-rails - 为自定义 omniauth 策略获取 "Authentication failure! invalid_credentials: OAuth2::Error"

目前我正在处理Rails4项目,现在我必须链接/连接另一个应用程序(不是sso,而是用于访问API),比如example.com。(注意example.com使用三足式oauth安全架构)搜索后发现必须要实现omniouth策略。为此我引用了this关联。根据Strategy-Contribution-Guide我能够完成设置和请求阶段,您可以在此处找到我的示例代码。require'multi_json'require'omniauth/strategies/oauth2'require'uri'moduleOmniAuthmoduleStrategiesclassMyAppStrat

ruby-on-rails - 无法在 Windows 7 上安装 Rmagick 和 Imagemagick

当我从rmagick-2.13.1.gem所在的目录运行geminstallrmagick-2.13.1.gem时,我收到一条错误消息,指出它无法构建gemnative扩展,如下所示它说c:/Ruby192/bin/ruby.exeextconf.rbcheckingforRubyversion>=1.8.5...yesUnabletogetImagemagickversion***extconf.rbfailed***CouldnotcreateMakefileduetosomereason,probablylackofnecessarylibrariesand/orheaders.

ruby - 从包含的文件中,如何获取执行包含的文件的文件名?

对于问题标题措辞不佳的道歉-不知道如何把它说得更好!在下面的代码中,当我执行rubybar.rb时,如何让它输出bar.rb,而不是foo.rb?在foo.rb中:moduleFoodeffilename__FILE__endend在bar.rb中:require_relative'foo'includeFooputsfilename#outputs'foo.rb'这是一个库函数,每次执行一些代码时,都会记录该代码的位置(和gitref)。 最佳答案 你的问题促使我打开Ruby解释器源代码,看看__FILE__是如何工作的。答案很有

ruby - 获取 Rails 项目中包含的所有 gem 的变更日志

我有一个使用bundler的Rails项目。我收录的许多gem都比最新可用的版本落后很多。我知道我可以祈祷并运行bundleupdate以将所有内容升级到最新版本,同时考虑到依赖性,但这可能会破坏我的应用程序中依赖已弃用gem方法的部分,可能不值得付出努力。有没有办法获取Gemfile.lock中设置的版本和ruby​​gems上的最新版本之间所有bundle的gem的变更日志?这似乎是一个相当普遍的需求,但我还没有'找到任何解决方案... 最佳答案 这真是个好主意。目前我还没有听说过有任何工具可以执行此操作,因此我创建了一个脚本来

ruby - 如何获取注入(inject)循环的每个值

我想获取inject的每个值。例如[1,2,3].inject(3){|sum,num|sum+num}返回9,我想获取循环的所有值。我尝试了[1,2,3].inject(3).map{|sum,num|sum+num},但没有成功。我写的代码是这样的,但是我觉得是多余的。a=[1,2,3]result=[]a.inject(3)do|sum,num|v=sum+numresult[4,6,9]有没有办法同时使用inject和map? 最佳答案 使用专用的Eumerator非常适合这里,但我会为此展示更通用的方法:[1,2,3].i

ruby - 如何在 ruby​​ 脚本中使用 Net::FTP 将远程 FTP 服务器上的文件移动到同一 FTP 服务器上的目录

如何在ruby​​脚本中使用Net::FTP将远程FTP服务器上的文件移动到同一FTP服务器上的目录。我知道文件名并且我使用ftp.mkdir创建了一个目录,但显然没有将文件移动到创建的文件夹的方法。 最佳答案 可以使用Net::FTP类的rename()方法移动文件(和目录)。示例:ftp=Net::FTP.new("ftp.myserver.com","myusername","mypassword")ftp.binary=trueftp.passive=truepath1="/original/dir/path/"#Dirto

ruby-on-rails - 在rails app目录中将文件夹作为模块常量加载的方法

所以有一个Rails5项目并且想要加载这样的目录/app/services/userfoo.rb作为常量::Services::User::Foo有没有人有使用Rails自动加载路径以这种方式加载常量的经验?foo.rbmoduleServicesmoduleUserclassFooendendend解决方案将此添加到您的application.rb文件config.autoload_paths在此处查看有关自动加载的讨论https://github.com/rails/rails/issues/14382#issuecomment-37763348https://github.com

ruby-on-rails - 获取子类的名称

比方说我有我的课叫a=Person::User::Base如何只获取最后一个名为Base的子类。我知道如何做到这一点的方式是:a.to_s.split('::').last=>"Base"有没有更好的办法? 最佳答案 如果您使用Rails(ActiveSupport):a.to_s.demodulize如果您使用POR(plain-ol-Ruby),是的,这是您的方式:a.to_s.split('::').last 关于ruby-on-rails-获取子类的名称,我们在StackOver

ruby-on-rails - 如何在 Rails 中使用空格作为 '%20' 而不是 '+' 获取 url 的参数

如果我有这个参数用于添加到URLparams={name:'JohnKey'}并使用方法to_param:params.to_param=>"name=John+Key"重点是'+'没有被所使用的服务正确读取,需要'%20'而不是name=John%20Key:Whentoencodespacetoplus(+)or%20?有没有办法在不使用gsub的情况下返回带有“%20”的参数? 最佳答案 我会建议只坚持使用gsub,也许用注释来解释这种行为的必要性。虽然您可以通过使用URI.escape解决问题,但据说它已被弃用,因为它不完全