小编spi*_*epf的帖子

如何确定我的rails是否在开发环境而不是测试环境中?

我有一些代码只有在rails应用程序位于开发环境(即$ rails服务器)时才需要运行,而不是在测试环境中(即$ rake test).

当我尝试

if Rails.env.development?
    dont run me during testing
end
Run Code Online (Sandbox Code Playgroud)

无论我在哪个环境,代码都会被执行.我甚至尝试过:

if Rails.env.development? and not Rails.env.test?
    NO, REALLY, DONT RUN ME DURING TESTING
end
Run Code Online (Sandbox Code Playgroud)

但没有爱.

我应该做什么呢?

彼得.

testing environment ruby-on-rails

76
推荐指数
1
解决办法
6万
查看次数

如何使用ruby调试器获取堆栈跟踪?

我试图在Rails应用程序中使用ruby调试器.

我需要在(rdb:1)提示符下键入什么命令才能显示堆栈跟踪?我试过了backtrace,但它只列出了最顶层的框架.

ruby debugging ruby-on-rails backtrace

9
推荐指数
3
解决办法
7702
查看次数

如何在没有数据库的情况下使用Rails/Devise?

我正在创建一个不使用数据库的Rails应用程序.相反,使用包装遗留系统的Ruby API来管理模型.

我有一个Ruby调用,允许我验证用户名/密码组合.在这种情况下是否可以使用Devise(或其他一些现成的身份验证解决方案)?

我希望我可以在Devise中覆盖一些方法,并且仍然可以获得许多好处.

彼得.

authentication ruby-on-rails devise

7
推荐指数
1
解决办法
4162
查看次数

如何告诉bundler忽略不存在的宝石?

我的组织有许多内部宝石,用于自动化测试,但不是生产部署所必需的.我正在尝试使用Bundler,因此在我的Gemfile中我将这些宝石包装在:

group :test, :development do
    gem 'dashboard_summary'
end
Run Code Online (Sandbox Code Playgroud)

但是,当我跑:

$ bundle install --without staging development test
Run Code Online (Sandbox Code Playgroud)

我还是得到的

Could not find gem 'dashboard_summary (>= 0) ruby' in the gems available on this machine.
Run Code Online (Sandbox Code Playgroud)

我试图理解为什么Bundler在我告诉它时不会忽视那个宝石.

ruby ruby-on-rails bundler

6
推荐指数
1
解决办法
4988
查看次数

从库代码访问设备的 current_user

我在 Rails 应用程序的 lib 目录中创建了一个类。该类需要访问 Devise 的 current_user。

我还应该指出,这个 lib 类经常从模型代码中访问,因此不能将 current_user 传递给它。

我怎样才能做到这一点?

彼得。

authentication ruby-on-rails devise

5
推荐指数
1
解决办法
1497
查看次数

比较和对比Java和Delphi中的接口

我是一名Java开发人员,最近一直戴着Delphi开发人员的帽子.

在这种情况下通常就是这种情况,我最终尝试在Delphi中做事情,同时仍然使用我的"Java"思维模式,当他们不工作时我会感到困惑.

今天的问题是界面的概念.在Java中,我可以定义一个接口,给它一些方法,然后声明一个实现该接口的类.

我试图在Delphi中做同样的事情,并且我的手指被烧了.我声明了一个扩展IInterface的接口.但是当实现该接口的时候,我没有声明的方法(QueryInterface,_AddRef,_Release)受到了许多未实现的方法错误的欢迎.

一个小谷歌告诉我,我需要扩展TInterfacedObject而不是TObject.这让我感到不安,因为它表明我不能简单地将接口添加到某些第三方类,除非该类最终扩展了TInterfacedObject.

但现在,当它成为设置我的接口对象的时候.Free,我得到了EInvalidPointer异常.

结果,我开始得出结论,接口这个词意味着与Java开发人员和Delphi开发人员完全不同.

精通这两种语言的人能不能告诉我这些差异?

干杯.

java delphi interface

5
推荐指数
1
解决办法
691
查看次数

使用Ruby minitest创建测试套件

我正在将我的测试移动到新的ruby minitest库,我正在寻找与旧的Test :: Unit :: TestSuite类相对应的类.我在网上找到的所有例子都显示了单个测试用例,但我得到了:

require 'minitest/unit/testsuite'
require 'minitest/unit/ui/console/testrunner'

require 'tests/fs_session_test'
require 'tests/resource_test'
require 'tests/rest_session_test'
require 'tests/server_test'

class AllTests
  def self.suite
    suite = Test::Unit::TestSuite.new
    suite << FSSessionTest.suite
    suite << ResourceTest.suite
    suite << RESTSessionTest.suite
    suite << ServerTest.suite
  end
