小编Jam*_*sen的帖子

如何在另一个文件中包含Ruby源内联?

我有许多Ruby文件,每个文件声明一个Class,但每个文件都可以从命令行运行.

我想将以下功能放在每个文件的底部,尽可能减少重复:

if __FILE__ == $0
  # instantiate the class and pass ARGV to instance.run
end
Run Code Online (Sandbox Code Playgroud)

我的第一直觉是这样做:

# /lib/scriptize.rb:
Kernel.class_eval do
  def scriptize(&block)
    block.call(ARGV) if __FILE__ == $0
  end
end

# /lib/some_other_file.rb:
include 'scriptize'
class Foo
  # ...
end
scriptize { |args| Foo.new.run(args) }
Run Code Online (Sandbox Code Playgroud)

但这不起作用因为__FILE__被评估scriptize.rb,所以它永远不会 Foo.

我想解决方案是字面上内容scriptize.rb,但我不知道语法.我可以使用eval,但这仍然是相当多的重复 - 它不能真正简化为我添加的方法Kernel.

ruby command-line

4
推荐指数
2
解决办法
5241
查看次数

如何从QUnit测试中触发本机Javascript事件?

我正在开发一个不依赖于jQuery的Javascript库,尽管我的测试中有jQuery和QUnit可用.在库中,我按照jQuery的方式将事件附加到元素:

if (document.addEventListener) {
  tab.addEventListener('click', MyModule.show, false);
} else if (document.attachEvent) {
  tab.attachEvent('click', MyModule.show);
}
Run Code Online (Sandbox Code Playgroud)

我尝试$('#tab').click();在我的QUnit测试中调用,但它不会导致我的事件处理程序被调用.

javascript jquery unit-testing qunit

4
推荐指数
1
解决办法
6103
查看次数

覆盖Rails中的MIME类型

我想在Rails中覆盖JSON MIME类型("application/json")("text/x-json").我试图在mime_types.rb中再次注册MIME类型,但这不起作用.有什么建议?

谢谢.

ruby mime json ruby-on-rails mime-types

3
推荐指数
1
解决办法
5665
查看次数

如何测试Rails Helper定义方法?

我正在创建一个Rails插件,它正在向Helper动态添加一个方法.我只想确保添加该方法.如何查看Helper是否响应方法名称?

ruby unit-testing ruby-on-rails helper

3
推荐指数
1
解决办法
249
查看次数

如何告诉Ruby的OpenSSL库忽略自签名证书错误?

我正在尝试使用Ruby的SOAP支持,如下所示:

SERVICE_URL = 'https://...'
...
def create_driver
  ::SOAP::WSDLDriverFactory.new(SERVICE_URL).create_rpc_driver
  driver.options['protocol.http.ssl_config.verify_mode']  = OpenSSL::SSL::VERIFY_NONE
  driver.options['protocol.http.ssl_config.client_cert']  = @certificate_path
  driver
end
Run Code Online (Sandbox Code Playgroud)

但呼吁new(SERVICE_URL)爆炸" OpenSSL::SSL::SSLError: certificate verify failed." 如何driver.options['protocol.http.ssl_config.verify_mode'] = OpenSSL::SSL::VERIFY_NONE进行第一次调用以检索WSDL本身?

ruby soap wsdl openssl certificate

3
推荐指数
1
解决办法
6961
查看次数

如何在ActiveRecord事务中获得保存(无感叹号)语义?

我有两个型号:PersonAddress我想在一个事务中创建.也就是说,我想尝试创建Person,如果成功,则创建相关的Address.我想使用save语义(return truefalse)而不是save!语义(引发ActiveRecord::StatementInvalid或不引用).

这不起作用,因为user.save它不会触发事务的回滚:

class Person
  def save_with_address(address_options = {})
    transaction do
      self.save
      address = Address.build(address_options)
      address.person = self
      address.save
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

(将self.save调用更改为if self.save围绕其余部分的块也无济于事,因为Person即使Address失败,保存仍然会成功.)

