小编dev*_*arn的帖子

码和文档中的类/模块的链接

我正在从rdoc切换到yard用于我的ruby软件文档.

在我的文档中,我经常从注释中引用一些类/模块,例如:

## == Provides various utility features
##
## == Features
##
## Logging : logging is provided by the Mysoft::Mypackage::Utility::Logger class
##
Run Code Online (Sandbox Code Playgroud)

Rdoc正确创建了一个指向Mysoft :: Mypackage :: Utility :: Logger类文档页面的链接,而yard忽略了标记并将类名视为简单字符串.

我知道院子里有@see标签,但是这会在文档中创建一个单独的"See Also"部分,而我需要在我的描述文本中引用类/模块.

我肯定错过了一些东西,但如果你有任何关于如何用院子做的例子,我真的很感激.

谢谢你的推荐,

DL

ruby rdoc yard

28
推荐指数
1
解决办法
4457
查看次数

泽西jax.rs客户端2.5遵循重定向

我有一个设置,托管我的REST服务器的tomcat服务器将调用从HTTP(端口9080)重定向到HTTPS(端口9443).

我正在使用jersey 2.5实现,无法管理客户端以遵循重定向.

我发现了这个问题(泽西岛客户端不遵循重定向),但它是为泽西1.X系列提供的,而且API已经改变了.

我尝试使用以下测试代码将其调整为2.5:

 SSLContextProvider ssl = new TrustAllSSLContextImpl(); // just trust all certs
 Response response  =     ClientBuilder.newBuilder()
     .sslContext(ssl.getContext()).newClient()
     .register(LoggingFilter.class)
     .target("http://testhost.domain.org:9080/rest.webapp/api/v1/hello/")
     .property(ClientProperties.FOLLOW_REDIRECTS, Boolean.TRUE)
     .request().get();   
 Assertions.assertThat(response.getStatus()).isNotEqualTo(302);
Run Code Online (Sandbox Code Playgroud)

由于客户端似乎没有遵循重定向,因此失败了.以下是日志记录筛选器提供的内容:

Feb 14, 2014 12:23:45 PM org.glassfish.jersey.filter.LoggingFilter log
INFO: 1 * Sending client request on thread main
1 > GET http://testhost.domain.org:9080/rest.webapp/api/v1/hello/

Feb 14, 2014 12:23:45 PM org.glassfish.jersey.filter.LoggingFilter log
INFO: 1 * Client response received on thread main
1 < 302
1 < Cache-Control: private
1 < Content-Length: 0
1 < Date: Fri, …
Run Code Online (Sandbox Code Playgroud)

rest redirect tomcat jersey-client jersey-2.0

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

记录确保的流量

我想知道是否有办法记录由restassured处理的所有调用和响应(url + payload).

最终将是一个"调试"测试日志,记录所有呼叫和流量.

当然,我可以在我自己的代码中向记录器发出调用,但我首先要全局设置这种行为,而不是在我的所有测试方法中添加记录器调用.

谢谢你的任何指示

java rest http rest-assured

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

如何获取PTY.spawn子退出代码?

我正在尝试通过PTY模块管理到网络设备的SSH连接,代码类似于:

cmd_line = "ssh coltrane@love.supreme.com"
begin
  PTY.spawn(cmd_line) do |r_f,w_f,pid|
  ...
rescue PTY::ChildExited => cended
  ...
end
Run Code Online (Sandbox Code Playgroud)

整个I/O工作得很好,但是我不知道如何获得子进程的退出状态.

例如,如果连接断开或只是超时,则生成的进程将以错误代码终止,但此代码似乎不会在$?特殊变量中返回.

ruby linux io ssh

5
推荐指数
2
解决办法
4710
查看次数

安装后脚本中重新定位的路径

我正在开发一个 RPM 软件包,它将文件部署到 /opt 和 /etc。

在大多数情况下,它工作得很好,除了对于给定的环境,不允许写入 /etc ......

所以我用来Relocations将 /etc 文件部署在其他位置:

Relocations : /opt /etc
Run Code Online (Sandbox Code Playgroud)

通过指定--relocate选项,我可以将 /etc 文件部署到另一个位置:

rpm -ivh --relocate /etc=/my/path/to/etc mypackage.rpm
Run Code Online (Sandbox Code Playgroud)

现在的问题是,在安装后脚本中,有一些对 /etc 的硬编码引用在部署包时不会被替换:

echo `hostname --fqdn` > /etc/myapp/host.conf
Run Code Online (Sandbox Code Playgroud)

我希望有一种方法(宏,关键字,...)可以使用而不是硬编码路径,以便在 rpm 执行期间执行替换。

如果您有任何这方面的信息,我将非常感谢您的帮助。

谢谢预先

PS:请注意,这不是之前提出(和回答)的与根路径重定位相关的问题的重复,因为我们正在处理多个重定位路径,并且我们需要在 rpm 期间单独处理每个重定位路径小脚本

redhat centos rpm rpm-spec

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

没有ActiveRecord模型的Rails控制器?

我正在尝试创建一个不使用ActiveRecord框架的rails web应用程序,因为我没有关系数据库后端.

到目前为止,我设法创建了一个简单的示例应用程序,可以完美地列出,显示和编辑我的记录.

但是,在创建唱片时我遇到了一些问题.

问题是如果模型类不从ActiveRecord :: Base继承,则控制器类的行为方式不同.

从控制器的角度来看,在模型继承自ActiveRecord :: Base的经典活动记录模型模式中,记录的创建似乎遵循以下顺序:

  • controller.new:创建非持久性记录,呈现输入表单
  • controller.create:用用户输入,持久存储,....设置记录.

但是,在模型不是ActiveRecord的情况下,我们得到以下序列:

  • controller.new
  • controller.update

现在当然这有点奇怪,因为我们正在跳过创建方法,所以它会导致一个nil实例错误!

我很确定这种行为是由应该在模型中实现的东西决定的,但是我无法找到什么(可能是因为我是一个绝对的初学者使用rails)

因此,如果这里的任何人都有关于我应该寻找/实施的内容的一些指示,以便解决这种情况并在两种情况下都有相同的行为,我真的很感激.

谢谢,

activerecord controller model ruby-on-rails

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