end

Test::Unit::UI::Console::TestRunner.run(AllTests)
Run Code Online (Sandbox Code Playgroud)

我一直在testsuite require上得到一个LoadError.

ruby unit-testing minitest

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

如何概括调用C++中的函数列表?

我有以下代码,允许我实例化然后调用void()函数列表.

(如果您希望编译并运行此代码,我使用https://github.com/philsquared/Catch进行单元测试).

#include "catch.hpp"

#include <functional>
#include <vector>

class ChainOfResponsibility : public std::vector<std::function<void()> >, public std::function<void()>
{
public:
    void operator()() const
    {
        for(std::vector<std::function<void()> >::const_iterator it = begin(); it != end(); ++it) {
            (*it)();
        }
    }
};

TEST_CASE("ChainOfResponsibility calls its members when invoked")
{
    bool test_function_called = false;
    std::function<void()> test_function = [&]()
    {
        test_function_called = true;
    };

    ChainOfResponsibility object_under_test;

    object_under_test.push_back(test_function);
    object_under_test();

    REQUIRE(test_function_called);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何模拟ChainOfResponsibility类接受具有不同(但一致)签名的函数?

例如,考虑a ChainOfResponsibility<void(int)>或a ChainOfResponsibility<ReturnClass(Argument1Class, Argument2Class)>.

为了参数,我们假设第二个示例返回链中最后一个成员返回的值,如果链为空,则返回ReturnClass的默认值.

此外,如果STL已经包含了实现此目的的模板类,那么我宁愿在我的本土类中使用它.

c++ templates chain-of-responsibility

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

无法使ANTLR4语法跳过注释

我正在尝试编写ANTLR4语法来解析actionscript3。我决定从一些粗略的东西开始:

grammar actionscriptGrammar;

OBRACE:'{';
CBRACE:'}';
STRING_DELIM:'"';

BLOCK_COMMENT : '/*' .*? '*/' -> skip;
EOL_COMMENT : '//' .*? '/n' -> skip;
WS: [ \n\t\r]+ -> skip;

TEXT: ~[{} \n\t\r"]+;

thing
    : TEXT
    | string_literal
    | OBRACE thing+? CBRACE;

string_literal : STRING_DELIM .+? STRING_DELIM;

start_rule
    : thing+?;
Run Code Online (Sandbox Code Playgroud)

基本上,我想要一棵按其词法范围分组的事物树。我希望忽略注释,字符串文字是它们自己的东西,这样它们可能包含的任何大括号都不会影响词​​法范围。string_literal规则可以正常工作(例如,可以),但是两个注释规则似乎没有任何效果。(即,评论不会被忽略)。

我想念什么?

comments lexer antlr4

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

将Grails项目从版本abc升级到xyz的正确步骤是什么

我在过去五年左右一直在开发Grails应用程序,我还没有找到一个简单的一致程序来升级Grails版本之间的项目.通常情况下,我最终从头开始创建项目,一点一点地将代码从旧项目复制到一个新项目中.沿途调整以使测试通过.

从Grails版本到groovy版本再到STS/GGTS版本,似乎有太多的玩杂耍球.它们似乎都是向后不相容的.

grails upgrade spring-tool-suite

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

如何确定是否有可从boost:asio:serial_port读取的字节

我正在尝试使用boost在台式机和arduino之间进行串行通信。在arduino空间中,我可以在尝试执行读取操作之前询问串行端口是否有可用字节。

我在查找boost :: asio :: serial_port的等效项时遇到了麻烦。

boost serial-port arduino boost-asio

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

使用 buildroot 发行版作为 docker *主机*

我有一个基于 ARM 的主板,它只能运行制造商提供的基于特定 buildroot 的发行版。我想尝试在这个板上运行 Docker。

每当我在 Google 搜索中结合 buildroot 和 docker 时,我都会得到解释如何使用 buildroot 创建容器的页面,而不是如何更改 buildroot 以将其用作主机。

谁能指点我一些文档吗?

host buildroot docker docker-engine

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

如何在junit4/testcontainers中获得@Testcontainers(disabledWithoutDocker = true)行为

我的代码库很古老并且被锁定在 JUnit4 中。我想将 testcontainers 与项目集成,以将 docker 容器合并到自动化测试中。

我的开发箱(我控制)运行 docker,但是,我的 CI 系统(我不控制)没有。

如果我可以使用 JUnit5,我只需添加@Testcontainers(disabledWithoutDocker = true)注释,基于docker的测试将在我的开发箱上愉快地运行,而在 CI 机器上被禁用。

JUnit4 相当于@Testcontainers(disabledWithoutDocker = true)什么?

junit4 docker junit5 testcontainers

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