这不起作用,因为它ActiveRecord::StatementInvalidtransaction块中引发异常而不触发ActiveRecord::Rollback:

class Person
  def save_with_address(address_options = {})
    transaction do
      save!
      address = Address.build(address_options)
      address.person = self
      address.save!
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

Rails文档明确警告说,不要捕捉 …

database activerecord transactions ruby-on-rails

3
推荐指数
1
解决办法
1319
查看次数

如何在Ruby中解码RFC 2047编码的电子邮件头?

我有以下标题:

From: =?iso-8859-1?Q?Marta_Falc=E3o?= <marta.falcao@example.com.br>
Run Code Online (Sandbox Code Playgroud)

我可以轻松地将这些东西拆分出去<,这让我不知所措

"=?iso-8859-1?Q?Marta_Falc=E3o?="
Run Code Online (Sandbox Code Playgroud)

我可以用什么把它变成"Marta Falcão"

ruby encoding tmail

3
推荐指数
1
解决办法
1775
查看次数

在Ruby on Rails中使用迁移

我想确认以下分析是正确的:

我正在RoR中构建一个Web应用程序.我有一个我的postgres db设计的数据结构(大约70个表;这个设计可能需要在开发过程中进行更改和添加以反映Rails的处理方式.EG,我设计了一些用户和角色表 - 但是如果使用Restful是有意义的身份验证,我将擦除它们并替换RA所需的任何内容.)

我有一个shellcript,它调用一系列.sql文件来填充空数据库中的表和初始数据(例如,城镇预先填充了邮政城镇)以及测试数据(例如,公司得到一些虚拟公司所以我有数据可以玩).

例如:

CREATE TABLE towns (
  id         integer PRIMARY KEY DEFAULT nextval ('towns_seq'),
  county_id  integer REFERENCES counties ON DELETE RESTRICT ON UPDATE CASCADE,
  country_id integer REFERENCES countries ON DELETE RESTRICT ON UPDATE CASCADE NOT NULL,
  name       text    NOT NULL UNIQUE
);
Run Code Online (Sandbox Code Playgroud)

命题0:数据持续时间长于应用程序,因此我确信我希望在数据库级别强制执行参照完整性以及在我的RoR模型中进行验证,尽管缺少DRYNESS.

命题1:如果我用迁移替换脚本和sql文件,目前无法告诉我的Postgres数据库有关外键和我当前在迁移代码中的SQL DDL文件中设置的其他约束.

命题2:迁移的好处是对模式的更改与RoR模型代码一起进行了版本控制.但是如果我将我的脚本和.sql文件保存在railsapp/db中,我可以轻松地对它们进行版本控制.

命题3:鉴于迁移缺乏我想要的功能,并提供我可以复制的好处,我没有理由考虑使用它们.所以我应该在脚本/生成模型时间--skipmigrations.

我的问题:如果命题0被接受,命题1,2,3是真还是假,为什么?

谢谢!

ruby ruby-on-rails

2
推荐指数
1
解决办法
2568
查看次数

如何在LaTeX中输入多行脚注?

我的直觉是

Lorem ipsum\footnote{long footnote
  that spans a whole
  bunch of
  lines.
}
Run Code Online (Sandbox Code Playgroud)

但是,无论在哪里我把的{,并}相对于脚注文本,我得到以下错误:

Latex Error: ./mydoc.tex:142 Package inputenc Error: Unicode char \u8:? not set up for use with LaTeX.
Run Code Online (Sandbox Code Playgroud)

latex

2
推荐指数
1
解决办法
7266
查看次数

我在哪里可以找到完整的WADL规格?

我已经阅读了WADL文件的一个很好的例子.我还检查了WADL2Java工具.

但我似乎无法找到WADL格式的完整规范.我有许多未解决的问题,主要是处理文件的各个部分如何相互关联以及我是否可以通过使用引用来减少重复.

后来

leppie得到了正式答案,但那份文件很糟糕.谁有更好的参考?

wadl

2
推荐指数
1
解决办法
810
查看次数