草庐IT

Javascript类继承和所有继承的名称?

全部标签

ruby-on-rails - 使用 rspec 测试 rails 而不需要运行所有初始化程序?

假设您正在开发一个Rails应用程序,它有很多初始化程序,这些初始化程序会在启动时调用各种外部系统。当使用rspec-rails运行rspec时,它会运行所有初始化器,即使您的测试很简单,不需要rails基础设施。我知道您可以使用Spork只产生一次这种成本,但有没有办法完全不产生它?仅仅为了一个简单的PORO规范而加载所有rails似乎很愚蠢。 最佳答案 不要使用spork。如果您想使用预加载器,请查看zeus或spring。您不需要加载整个Rails环境来测试不依赖于Rails的东西。这可以很简单,例如明确要求每个规范所需的依赖

ruby - 生成集合的所有 "unique"子集(不是幂集)

假设我们有一个集合S,它包含几个子集:-[a,b,c]-[a,b]-[c]-[d,e,f]-[d,f]-[e]我们还假设S包含六个唯一元素:a、b、c、d、e和f。我们如何找到S的所有可能子集,这些子集恰好包含S的每个唯一元素一次?函数/方法的结果应该是这样的:[[a,b,c],[d,e,f]];[[a,b,c],[d,f],[e]];[[a,b],[c],[d,e,f]];[[a,b],[c],[d,f],[e]].是否有任何最佳实践或任何标准方法来实现这一点?如果有伪代码、Ruby或Erlang示例,我将不胜感激。 最佳答案 听

ruby - 如何使用 SASS 解析 .scss 文件中所有 CSS 选择器的列表?

我想以编程方式解析.scss文件以生成该文件中使用的选择器的平面列表,主要作为某些静态代码分析的基础。在SASS术语中,我正在寻找一种方法来获取给定.scss文件的所有Sass::Tree::RuleNode的列表。到目前为止,我正在使用Sass::Engine.for_file创建树。然后,根据文档,为了在各个节点上使用Sass::Tree::RuleNode.resolved_rules,我必须使用Tree::Visitors::Cssize。但是某处有一个(可能很简单的)错误。require'sass'sass_engine=Sass::Engine.for_file('file

ruby - 如何使用 TeamCity 在所有代理上安装 Ruby gems?

我正在开发Teamcity6.5.6,并正在寻找一种在构建代理上自动安装所需的ruby​​GEMS的方法。例如:假设我在每个代理/远程(构建)机器上都需要两个gem。例如:Watir和Seleniumgem。然后我想通过登录到这些机器手动安装它们,或者我可以将它们保存在SVN中的公共(public)库文件夹中,并在Teamcity中执行一些任务以安装它们(如果机器上不存在)。如果是这样,那么Teamcity中的任务是什么?谢谢 最佳答案 看看Bundler.您可以在Gemfile中维护所需gem的列表,然后在开始构建之前在每台机器上

ruby - 为什么 block 不像方法那样继承调用者的 $SAFE 级别?

当$SAFE=4的线程调用方法时,该方法以相同的$SAFE级别运行:deftest_methodraise"valueof$SAFEinsidethemethod:#{$SAFE}"endt=Thread.new{$SAFE=4;self.test_method};t.join=>RuntimeError:valueof$SAFEinsidethemethod:4但是,当一个block被调用时,它似乎使用了来自其原始上下文的$SAFE:test_lambda=lambdadoraise"valueof$SAFEinsidethelambda:#{$SAFE}"endt=Thread.n

ruby - 使用 s3 gem + rails 4.1.5 时不允许将 `@@{' 作为类变量名称(SyntaxError)

我知道已经有人问过这种类型的问题了。我使用s3gem将我的文件上传到s3存储桶中。但是在安装s3gem之后,当我启动railsserver时它显示了这个错误:/var/lib/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:223:in`class_eval':/var/lib/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:223:`@@{'isnotallowedasaclassvariablename(SyntaxError)/var/lib/gems/1.9.

ruby - 是否可以列出当前池中的所有数据库连接?

我在一个独立于Rails应用程序运行的守护进程中得到ActiveRecord::ConnectionTimeoutError。我将Passenger与Apache和MySQL一起用作数据库。Passenger的默认池大小为6(至少文档是这么告诉我的),因此它不应使用超过6个连接。我已将ActiveRecord的池大小设置为10,尽管我认为我的守护进程应该只需要一个连接。我的守护进程是一个具有多个线程的进程,它在这里和那里调用ActiveRecord以将内容保存到它与Rails应用程序共享的数据库中。我需要弄清楚的是线程是否根本无法共享一个连接,或者它们是否只是不断请求新连接而不释放它们

ruby - 用 Ruby 正则表达式中的值替换所有匹配项

我在进行Ruby字符串替换时遇到了问题。我正在为我正在使用的有限语言编写一个预处理器,它本身不支持数组,所以我自己动手。我有一条线:x[0]=x[1]&x[1]=x[2]我想用重新格式化的版本替换每个实例:x__0=x__1&x__1=x__2该行可能在别处包含方括号。我有一个匹配数组用途的正则表达式:array_usage=/(\w+)\[(\d+)\]/但我想不出Ruby构造来逐个替换每个实例。我不能使用.gsub()因为它会匹配行中的每个实例,并将每个数组声明替换为第一个声明。.scan()提示说,如果您尝试在block内使用带有.sub()!的扫描,则字符串正在被修改。如有任何

ruby-on-rails - 从对象验证消息中删除字段名称

我在一个表单中使用它对一个对象进行了简单的事件记录验证:form.error_messages({:message=>'',:header_message=>''})这反过来会输出类似“FieldNameMyCustommessage”的内容我需要做的是从错误消息中删除字段名称,但保留我的自定义消息。谁能为此指出正确的方向。 最佳答案 在rails3.2.6中,您可以在语言环境文件中设置它(例如,config/locales/en.yml):en:errors:format:"%{message}"否则,默认格式为“%{attrib

ruby-on-rails - 在 Rails 中编写可继承属性与基本赋值

只是好奇这两者在Railsgem中有什么区别:write_inheritable_attribute(:sample,"sample")self.sample="sample"我找不到关于write_inheritable_attribute的任何好的文档,只是阅读了一些gem源,发现前者被使用了几次。谢谢! 最佳答案 子类不继承实例变量:>>classB;@candy=1;end>>B.instance_variable_get:@candy#=>1>>classC>C.instance_variable_get:@candy#=