草庐IT

Python,将Python代码字符串导入为模块

全部标签

ruby - 如何定义要从模块化 sinatra 应用程序的配置 block 中调用的方法?

我有一个Sinatra应用程序,归结起来,基本上是这样的:classMyApp不幸的是,这不起作用。我得到undefinedmethodread_config_fileforMyApp:Class(NoMethodError)read_config_file中的逻辑非常重要,因此我不想在两者中重复。如何定义可以从我的两个配置block调用的方法?还是我只是以完全错误的方式解决了这个问题? 最佳答案 configureblock似乎是在读取文件时执行的。您只需将方法的定义移到配置block之前,并将其转换为类方法:classMyApp

ruby - 在 emacs 中即时缩进 ruby​​ 代码

如何让Emacs自动重新缩进Ruby代码?例如,在Emacs中,defhelloputs"hello"en输入“d”后,我希望它变成这样,defhelloputs"hello"end这是Vim中的默认设置,但我如何在Emacs中实现它? 最佳答案 ruby-electric已经是旧闻了。Emacs24有一个名为electric-indent-mode的内置次要模式,它会在一些字符后自动插入换行符,你当然可以将RETURN键重新映射到newline-and-indent(默认只映射到缩进)。在Emacs24中,您可以使用electri

ruby - 规范测试基于 EventMachine 的(Reactor)代码

我正在尝试整个BDD方法并想测试AMQP基于Vanilla的方面Ruby我正在写的应用程序。选择Minitest后作为与其他名副其实的蔬菜框架不同的平衡功能和表现力的测试框架,我着手编写此规范:#File./test/specs/services/my_service_spec.rb#Requirementsfortestrunningandconfigurationrequire"minitest/autorun"require"./test/specs/spec_helper"#Externalrequires#MinitestSpecsforEventMachinerequire

ruby - 您如何模块化 Chef Recipe ?

这是一个工作配方示例,它循环访问网站名称数组并使用函数createIisWebsite()在IIS中创建它们。defcreateIisWebsite(websiteName)iis_sitewebsiteNamedoprotocol:httpport80path"#{node['iis']['docroot']}/#{websiteName}"host_header"#{websiteName}.test.kermit.a-aws.co.uk"action[:add,:start]endend在我们的实际解决方案中,这些数据存储在别处并通过WebAPI访问。websiteNames=[

ruby - 为什么这段代码适用于 ruby​​ 1.8 而不是 ruby​​ 1.9?

这段代码:deffunc*;end[func"hello"]在Ruby1.8.7中解析没有错误,但返回语法错误:syntaxerror,unexpected']',expecting'}'在Ruby中>=1.9。我浏览了WhatisthedifferencebetweenRuby1.8andRuby1.9,但找不到对此的引用。有谁知道是什么变化导致了这种情况? 最佳答案 这是为了避免歧义。请考虑以下事项:deffoo(a,b=1)#footakesanoptionalsecondargumentend[foo1,2]这可以解释为[(

Ruby 命名空间与类还是模块?

考虑Ruby类Foo::Bar。惯例是将“Foo”命名空间作为一个模块,但它也可以很容易地作为一个类:moduleFoo;classBar;end;end对比:classFoo;classBar;end;end在第二种情况下,Bar不是Foo的内部类,它只是在Foo的单例上定义的另一个常量。在这两种情况下,父类(superclass)都是Object并且它们只包含Kernel模块。它们的祖先链是相同的。因此,除了您可以根据其类使用Foo进行的操作(如果是类则实例化,如果是模块则扩展/包含),命名空间的性质是否对有任何影响酒吧?是否有令人信服的理由选择其中一个名称间距而不是另一个?我看到

python - 解释性语言中的链接和加载

在编译型语言中,源代码由编译器转化为目标代码,不同的目标文件(如果有多个文件)由链接器链接并由加载器加载到内存中执行。如果我有一个使用解释性语言(例如ruby​​或python)编写的应用程序,并且如果源代码跨多个文件拆分,那么这些文件究竟何时组合在一起。换句话说,链接何时完成?解释型语言一开始就有链接器和加载器,还是解释器包揽一切?我真的很困惑,无法理解它!!谁能对此有所启发?! 最佳答案 解释型语言或多或少是可执行文件的大型配置,称为解释器。该可执行文件(例如/usr/bin/python)是实际运行的程序。然后它读取它要执行的

ruby - 如何简化此 Enumerator 代码?

为了简洁起见,我想优化以下代码。x1.each{|x|x2.each{|y|....xN.each{|z|yield{}.merge(x).merge(y)......merge(z)}}}假设x1,x2,...,xN是Enumerator对象。以上内容不够简洁它与x1、x2作为Array一起工作,但不是作为Enumerators因为应该为内部循环重置枚举器迭代器我试过了,但没有成功:[x1,x2,...,xN].reduce(:product).map{|x|x.reduce:merge}有什么建议吗?更新目前解决了:[x1,x2,...,xN].map(:to_a).reduce(

ruby-on-rails - 如何在 RSpec 中包含多个模块?

我不确定将几个模块包含到RSpec中的方式,所以让我描述一下我的情况。在app/helpers下,我有两个带有助手的文件,包含模块ApplicationHelper和MailersHelper。尽管这些是我在我的View和邮件中使用的View助手,但我也在我的测试中使用了它们的一些方法,因此它们必须可以在describe子句中访问。在app/spec/mailers下,我还有一个文件,包含模块Helpers。该模块包含仅在测试中使用的方法(主要是长期期望的包装方法)。此外,我还有以下代码:classHelpersincludeSingletonincludeActionView::He

ruby - Ruby 中更快的常量时间字符串比较

我正在尝试将用户提供的身份验证token与存储在我的服务器上的身份验证token进行比较。最明显的方法就是使用==,但这可能会造成定时攻击。为了缓解这种情况,我编写了这个安全比较函数:#stringcomparisonthatleaksnoinformationaboutthestrings.#looselybasedonhttps://github.com/rack/rack/blob/master/lib/rack/utils.rb#andhttp://security.stackexchange.com/questions/49849/timing-safe-string-com