草庐IT

将方法移动到另一个类的Java效率

全部标签

ruby - 如何找到 "essential"方法来提供 Ruby mixins 的接口(interface)?

问题标题的可怕之处是我要解决的问题。示例:在Ruby中,Enumerable是某种意义上的接口(interface),我可以实现某些东西并将其记录为:defmyfancymethod(please_pass_me_an_Enumerable_here)但另一方面,Enumerable是一种接口(interface)的放大,它以#each作为其方法之一。如果我有课classFoodefeach:barendend对于那些不熟悉Ruby的人来说,如果你在一个类中混入Enumerable模块,你会得到许多只依赖于#each方法来提供诸如#map之类的方法,#select等我可以说我的Foo类

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 - 为什么即使在 Hash 上调用 Enumerable#find/#detect 也会返回一个数组?

documentationforEnumerable#find/#detect说:find(ifnone=nil){|obj|block}→objornilfind(ifnone=nil)→an_enumeratorPasseseachentryinenumtoblock.Returnsthefirstforwhichblockisnotfalse.Ifnoobjectmatches,callsifnoneandreturnsitsresultwhenitisspecified,orreturnsnilotherwise.但是在Hash上调用时,结果已经将类型改为Array,而不是原来

ruby - 如何检查 ruby​​ 方法中可选参数的默认值是多少?

给定一个类,classMyClassdefindex(arg1,arg2="hello")endend是否可以通过Class#instance_method等方法获取arg2的默认值? 最佳答案 似乎我们可以检查方法参数值的唯一方法是访问方法的binding。使用Tracepoint类,我们可以获取这样一个绑定(bind)对象,然后检查所有optional参数的值。我们需要确保只使用必需的参数调用所需的方法,以便为默认参数分配默认值。下面是我尝试这样做的-它适用于实例方法和类方法。为了调用实例方法,我们需要实例化类-如果构造函数需要

ruby-on-rails - 雷未定义方法 `total_pages'

在使用kaminari时,我遇到了一个错误。gem文件:#gem'will_paginate','~>3.0.6'#gem'will_paginate-bootstrap'gem'kaminari'列表Controller.rbdefindexifparams[:tag]@lists=List.tagged_with(params[:tag]).order(created_at::desc).paginate(page:params[:page],per_page:3)else@lists=List.all.order(created_at::desc)endend我还使用.pagep

ruby-on-rails - 在 Ruby 中使用 Symbol#to_proc 简写的链接方法?

我想知道是否有一种方法可以使用(&:method)链接一个方法例如:array.reject{|x|x.strip.empty?}把它变成:array.reject(&:strip.empty?)我更喜欢速记符号,因为它的可读性。 最佳答案 不,没有缩写。你可以定义一个方法:defreally_empty?(x)x.strip.empty?end并使用method:array.reject(&method(:really_empty?))或使用lambda:really_empty=->(x){x.strip.empty?}arra

ruby-on-rails - 如何使用 Rails 在一个查询中执行多个语句?

我将RubyonRails与ActiveRecord和PostgreSQL结合使用。如何执行多个sql查询?我需要它来运行自定义迁移脚本,例如:Foo.connection.execute'20120806120823';SQL我不接受来自用户的数据,所以我不担心sql注入(inject)。类似于CLIENT_MULTI_STATEMENTS也许在MySQL中?来自MySQL/PHP文档:CLIENT_MULTI_STATEMENTS:Telltheserverthattheclientmaysendmultiplestatementsinasinglestring(separated

ruby - 如何找到私有(private)单例方法

我已经定义了一个模块Vehicle这样的moduleVehicleclass调用Vehicle.singleton_methods返回[:build]。如何检查Vehicle定义的所有私有(private)单例方法? 最佳答案 在Ruby1.9+中,您可以简单地执行以下操作:Vehicle.singleton_class.private_instance_methods(false)#=>[:background]在Ruby1.8中,事情有点复杂。Vehicle.private_methods#=>[:background,:inc

ruby-on-rails - Heroku ruby​​ buildpack 错误 - 未定义的局部变量或方法 `install_language_pack_gems'

我刚刚将我的Rails3.2.16应用程序的ruby​​版本从1.9.2升级到2.0.0,并且在本地一切正常。但是,当尝试推送到Heroku时,编译失败。它检测ruby​​版本,开始安装依赖项,然后崩溃:----->CompilingRuby/Rails----->UsingRubyversion:ruby-2.0.0----->Installingdependenciesusing1.5.2Rubyversionchangedetected.Clearingbundlercache.Old:ruby1.9.3p484(2013-11-22revision43786)[x86_64-l

ruby - 如何在 Ruby 中将一个类标记为已弃用?

在Ruby(甚至更多:Rails)中它是easytomarkmethodsasdeprecated.但是如何将整个类标记为已弃用?我想在使用类时发出警告:classBillingMethodendBillingMethod.new#=>DEPRECATIONWARNING:theclassBillingMethodisdeprecated.UsePaymentMethodinstead.或者当它被用于继承时:classSofortDEPRECATIONWARNING:theclassBillingMethodisdeprecated.UsePaymentMethodinstead.或者