草庐IT

python:不同包下同名的两个模块和类

全部标签

ruby - 如何将 "zip"两个数组转化为hash

我想将两个数组“压缩”成一个哈希。来自:['BO','BR']['BOLIVIA','BRAZIL']收件人:{BO:'BOLIVIA',BR:'BRAZIL'}我该怎么做? 最佳答案 我会这样做:keys=['BO','BR']values=['BOLIVIA','BRAZIL']Hash[keys.zip(values)]#=>{"BO"=>"BOLIVIA","BR"=>"BRAZIL"}如果你想要键的符号,那么:Hash[keys.map(&:to_sym).zip(values)]#=>{:BO=>"BOLIVIA",:B

ruby - 如何在 Ruby 中获取两个日期之间的所有星期日?

我正在处理一个表单,用户可以在其中输入日期范围并从复选框列表中选择一周中的一天/几天,即星期日、星期一、星期二、星期三、星期四、星期五和星期六。提交表单后,我需要一种方法来获取根据所选日期输入的两个日期之间的日期列表,即给定的两个日期之间的所有星期一和星期四。我查看了文档,但无法确定如何有效地执行此操作,即ruby方式。 最佳答案 有趣的一个!:Dstart_date=Date.today#yourstartend_date=Date.today+1.year#yourendmy_days=[1,2,3]#dayoftheweeki

ruby - 检查模块是否存在于 ruby​​ 中

我根据cli上传递的参数动态定义模块名称,例如Required::Module::#{ARGV.first}有什么方法可以检查该模块是否存在?另外,我如何在不知道它的确切名称的情况下对其运行方法? 最佳答案 为此使用const_defined?。Required::Module.const_defined?(:ModuleName)返回真或假。 关于ruby-检查模块是否存在于ruby​​中,我们在StackOverflow上找到一个类似的问题: https:

ruby - 如何列出 Ruby 类中包含的模块?

在Ruby的类层次结构中,您如何列出已包含在特定类中的模块?像这样:moduleSomeModuleendclassParentModel[SomeModule]pChildModel.included_modules(false)#=>[]列出祖先使模块在树中显得更高:pChildModel.ancestors#=>[ChildModel,ParentModel,SomeModule,Object,Kernel] 最佳答案 据我了解你的问题,你正在寻找这样的东西:classClassdefmixin_ancestors(inclu

ruby - 为什么模块 `ClassMethods` 在同一个命名空间中定义和扩展?

我正在尝试理解来自githubrepo的代码.它是设置客户端的gem的主要模块。moduleGithub#morecodeclass为什么是class和moduleClassMethods使用,然后扩展而不是包含在class中部分?有一个类方法defincluded(base).这似乎将类方法添加到特定对象中。为什么会这样?它可能与类的功能有关,但我不明白。 最佳答案 moduleMyModuleclassendend这实际上是Ruby中很常见的做法。基本上,它的意思是:当某个对象执行includeMyModule时,也使它也ext

ruby-on-rails - "The Ruby way"(mixins 和类重新打开)与依赖注入(inject)

在研究混合与依赖注入(inject)时,我经常听到“Ruby方式”这个词。开发人员通常会说一些类似的话Rubyletsyoureopenclassesandredefinemethodsmeansthatyoucaneasily"inject"newreferencesintoyourcodeattest-time.(参见http://weblog.jamisbuck.org/2007/7/29/net-ssh-revisited的#6)但是测试不是我主要关心的;我关心的是类重用。我想要可以在多个企业级Rails应用程序中重用的类。那么重用类发生了什么?使用mixins和重新打开类似乎

ruby - 为什么扩展模块中的常量在用 self. 声明的类方法中不可用?

我认为在class中声明的方法之间没有区别block和用self.声明的block前缀,但有:moduleAVAR='some_constant'endclassBextendAclassOKB.m2#=>uninitializedconstantB::VAR为什么A的常量是可用m1但不在m2? 最佳答案 在Ruby中,常量查找与方法查找不同。对于方法查找,调用foo始终与调用self.foo相同(假设它不是私有(private)的)。调用常量FOO与self::FOO非常不同或singleton_class::FOO.使用非限定常

ruby - 列出模块在 Ruby 中声明的所有类型

如何在Ruby中列出模块声明的所有类型? 最佳答案 使用Module模块中定义的constants方法。来自Ruby文档:Module.constants=>arrayReturnsanarrayofthenamesofallconstantsdefinedinthesystem.Thislistincludesthenamesofallmodulesandclasses.pModule.constants.sort[1..5]produces:["ARGV","ArgumentError","Array","Bignum","Bi

ruby - 如何按不同顺序的多个条件进行排序?

我真的很想在没有猴子补丁的情况下处理这个问题,但我还没有找到其他选择。我有一个数组(在Ruby中),我需要按多个条件对其进行排序。我知道如何使用sort方法,并且我已经使用了使用选项数组按多个条件进行排序的排序技巧。但是,在这种情况下,我需要第一个条件进行升序排序,第二个条件进行降序排序。例如:ordered_list=[[1,2],[1,1],[2,1]]有什么建议吗?编辑:刚刚意识到我应该提到我不能轻易地比较第一个值和第二个值(我实际上是在处理对象属性)。所以对于一个简单的例子,它更像是:ordered_list=[[1,"b"],[1,"a"],[2,"a"]]

ruby - 在 Ruby 模块上调用方法

我有以下Ruby代码:moduleMyModuleclassMyClassdefself.my_methodendendend要调用my_method,我输入MyModule::MyClass.my_method。我想在模块本身上为my_method编写一个包装器:MyModule.my_method这可能吗? 最佳答案 我不确定您想要实现什么,但是:如果您将其设为常规方法并使用module_function对其进行修改,您将能够以您选择的任何方式调用它。#!/usr/bin/ruby1.8moduleMyModuledefmy_m